From 6c72a5905250869ceae191d72514de738944bda2 Mon Sep 17 00:00:00 2001 From: kddejong <36457093+kddejong@users.noreply.github.com> Date: Wed, 29 Apr 2026 08:47:00 +0000 Subject: [PATCH] CloudFormation Template Schema upgrade https://github.com/aws-cloudformation/cloudformation-template-schema/tree/main --- server/schema/resources.schema.json | 23295 +++++++++------- .../aws-aiops-investigationgroup.json | 3 + .../schema/resources/aws-amazonmq-broker.json | 15 - .../resources/aws-apigateway-account.json | 2 +- .../resources/aws-apigateway-apikey.json | 16 +- .../aws-apigateway-basepathmapping.json | 2 +- .../aws-apigateway-clientcertificate.json | 10 +- .../resources/aws-apigateway-deployment.json | 16 +- .../aws-apigateway-documentationpart.json | 4 +- .../resources/aws-apigateway-domainname.json | 25 +- ...pigateway-domainnameaccessassociation.json | 8 +- .../aws-apigateway-domainnamev2.json | 4 + .../aws-apigateway-gatewayresponse.json | 2 +- .../resources/aws-apigateway-method.json | 15 + .../resources/aws-apigateway-restapi.json | 34 +- .../resources/aws-apigateway-stage.json | 16 +- .../resources/aws-apigateway-usageplan.json | 12 +- .../resources/aws-apigateway-vpclink.json | 10 +- .../aws-apigatewayv2-integration.json | 4 +- .../resources/aws-apigatewayv2-stage.json | 18 +- .../aws-appconfig-configurationprofile.json | 2 +- .../resources/aws-appconfig-deployment.json | 2 +- .../aws-appintegrations-application.json | 13 +- .../aws-applicationinsights-application.json | 55 +- ...licationsignals-groupingconfiguration.json | 119 + ...-apprunner-observabilityconfiguration.json | 13 +- .../resources/aws-apprunner-service.json | 8 +- .../resources/aws-apprunner-vpcconnector.json | 13 +- .../aws-apprunner-vpcingressconnection.json | 22 +- .../schema/resources/aws-appstream-fleet.json | 70 +- .../resources/aws-appstream-imagebuilder.json | 86 +- .../schema/resources/aws-appstream-stack.json | 165 +- .../resources/aws-appsync-graphqlapi.json | 51 +- .../resources/aws-aps-anomalydetector.json | 292 + server/schema/resources/aws-aps-scraper.json | 70 +- .../resources/aws-arcregionswitch-plan.json | 279 +- .../resources/aws-athena-namedquery.json | 4 +- .../aws-athena-preparedstatement.json | 4 +- .../resources/aws-athena-workgroup.json | 193 +- .../aws-autoscaling-autoscalinggroup.json | 67 +- .../resources/aws-backup-backupplan.json | 73 +- ...-backup-logicallyairgappedbackupvault.json | 242 +- .../aws-backup-restoretestingplan.json | 223 +- .../aws-backup-tieringconfiguration.json | 154 + .../aws-batch-computeenvironment.json | 24 +- .../resources/aws-batch-jobdefinition.json | 58 +- .../resources/aws-batch-quotashare.json | 220 + .../resources/aws-batch-schedulingpolicy.json | 18 + .../resources/aws-bcmdataexports-export.json | 6 + ...aws-bcmpricingcalculator-billscenario.json | 229 + .../schema/resources/aws-bedrock-agent.json | 18 +- .../resources/aws-bedrock-agentalias.json | 2 +- .../aws-bedrock-automatedreasoningpolicy.json | 58 +- ...drock-automatedreasoningpolicyversion.json | 10 +- .../resources/aws-bedrock-blueprint.json | 4 +- .../aws-bedrock-dataautomationlibrary.json | 261 + .../aws-bedrock-dataautomationproject.json | 176 +- ...edrock-enforcedguardrailconfiguration.json | 237 + .../resources/aws-bedrock-guardrail.json | 4 +- .../resources/aws-bedrock-knowledgebase.json | 140 +- .../resources/aws-bedrock-resourcepolicy.json | 60 + ...ockagentcore-apikeycredentialprovider.json | 187 + .../aws-bedrockagentcore-browsercustom.json | 93 +- .../aws-bedrockagentcore-browserprofile.json | 271 + ...edrockagentcore-codeinterpretercustom.json | 74 +- .../aws-bedrockagentcore-evaluator.json | 461 + .../aws-bedrockagentcore-gateway.json | 627 + .../aws-bedrockagentcore-gatewaytarget.json | 807 + .../aws-bedrockagentcore-memory.json | 1218 + ...ockagentcore-oauth2credentialprovider.json | 591 + ...drockagentcore-onlineevaluationconfig.json | 476 + .../aws-bedrockagentcore-policy.json | 255 + .../aws-bedrockagentcore-policyengine.json | 240 + .../aws-bedrockagentcore-runtime.json | 419 +- .../aws-bedrockagentcore-runtimeendpoint.json | 12 +- ...aws-bedrockagentcore-workloadidentity.json | 158 + .../resources/aws-bedrockmantle-project.json | 163 + .../resources/aws-billing-billingview.json | 29 +- .../aws-billingconductor-billinggroup.json | 49 +- .../aws-billingconductor-customlineitem.json | 57 +- .../aws-billingconductor-pricingplan.json | 4 +- .../resources/aws-braket-spendinglimit.json | 202 + .../schema/resources/aws-cases-caserule.json | 424 + server/schema/resources/aws-cases-domain.json | 168 + server/schema/resources/aws-cases-field.json | 267 + server/schema/resources/aws-cases-layout.json | 303 + .../schema/resources/aws-cases-template.json | 280 + .../resources/aws-cassandra-keyspace.json | 7 +- .../schema/resources/aws-cassandra-table.json | 21 + .../resources/aws-ce-anomalymonitor.json | 7 +- ...ot-microsoftteamschannelconfiguration.json | 3 +- .../resources/aws-chime-appinstance.json | 154 + .../aws-cleanrooms-analysistemplate.json | 105 +- .../aws-cleanrooms-collaboration.json | 81 +- .../aws-cleanrooms-configuredtable.json | 50 + .../resources/aws-cleanrooms-membership.json | 21 + .../aws-cleanrooms-privacybudgettemplate.json | 65 +- ...cleanroomsml-configuredmodelalgorithm.json | 236 + ...l-configuredmodelalgorithmassociation.json | 470 + .../aws-cloudformation-guardhook.json | 14 +- .../aws-cloudformation-stackset.json | 20 +- .../aws-cloudfront-anycastiplist.json | 134 +- .../aws-cloudfront-connectionfunction.json | 293 + .../aws-cloudfront-distribution.json | 134 +- .../resources/aws-cloudfront-function.json | 55 +- .../aws-cloudfront-keyvaluestore.json | 53 +- .../resources/aws-cloudfront-publickey.json | 6 +- .../resources/aws-cloudfront-truststore.json | 255 + .../resources/aws-cloudfront-vpcorigin.json | 11 + .../aws-cloudtrail-eventdatastore.json | 3 +- .../resources/aws-cloudtrail-trail.json | 79 +- .../resources/aws-cloudwatch-alarm.json | 52 +- .../aws-cloudwatch-alarmmuterule.json | 260 + .../resources/aws-cloudwatch-insightrule.json | 23 +- .../aws-cloudwatch-otelenrichment.json | 78 + .../schema/resources/aws-codebuild-fleet.json | 4 +- .../aws-codedeploy-deploymentgroup.json | 571 +- ...odegurureviewer-repositoryassociation.json | 11 + .../aws-codepipeline-customactiontype.json | 3 + ...ws-codestarconnections-repositorylink.json | 2 +- .../aws-cognito-managedloginbranding.json | 3 +- .../schema/resources/aws-cognito-terms.json | 144 + .../resources/aws-cognito-userpool.json | 26 + .../aws-cognito-userpoolresourceserver.json | 3 +- .../aws-computeoptimizer-automationrule.json | 498 + ...ws-config-organizationconformancepack.json | 2 +- .../aws-config-remediationconfiguration.json | 97 - .../aws-connect-contactflowmodule.json | 25 + .../aws-connect-contactflowmodulealias.json | 126 + .../aws-connect-contactflowmoduleversion.json | 121 + .../resources/aws-connect-datatable.json | 241 + .../aws-connect-datatableattribute.json | 297 + .../aws-connect-datatablerecord.json | 160 + .../resources/aws-connect-emailaddress.json | 30 + .../resources/aws-connect-evaluationform.json | 1264 +- .../aws-connect-hoursofoperation.json | 145 +- .../resources/aws-connect-instance.json | 8 + .../aws-connect-integrationassociation.json | 7 +- .../resources/aws-connect-notification.json | 255 + .../resources/aws-connect-phonenumber.json | 2 +- .../schema/resources/aws-connect-prompt.json | 5 +- .../schema/resources/aws-connect-queue.json | 39 +- .../aws-connect-securityprofile.json | 132 + server/schema/resources/aws-connect-user.json | 190 +- .../resources/aws-connect-workspace.json | 460 + .../aws-connectcampaignsv2-campaign.json | 184 +- .../aws-controltower-enabledcontrol.json | 10 - .../aws-controltower-landingzone.json | 242 +- .../aws-customerprofiles-domain.json | 70 +- ...aws-customerprofiles-domainobjecttype.json | 255 + .../aws-customerprofiles-integration.json | 11 + .../aws-customerprofiles-objecttype.json | 21 +- .../aws-customerprofiles-recommender.json | 389 + ...ws-customerprofiles-segmentdefinition.json | 165 +- .../schema/resources/aws-datasync-agent.json | 10 +- .../aws-datasync-locationazureblob.json | 18 +- .../resources/aws-datasync-locationefs.json | 16 +- .../aws-datasync-locationfsxlustre.json | 10 +- .../aws-datasync-locationfsxontap.json | 119 +- .../aws-datasync-locationfsxopenzfs.json | 10 +- .../aws-datasync-locationfsxwindows.json | 113 +- .../resources/aws-datasync-locationhdfs.json | 111 +- .../resources/aws-datasync-locationnfs.json | 10 +- .../aws-datasync-locationobjectstorage.json | 18 +- .../resources/aws-datasync-locations3.json | 10 +- .../resources/aws-datasync-locationsmb.json | 20 +- .../schema/resources/aws-datasync-task.json | 20 +- .../resources/aws-datazone-connection.json | 196 +- .../resources/aws-datazone-datasource.json | 2 +- .../schema/resources/aws-datazone-domain.json | 7 +- .../resources/aws-datazone-environment.json | 27 +- ...one-environmentblueprintconfiguration.json | 19 +- .../resources/aws-datazone-policygrant.json | 4 +- .../resources/aws-datazone-project.json | 31 + .../aws-datazone-projectprofile.json | 59 +- .../schema/resources/aws-deadline-farm.json | 9 +- .../schema/resources/aws-deadline-fleet.json | 66 +- .../aws-deadline-licenseendpoint.json | 2 +- .../schema/resources/aws-deadline-limit.json | 2 +- .../aws-deadline-meteredproduct.json | 2 +- .../resources/aws-deadline-monitor.json | 12 +- .../schema/resources/aws-deadline-queue.json | 161 +- .../aws-deadline-queueenvironment.json | 2 +- .../aws-deadline-queuefleetassociation.json | 2 +- .../aws-deadline-queuelimitassociation.json | 2 +- .../aws-deadline-storageprofile.json | 2 +- .../resources/aws-devicefarm-project.json | 47 +- .../resources/aws-devopsagent-agentspace.json | 314 + .../aws-devopsagent-association.json | 881 + .../aws-devopsagent-privateconnection.json | 322 + .../resources/aws-devopsagent-service.json | 1257 + .../aws-directconnect-connection.json | 200 + ...ws-directconnect-directconnectgateway.json | 140 + ...nnect-directconnectgatewayassociation.json | 162 + .../resources/aws-directconnect-lag.json | 184 + ...directconnect-privatevirtualinterface.json | 300 + ...-directconnect-publicvirtualinterface.json | 264 + ...directconnect-transitvirtualinterface.json | 282 + .../aws-directoryservice-simplead.json | 63 +- .../resources/aws-dlm-lifecyclepolicy.json | 460 +- .../resources/aws-dms-dataprovider.json | 55 +- .../schema/resources/aws-docdb-dbcluster.json | 3 +- .../resources/aws-docdb-globalcluster.json | 199 + server/schema/resources/aws-dsql-cluster.json | 54 +- .../resources/aws-dynamodb-globaltable.json | 95 +- .../schema/resources/aws-dynamodb-table.json | 9 - .../aws-ec2-capacitymanagerdataexport.json | 147 + .../aws-ec2-capacityreservation.json | 456 +- .../aws-ec2-capacityreservationfleet.json | 2 +- .../resources/aws-ec2-clientvpnendpoint.json | 48 +- .../resources/aws-ec2-clientvpnroute.json | 11 +- ...ec2-clientvpntargetnetworkassociation.json | 23 +- server/schema/resources/aws-ec2-ec2fleet.json | 1283 +- server/schema/resources/aws-ec2-flowlog.json | 5 +- server/schema/resources/aws-ec2-host.json | 27 +- .../aws-ec2-instanceconnectendpoint.json | 213 +- server/schema/resources/aws-ec2-ipampool.json | 5 +- .../aws-ec2-ipamprefixlistresolver.json | 302 + .../aws-ec2-ipamprefixlistresolvertarget.json | 160 + .../schema/resources/aws-ec2-ipamscope.json | 28 + .../resources/aws-ec2-launchtemplate.json | 17 +- .../schema/resources/aws-ec2-natgateway.json | 335 +- .../resources/aws-ec2-networkaclentry.json | 148 +- .../resources/aws-ec2-networkinterface.json | 488 +- .../aws-ec2-networkinterfaceattachment.json | 35 +- .../schema/resources/aws-ec2-spotfleet.json | 42 +- .../aws-ec2-sqlhastandbydetectedinstance.json | 134 + server/schema/resources/aws-ec2-subnet.json | 4 + .../resources/aws-ec2-transitgateway.json | 242 +- .../aws-ec2-transitgatewayconnect.json | 2 +- .../aws-ec2-transitgatewaymeteringpolicy.json | 144 + ...ec2-transitgatewaymeteringpolicyentry.json | 178 + ...aws-ec2-transitgatewaymulticastdomain.json | 2 +- ...nsitgatewaymulticastdomainassociation.json | 10 + .../aws-ec2-transitgatewayroutetable.json | 2 +- server/schema/resources/aws-ec2-volume.json | 298 +- .../resources/aws-ec2-volumeattachment.json | 13 +- .../aws-ec2-vpcencryptioncontrol.json | 335 + .../schema/resources/aws-ec2-vpcendpoint.json | 32 +- ...ec2-vpcendpointconnectionnotification.json | 6 +- .../aws-ec2-vpcpeeringconnection.json | 9 +- .../resources/aws-ec2-vpnconcentrator.json | 133 + .../resources/aws-ec2-vpnconnection.json | 73 +- .../aws-ecr-pullthroughcacherule.json | 4 +- .../aws-ecr-pulltimeupdateexclusion.json | 57 + .../schema/resources/aws-ecr-repository.json | 14 +- .../aws-ecr-repositorycreationtemplate.json | 19 +- .../aws-ecr-signingconfiguration.json | 135 + .../resources/aws-ecs-capacityprovider.json | 107 +- server/schema/resources/aws-ecs-cluster.json | 16 +- ...s-clustercapacityproviderassociations.json | 10 +- server/schema/resources/aws-ecs-daemon.json | 283 + .../aws-ecs-daemontaskdefinition.json | 797 + .../aws-ecs-expressgatewayservice.json | 610 + server/schema/resources/aws-ecs-service.json | 170 +- .../resources/aws-ecs-taskdefinition.json | 52 +- server/schema/resources/aws-eks-addon.json | 2 +- .../schema/resources/aws-eks-capability.json | 435 + server/schema/resources/aws-eks-cluster.json | 893 +- .../resources/aws-eks-fargateprofile.json | 2 +- .../schema/resources/aws-eks-nodegroup.json | 129 +- .../aws-eks-podidentityassociation.json | 6 + .../aws-elasticache-replicationgroup.json | 646 +- .../aws-elasticloadbalancingv2-listener.json | 198 +- ...s-elasticloadbalancingv2-listenerrule.json | 698 +- ...s-elasticloadbalancingv2-loadbalancer.json | 12 +- ...ws-elasticloadbalancingv2-targetgroup.json | 404 +- .../aws-elementalinference-feed.json | 214 + server/schema/resources/aws-emr-step.json | 14 +- .../resources/aws-emrcontainers-endpoint.json | 407 + ...s-emrcontainers-securityconfiguration.json | 434 + ...aws-entityresolution-matchingworkflow.json | 43 +- .../schema/resources/aws-events-eventbus.json | 14 +- .../resources/aws-events-eventbuspolicy.json | 136 +- .../schema/resources/aws-evs-environment.json | 28 +- .../resources/aws-fis-experimenttemplate.json | 2 +- .../aws-fms-notificationchannel.json | 13 +- server/schema/resources/aws-fms-policy.json | 2 +- .../aws-fsx-datarepositoryassociation.json | 78 +- .../schema/resources/aws-fsx-filesystem.json | 29 + .../aws-fsx-s3accesspointattachment.json | 234 +- .../aws-fsx-storagevirtualmachine.json | 4 + .../schema/resources/aws-gamelift-build.json | 5 +- .../aws-gamelift-containerfleet.json | 60 +- .../schema/resources/aws-gamelift-fleet.json | 83 +- .../schema/resources/aws-gamelift-script.json | 12 +- .../aws-gameliftstreams-application.json | 24 +- .../aws-gameliftstreams-streamgroup.json | 79 +- server/schema/resources/aws-glue-catalog.json | 422 + .../aws-glue-identitycenterconfiguration.json | 118 + .../resources/aws-glue-integration.json | 255 + .../aws-glue-integrationresourceproperty.json | 179 + .../aws-glue-securityconfiguration.json | 19 +- server/schema/resources/aws-glue-table.json | 423 +- .../resources/aws-groundstation-config.json | 65 + ...groundstation-dataflowendpointgroupv2.json | 494 + .../aws-groundstation-missionprofile.json | 5 + .../resources/aws-guardduty-detector.json | 2 +- .../resources/aws-guardduty-filter.json | 2 +- .../schema/resources/aws-guardduty-ipset.json | 2 +- .../aws-guardduty-publishingdestination.json | 2 +- .../aws-guardduty-threatintelset.json | 2 +- server/schema/resources/aws-iam-policy.json | 122 +- .../resources/aws-imagebuilder-component.json | 312 +- .../aws-imagebuilder-containerrecipe.json | 48 +- .../resources/aws-imagebuilder-image.json | 154 +- .../aws-imagebuilder-imagepipeline.json | 505 +- .../aws-imagebuilder-imagerecipe.json | 484 +- .../resources/aws-imagebuilder-workflow.json | 258 +- .../aws-interconnect-connection.json | 301 + .../schema/resources/aws-iot-authorizer.json | 2 +- .../resources/aws-iot-cacertificate.json | 2 +- .../aws-iot-certificateprovider.json | 2 +- server/schema/resources/aws-iot-command.json | 162 +- .../aws-iot-domainconfiguration.json | 2 +- server/schema/resources/aws-iot-logging.json | 49 +- server/schema/resources/aws-iot-policy.json | 2 +- .../aws-iot-provisioningtemplate.json | 2 +- .../schema/resources/aws-iot-rolealias.json | 2 +- .../schema/resources/aws-iot-topicrule.json | 30 + .../aws-iot-topicruledestination.json | 2 +- .../aws-iotfleethub-application.json | 212 - server/schema/resources/aws-ivs-channel.json | 2 +- .../aws-ivs-encoderconfiguration.json | 2 +- .../aws-ivs-ingestconfiguration.json | 2 +- .../resources/aws-ivs-playbackkeypair.json | 2 +- .../aws-ivs-playbackrestrictionpolicy.json | 2 +- .../schema/resources/aws-ivs-publickey.json | 2 +- .../aws-ivs-recordingconfiguration.json | 2 +- server/schema/resources/aws-ivs-stage.json | 2 +- .../aws-ivs-storageconfiguration.json | 2 +- .../schema/resources/aws-ivs-streamkey.json | 2 +- .../resources/aws-kafkaconnect-connector.json | 20 +- .../resources/aws-kendra-datasource.json | 12 + server/schema/resources/aws-kendra-faq.json | 1 + .../schema/resources/aws-kinesis-stream.json | 58 +- .../aws-kinesisanalyticsv2-application.json | 9 +- .../resources/aws-kinesisvideo-stream.json | 26 +- server/schema/resources/aws-kms-key.json | 7 +- .../aws-lakeformation-datalakesettings.json | 77 +- .../aws-lambda-capacityprovider.json | 380 + .../aws-lambda-codesigningconfig.json | 6 +- .../aws-lambda-eventinvokeconfig.json | 4 +- .../aws-lambda-eventsourcemapping.json | 64 +- .../schema/resources/aws-lambda-function.json | 220 +- .../aws-lambda-layerversionpermission.json | 2 +- .../resources/aws-lambda-permission.json | 10 +- .../schema/resources/aws-lambda-version.json | 259 +- .../aws-launchwizard-deployment.json | 3 +- server/schema/resources/aws-lex-bot.json | 263 +- server/schema/resources/aws-lex-botalias.json | 32 +- .../schema/resources/aws-lex-botversion.json | 6 +- .../resources/aws-lex-resourcepolicy.json | 25 +- .../resources/aws-licensemanager-grant.json | 63 +- .../resources/aws-licensemanager-license.json | 74 +- .../aws-lightsail-databasesnapshot.json | 304 + .../resources/aws-lightsail-disksnapshot.json | 276 + .../schema/resources/aws-location-apikey.json | 85 +- .../aws-location-geofencecollection.json | 22 +- server/schema/resources/aws-location-map.json | 22 +- .../resources/aws-location-placeindex.json | 22 +- .../aws-location-routecalculator.json | 22 +- .../resources/aws-location-tracker.json | 22 +- .../aws-location-trackerconsumer.json | 3 +- .../aws-logs-deliverydestination.json | 17 +- .../schema/resources/aws-logs-loggroup.json | 19 +- .../resources/aws-logs-metricfilter.json | 17 + .../resources/aws-logs-querydefinition.json | 39 + .../resources/aws-logs-resourcepolicy.json | 7 +- .../resources/aws-logs-scheduledquery.json | 269 + .../aws-logs-subscriptionfilter.json | 17 + .../resources/aws-logs-transformer.json | 18 +- .../resources/aws-lookoutmetrics-alert.json | 156 - .../aws-lookoutmetrics-anomalydetector.json | 584 - .../resources/aws-mediaconnect-bridge.json | 2 +- .../resources/aws-mediaconnect-flow.json | 306 +- .../aws-mediaconnect-flowentitlement.json | 87 +- .../aws-mediaconnect-flowoutput.json | 184 +- .../aws-mediaconnect-flowsource.json | 106 +- .../aws-mediaconnect-flowvpcinterface.json | 72 +- .../aws-mediaconnect-routerinput.json | 1099 + ...s-mediaconnect-routernetworkinterface.json | 320 + .../aws-mediaconnect-routeroutput.json | 848 + .../resources/aws-medialive-channel.json | 248 +- .../resources/aws-medialive-cluster.json | 1 + .../schema/resources/aws-medialive-input.json | 74 + .../resources/aws-mediapackage-channel.json | 14 +- .../aws-mediapackage-originendpoint.json | 2 +- .../aws-mediapackagev2-originendpoint.json | 113 +- ...aws-mediatailor-playbackconfiguration.json | 81 +- .../resources/aws-mpa-approvalteam.json | 2 +- .../resources/aws-mpa-identitysource.json | 2 +- server/schema/resources/aws-msk-cluster.json | 45 +- .../schema/resources/aws-msk-replicator.json | 266 +- server/schema/resources/aws-msk-topic.json | 121 + .../aws-mwaaserverless-workflow.json | 324 + .../resources/aws-neptune-dbinstance.json | 5 + .../aws-neptune-eventsubscription.json | 135 +- .../resources/aws-neptunegraph-graph.json | 298 +- .../aws-neptunegraph-graphsnapshot.json | 202 + ...aws-neptunegraph-privategraphendpoint.json | 1 - .../aws-networkfirewall-firewall.json | 13 + .../aws-networkfirewall-firewallpolicy.json | 4 + .../aws-networkfirewall-rulegroup.json | 6 +- .../aws-networkmanager-connectattachment.json | 32 +- ...ager-corenetworkprefixlistassociation.json | 82 + ...anager-directconnectgatewayattachment.json | 32 +- ...etworkmanager-sitetositevpnattachment.json | 32 +- ...-networkmanager-transitgatewaypeering.json | 21 +- ...er-transitgatewayroutetableattachment.json | 32 +- .../aws-networkmanager-vpcattachment.json | 32 +- .../aws-notifications-channelassociation.json | 6 +- .../aws-notifications-eventrule.json | 14 +- ...notificationaccountcontactassociation.json | 4 +- ...ificationadditionalchannelassociation.json | 4 +- ...tifications-notificationconfiguration.json | 11 +- .../aws-notifications-notificationhub.json | 2 +- ...cations-organizationalunitassociation.json | 4 +- ...ws-notificationscontacts-emailcontact.json | 7 +- .../aws-novaact-workflowdefinition.json | 143 + server/schema/resources/aws-oam-link.json | 2 +- server/schema/resources/aws-oam-sink.json | 2 +- ...yadmin-organizationcentralizationrule.json | 327 + ...bilityadmin-organizationtelemetryrule.json | 396 +- ...observabilityadmin-s3tableintegration.json | 216 + ...bservabilityadmin-telemetryenrichment.json | 96 + ...observabilityadmin-telemetrypipelines.json | 262 + .../aws-observabilityadmin-telemetryrule.json | 429 +- .../aws-odb-cloudautonomousvmcluster.json | 41 +- .../resources/aws-odb-cloudvmcluster.json | 46 +- .../schema/resources/aws-odb-odbnetwork.json | 151 + .../aws-odb-odbpeeringconnection.json | 66 +- .../resources/aws-omics-configuration.json | 209 + .../schema/resources/aws-omics-workflow.json | 3 +- .../resources/aws-omics-workflowversion.json | 3 +- .../aws-opensearchserverless-collection.json | 106 +- ...-opensearchserverless-collectiongroup.json | 197 + .../aws-opensearchserverless-vpcendpoint.json | 1 + .../aws-opensearchservice-application.json | 13 +- .../aws-opensearchservice-domain.json | 61 + .../resources/aws-organizations-account.json | 46 +- .../aws-organizations-organizationalunit.json | 15 +- .../resources/aws-organizations-policy.json | 17 +- .../aws-organizations-resourcepolicy.json | 2 +- .../schema/resources/aws-osis-pipeline.json | 40 +- .../aws-paymentcryptography-key.json | 65 +- .../aws-pcaconnectorscep-connector.json | 12 +- server/schema/resources/aws-pcs-cluster.json | 143 +- server/schema/resources/aws-pcs-queue.json | 341 +- .../aws-quicksight-actionconnector.json | 654 + .../aws-quicksight-custompermissions.json | 579 + .../resources/aws-quicksight-dashboard.json | 121 +- .../resources/aws-quicksight-dataset.json | 1382 +- .../resources/aws-quicksight-datasource.json | 57 +- .../resources/aws-quicksight-template.json | 280 +- .../resources/aws-ram-resourceshare.json | 269 +- server/schema/resources/aws-rbin-rule.json | 5 +- .../schema/resources/aws-rds-dbcluster.json | 23 +- .../schema/resources/aws-rds-dbinstance.json | 50 +- server/schema/resources/aws-rds-dbproxy.json | 5 +- .../resources/aws-rds-dbproxyendpoint.json | 6 +- .../resources/aws-rds-dbproxytargetgroup.json | 4 + .../resources/aws-redshift-cluster.json | 4 +- .../aws-redshiftserverless-workgroup.json | 5 +- .../resources/aws-rekognition-project.json | 62 +- .../aws-resourceexplorer2-index.json | 2 +- .../resources/aws-resourceexplorer2-view.json | 2 +- .../resources/aws-rolesanywhere-crl.json | 3 + .../resources/aws-route53-hostedzone.json | 23 + ...ws-route53globalresolver-accesssource.json | 237 + ...aws-route53globalresolver-accesstoken.json | 233 + .../aws-route53globalresolver-dnsview.json | 249 + ...te53globalresolver-firewalldomainlist.json | 252 + ...ws-route53globalresolver-firewallrule.json | 256 + ...-route53globalresolver-globalresolver.json | 279 + ...3globalresolver-hostedzoneassociation.json | 160 + .../aws-route53profiles-profile.json | 23 +- ...53profiles-profileresourceassociation.json | 1 + ...aws-route53resolver-firewallrulegroup.json | 5 +- .../aws-route53resolver-resolverendpoint.json | 10 + ...ute53resolver-resolverruleassociation.json | 4 +- .../aws-rtbfabric-inboundexternallink.json | 344 + .../schema/resources/aws-rtbfabric-link.json | 601 + .../aws-rtbfabric-outboundexternallink.json | 344 + .../aws-rtbfabric-requestergateway.json | 291 + .../aws-rtbfabric-respondergateway.json | 496 + .../schema/resources/aws-rum-appmonitor.json | 56 +- .../schema/resources/aws-s3-accessgrant.json | 2 +- .../aws-s3-accessgrantslocation.json | 9 +- server/schema/resources/aws-s3-bucket.json | 202 +- .../schema/resources/aws-s3-storagelens.json | 287 +- .../aws-s3express-directorybucket.json | 159 + .../resources/aws-s3files-accesspoint.json | 278 + .../resources/aws-s3files-filesystem.json | 337 + .../aws-s3files-filesystempolicy.json | 65 + .../resources/aws-s3files-mounttarget.json | 204 + .../schema/resources/aws-s3tables-table.json | 434 +- .../resources/aws-s3tables-tablebucket.json | 187 +- .../schema/resources/aws-s3vectors-index.json | 287 + .../resources/aws-s3vectors-vectorbucket.json | 172 + .../aws-s3vectors-vectorbucketpolicy.json | 109 + .../schema/resources/aws-sagemaker-app.json | 124 +- .../resources/aws-sagemaker-cluster.json | 320 +- .../resources/aws-sagemaker-domain.json | 139 +- .../schema/resources/aws-sagemaker-image.json | 2 +- .../aws-sagemaker-inferencecomponent.json | 3 +- .../aws-sagemaker-inferenceexperiment.json | 12 +- .../schema/resources/aws-sagemaker-model.json | 459 +- .../resources/aws-sagemaker-modelpackage.json | 4 + .../resources/aws-sagemaker-partnerapp.json | 27 +- .../aws-sagemaker-processingjob.json | 1 + .../resources/aws-sagemaker-userprofile.json | 73 +- .../aws-secretsmanager-rotationschedule.json | 43 +- .../resources/aws-secretsmanager-secret.json | 5 + .../aws-securityagent-agentspace.json | 429 + .../aws-securityagent-application.json | 172 + .../resources/aws-securityagent-pentest.json | 504 + .../aws-securityagent-targetdomain.json | 255 + .../aws-securityhub-automationrule.json | 36 +- .../aws-securityhub-automationrulev2.json | 16 +- .../aws-securityhub-connectorv2.json | 286 + .../aws-securityhub-delegatedadmin.json | 4 +- ...ecatalog-launchnotificationconstraint.json | 54 +- ...s-servicecatalog-launchroleconstraint.json | 92 +- .../aws-servicecatalog-portfolio.json | 48 +- ...catalog-portfolioprincipalassociation.json | 82 +- .../aws-servicecatalog-portfolioshare.json | 75 +- ...rvicecatalog-resourceupdateconstraint.json | 69 +- ...aws-servicecatalog-stacksetconstraint.json | 85 +- ...s-servicecatalog-tagoptionassociation.json | 63 +- .../resources/aws-ses-configurationset.json | 60 + ...s-ses-customverificationemailtemplate.json | 139 + .../resources/aws-ses-mailmanagerarchive.json | 3 +- .../aws-ses-mailmanageringresspoint.json | 71 +- .../resources/aws-ses-mailmanagerrelay.json | 2 +- .../resources/aws-ses-mailmanagerruleset.json | 152 +- .../aws-ses-multiregionendpoint.json | 162 + server/schema/resources/aws-ses-template.json | 55 +- server/schema/resources/aws-ses-tenant.json | 158 + .../resources/aws-shield-drtaccess.json | 5 +- .../aws-shield-proactiveengagement.json | 5 +- .../resources/aws-signer-signingprofile.json | 2 +- .../resources/aws-smsvoice-phonenumber.json | 2 +- .../schema/resources/aws-smsvoice-pool.json | 2 +- .../schema/resources/aws-sns-topicpolicy.json | 78 +- server/schema/resources/aws-sqs-queue.json | 24 +- .../schema/resources/aws-sqs-queuepolicy.json | 78 +- server/schema/resources/aws-ssm-document.json | 330 +- .../resources/aws-ssm-maintenancewindow.json | 104 +- .../aws-ssm-maintenancewindowtarget.json | 88 +- .../aws-ssm-maintenancewindowtask.json | 220 +- ...aws-ssmquicksetup-lifecycleautomation.json | 150 + .../schema/resources/aws-sso-application.json | 8 +- .../aws-sso-applicationassignment.json | 2 +- .../schema/resources/aws-sso-assignment.json | 40 +- server/schema/resources/aws-sso-instance.json | 4 +- ...ceaccesscontrolattributeconfiguration.json | 12 +- .../resources/aws-sso-permissionset.json | 21 +- .../aws-stepfunctions-statemachinealias.json | 12 +- .../resources/aws-synthetics-canary.json | 27 +- .../aws-timestream-influxdbcluster.json | 443 + .../aws-timestream-influxdbinstance.json | 10 +- .../resources/aws-transfer-connector.json | 157 +- .../schema/resources/aws-transfer-server.json | 9 +- .../schema/resources/aws-transfer-webapp.json | 85 +- .../aws-uxc-accountcustomization.json | 99 + .../aws-verifiedpermissions-policystore.json | 202 +- .../aws-vpclattice-accesslogsubscription.json | 6 +- .../aws-vpclattice-domainverification.json | 207 + .../aws-vpclattice-resourceconfiguration.json | 95 +- .../aws-vpclattice-resourcegateway.json | 7 +- .../aws-vpclattice-resourcepolicy.json | 2 +- ...ice-servicenetworkresourceassociation.json | 7 +- ...clattice-servicenetworkvpcassociation.json | 44 +- .../aws-wafv2-loggingconfiguration.json | 3 + .../schema/resources/aws-wafv2-rulegroup.json | 17 + server/schema/resources/aws-wafv2-webacl.json | 88 + .../aws-wafv2-webaclassociation.json | 32 +- .../schema/resources/aws-wisdom-aiagent.json | 457 +- .../schema/resources/aws-wisdom-aiprompt.json | 11 +- .../aws-wisdom-assistantassociation.json | 48 +- .../aws-workspaces-connectionalias.json | 5 + .../resources/aws-workspaces-workspace.json | 99 +- .../aws-workspaces-workspacespool.json | 4 +- ...workspacesinstances-workspaceinstance.json | 55 +- .../aws-workspacesweb-browsersettings.json | 82 +- ...-workspacesweb-dataprotectionsettings.json | 2 +- .../aws-workspacesweb-identityprovider.json | 2 +- .../aws-workspacesweb-ipaccesssettings.json | 2 +- .../aws-workspacesweb-networksettings.json | 2 +- .../resources/aws-workspacesweb-portal.json | 8 +- .../aws-workspacesweb-sessionlogger.json | 2 +- .../aws-workspacesweb-truststore.json | 2 +- ...rkspacesweb-useraccessloggingsettings.json | 2 +- .../aws-workspacesweb-usersettings.json | 176 +- .../resources/aws-xray-samplingrule.json | 30 + 596 files changed, 79798 insertions(+), 18651 deletions(-) create mode 100644 server/schema/resources/aws-applicationsignals-groupingconfiguration.json create mode 100644 server/schema/resources/aws-aps-anomalydetector.json create mode 100644 server/schema/resources/aws-backup-tieringconfiguration.json create mode 100644 server/schema/resources/aws-batch-quotashare.json create mode 100644 server/schema/resources/aws-bcmpricingcalculator-billscenario.json create mode 100644 server/schema/resources/aws-bedrock-dataautomationlibrary.json create mode 100644 server/schema/resources/aws-bedrock-enforcedguardrailconfiguration.json create mode 100644 server/schema/resources/aws-bedrock-resourcepolicy.json create mode 100644 server/schema/resources/aws-bedrockagentcore-apikeycredentialprovider.json create mode 100644 server/schema/resources/aws-bedrockagentcore-browserprofile.json create mode 100644 server/schema/resources/aws-bedrockagentcore-evaluator.json create mode 100644 server/schema/resources/aws-bedrockagentcore-gateway.json create mode 100644 server/schema/resources/aws-bedrockagentcore-gatewaytarget.json create mode 100644 server/schema/resources/aws-bedrockagentcore-memory.json create mode 100644 server/schema/resources/aws-bedrockagentcore-oauth2credentialprovider.json create mode 100644 server/schema/resources/aws-bedrockagentcore-onlineevaluationconfig.json create mode 100644 server/schema/resources/aws-bedrockagentcore-policy.json create mode 100644 server/schema/resources/aws-bedrockagentcore-policyengine.json create mode 100644 server/schema/resources/aws-bedrockagentcore-workloadidentity.json create mode 100644 server/schema/resources/aws-bedrockmantle-project.json create mode 100644 server/schema/resources/aws-braket-spendinglimit.json create mode 100644 server/schema/resources/aws-cases-caserule.json create mode 100644 server/schema/resources/aws-cases-domain.json create mode 100644 server/schema/resources/aws-cases-field.json create mode 100644 server/schema/resources/aws-cases-layout.json create mode 100644 server/schema/resources/aws-cases-template.json create mode 100644 server/schema/resources/aws-chime-appinstance.json create mode 100644 server/schema/resources/aws-cleanroomsml-configuredmodelalgorithm.json create mode 100644 server/schema/resources/aws-cleanroomsml-configuredmodelalgorithmassociation.json create mode 100644 server/schema/resources/aws-cloudfront-connectionfunction.json create mode 100644 server/schema/resources/aws-cloudfront-truststore.json create mode 100644 server/schema/resources/aws-cloudwatch-alarmmuterule.json create mode 100644 server/schema/resources/aws-cloudwatch-otelenrichment.json create mode 100644 server/schema/resources/aws-cognito-terms.json create mode 100644 server/schema/resources/aws-computeoptimizer-automationrule.json delete mode 100644 server/schema/resources/aws-config-remediationconfiguration.json create mode 100644 server/schema/resources/aws-connect-contactflowmodulealias.json create mode 100644 server/schema/resources/aws-connect-contactflowmoduleversion.json create mode 100644 server/schema/resources/aws-connect-datatable.json create mode 100644 server/schema/resources/aws-connect-datatableattribute.json create mode 100644 server/schema/resources/aws-connect-datatablerecord.json create mode 100644 server/schema/resources/aws-connect-notification.json create mode 100644 server/schema/resources/aws-connect-workspace.json create mode 100644 server/schema/resources/aws-customerprofiles-domainobjecttype.json create mode 100644 server/schema/resources/aws-customerprofiles-recommender.json create mode 100644 server/schema/resources/aws-devopsagent-agentspace.json create mode 100644 server/schema/resources/aws-devopsagent-association.json create mode 100644 server/schema/resources/aws-devopsagent-privateconnection.json create mode 100644 server/schema/resources/aws-devopsagent-service.json create mode 100644 server/schema/resources/aws-directconnect-connection.json create mode 100644 server/schema/resources/aws-directconnect-directconnectgateway.json create mode 100644 server/schema/resources/aws-directconnect-directconnectgatewayassociation.json create mode 100644 server/schema/resources/aws-directconnect-lag.json create mode 100644 server/schema/resources/aws-directconnect-privatevirtualinterface.json create mode 100644 server/schema/resources/aws-directconnect-publicvirtualinterface.json create mode 100644 server/schema/resources/aws-directconnect-transitvirtualinterface.json create mode 100644 server/schema/resources/aws-docdb-globalcluster.json create mode 100644 server/schema/resources/aws-ec2-capacitymanagerdataexport.json create mode 100644 server/schema/resources/aws-ec2-ipamprefixlistresolver.json create mode 100644 server/schema/resources/aws-ec2-ipamprefixlistresolvertarget.json create mode 100644 server/schema/resources/aws-ec2-sqlhastandbydetectedinstance.json create mode 100644 server/schema/resources/aws-ec2-transitgatewaymeteringpolicy.json create mode 100644 server/schema/resources/aws-ec2-transitgatewaymeteringpolicyentry.json create mode 100644 server/schema/resources/aws-ec2-vpcencryptioncontrol.json create mode 100644 server/schema/resources/aws-ec2-vpnconcentrator.json create mode 100644 server/schema/resources/aws-ecr-pulltimeupdateexclusion.json create mode 100644 server/schema/resources/aws-ecr-signingconfiguration.json create mode 100644 server/schema/resources/aws-ecs-daemon.json create mode 100644 server/schema/resources/aws-ecs-daemontaskdefinition.json create mode 100644 server/schema/resources/aws-ecs-expressgatewayservice.json create mode 100644 server/schema/resources/aws-eks-capability.json create mode 100644 server/schema/resources/aws-elementalinference-feed.json create mode 100644 server/schema/resources/aws-emrcontainers-endpoint.json create mode 100644 server/schema/resources/aws-emrcontainers-securityconfiguration.json create mode 100644 server/schema/resources/aws-glue-catalog.json create mode 100644 server/schema/resources/aws-glue-identitycenterconfiguration.json create mode 100644 server/schema/resources/aws-glue-integration.json create mode 100644 server/schema/resources/aws-glue-integrationresourceproperty.json create mode 100644 server/schema/resources/aws-groundstation-dataflowendpointgroupv2.json create mode 100644 server/schema/resources/aws-interconnect-connection.json delete mode 100644 server/schema/resources/aws-iotfleethub-application.json create mode 100644 server/schema/resources/aws-lambda-capacityprovider.json create mode 100644 server/schema/resources/aws-lightsail-databasesnapshot.json create mode 100644 server/schema/resources/aws-lightsail-disksnapshot.json create mode 100644 server/schema/resources/aws-logs-scheduledquery.json delete mode 100644 server/schema/resources/aws-lookoutmetrics-alert.json delete mode 100644 server/schema/resources/aws-lookoutmetrics-anomalydetector.json create mode 100644 server/schema/resources/aws-mediaconnect-routerinput.json create mode 100644 server/schema/resources/aws-mediaconnect-routernetworkinterface.json create mode 100644 server/schema/resources/aws-mediaconnect-routeroutput.json create mode 100644 server/schema/resources/aws-msk-topic.json create mode 100644 server/schema/resources/aws-mwaaserverless-workflow.json create mode 100644 server/schema/resources/aws-neptunegraph-graphsnapshot.json create mode 100644 server/schema/resources/aws-networkmanager-corenetworkprefixlistassociation.json create mode 100644 server/schema/resources/aws-novaact-workflowdefinition.json create mode 100644 server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json create mode 100644 server/schema/resources/aws-observabilityadmin-s3tableintegration.json create mode 100644 server/schema/resources/aws-observabilityadmin-telemetryenrichment.json create mode 100644 server/schema/resources/aws-observabilityadmin-telemetrypipelines.json create mode 100644 server/schema/resources/aws-omics-configuration.json create mode 100644 server/schema/resources/aws-opensearchserverless-collectiongroup.json create mode 100644 server/schema/resources/aws-quicksight-actionconnector.json create mode 100644 server/schema/resources/aws-route53globalresolver-accesssource.json create mode 100644 server/schema/resources/aws-route53globalresolver-accesstoken.json create mode 100644 server/schema/resources/aws-route53globalresolver-dnsview.json create mode 100644 server/schema/resources/aws-route53globalresolver-firewalldomainlist.json create mode 100644 server/schema/resources/aws-route53globalresolver-firewallrule.json create mode 100644 server/schema/resources/aws-route53globalresolver-globalresolver.json create mode 100644 server/schema/resources/aws-route53globalresolver-hostedzoneassociation.json create mode 100644 server/schema/resources/aws-rtbfabric-inboundexternallink.json create mode 100644 server/schema/resources/aws-rtbfabric-link.json create mode 100644 server/schema/resources/aws-rtbfabric-outboundexternallink.json create mode 100644 server/schema/resources/aws-rtbfabric-requestergateway.json create mode 100644 server/schema/resources/aws-rtbfabric-respondergateway.json create mode 100644 server/schema/resources/aws-s3files-accesspoint.json create mode 100644 server/schema/resources/aws-s3files-filesystem.json create mode 100644 server/schema/resources/aws-s3files-filesystempolicy.json create mode 100644 server/schema/resources/aws-s3files-mounttarget.json create mode 100644 server/schema/resources/aws-s3vectors-index.json create mode 100644 server/schema/resources/aws-s3vectors-vectorbucket.json create mode 100644 server/schema/resources/aws-s3vectors-vectorbucketpolicy.json create mode 100644 server/schema/resources/aws-securityagent-agentspace.json create mode 100644 server/schema/resources/aws-securityagent-application.json create mode 100644 server/schema/resources/aws-securityagent-pentest.json create mode 100644 server/schema/resources/aws-securityagent-targetdomain.json create mode 100644 server/schema/resources/aws-securityhub-connectorv2.json create mode 100644 server/schema/resources/aws-ses-customverificationemailtemplate.json create mode 100644 server/schema/resources/aws-ses-multiregionendpoint.json create mode 100644 server/schema/resources/aws-ses-tenant.json create mode 100644 server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json create mode 100644 server/schema/resources/aws-timestream-influxdbcluster.json create mode 100644 server/schema/resources/aws-uxc-accountcustomization.json create mode 100644 server/schema/resources/aws-vpclattice-domainverification.json diff --git a/server/schema/resources.schema.json b/server/schema/resources.schema.json index 82e70ad0..ddbf4f27 100644 --- a/server/schema/resources.schema.json +++ b/server/schema/resources.schema.json @@ -32,9 +32,9 @@ ], "additionalProperties": false }, - "AWS_Kendra_Index": { + "AWS_NetworkFirewall_TLSInspectionConfiguration": { "type": "object", - "markdownDescription": "A Kendra index \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html)", + "markdownDescription": "Resource type definition for AWS::NetworkFirewall::TLSInspectionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-tlsinspectionconfiguration.html)", "allOf": [ { "type": "object", @@ -42,14 +42,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Kendra::Index" + "AWS::NetworkFirewall::TLSInspectionConfiguration" ], "markdownEnumDescriptions": [ - "A Kendra index \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html)" + "Resource type definition for AWS::NetworkFirewall::TLSInspectionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-tlsinspectionconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-kendra-index.json" + "$ref": "resources/aws-networkfirewall-tlsinspectionconfiguration.json" } }, "required": [ @@ -63,9 +63,9 @@ ], "additionalProperties": false }, - "AWS_S3_AccessGrantsLocation": { + "AWS_RDS_DBClusterParameterGroup": { "type": "object", - "markdownDescription": "The AWS::S3::AccessGrantsLocation resource is an Amazon S3 resource type hosted in an access grants instance which can be the target of S3 access grants. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantslocation.html)", + "markdownDescription": "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html)", "allOf": [ { "type": "object", @@ -73,18 +73,19 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::AccessGrantsLocation" + "AWS::RDS::DBClusterParameterGroup" ], "markdownEnumDescriptions": [ - "The AWS::S3::AccessGrantsLocation resource is an Amazon S3 resource type hosted in an access grants instance which can be the target of S3 access grants. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantslocation.html)" + "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-accessgrantslocation.json" + "$ref": "resources/aws-rds-dbclusterparametergroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -93,9 +94,9 @@ ], "additionalProperties": false }, - "AWS_CloudWatch_InsightRule": { + "AWS_FIS_ExperimentTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudWatch::InsightRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html)", + "markdownDescription": "Resource schema for AWS::FIS::ExperimentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html)", "allOf": [ { "type": "object", @@ -103,14 +104,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudWatch::InsightRule" + "AWS::FIS::ExperimentTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudWatch::InsightRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html)" + "Resource schema for AWS::FIS::ExperimentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudwatch-insightrule.json" + "$ref": "resources/aws-fis-experimenttemplate.json" } }, "required": [ @@ -124,9 +125,9 @@ ], "additionalProperties": false }, - "AWS_IAM_SAMLProvider": { + "AWS_Route53_DNSSEC": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::SAMLProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html)", + "markdownDescription": "Resource used to control (enable/disable) DNSSEC in a specific hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html)", "allOf": [ { "type": "object", @@ -134,18 +135,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::SAMLProvider" + "AWS::Route53::DNSSEC" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::SAMLProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html)" + "Resource used to control (enable/disable) DNSSEC in a specific hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-samlprovider.json" + "$ref": "resources/aws-route53-dnssec.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -154,9 +156,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerAddonInstance": { + "AWS_Wisdom_AIGuardrailVersion": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerAddonInstance Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddoninstance.html)", + "markdownDescription": "Definition of AWS::Wisdom::AIGuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrailversion.html)", "allOf": [ { "type": "object", @@ -164,14 +166,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerAddonInstance" + "AWS::Wisdom::AIGuardrailVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerAddonInstance Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddoninstance.html)" + "Definition of AWS::Wisdom::AIGuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrailversion.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanageraddoninstance.json" + "$ref": "resources/aws-wisdom-aiguardrailversion.json" } }, "required": [ @@ -185,9 +187,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AIAgentVersion": { + "AWS_EMRContainers_VirtualCluster": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AIAgentVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagentversion.html)", + "markdownDescription": "Resource Schema of AWS::EMRContainers::VirtualCluster Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html)", "allOf": [ { "type": "object", @@ -195,14 +197,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AIAgentVersion" + "AWS::EMRContainers::VirtualCluster" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AIAgentVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagentversion.html)" + "Resource Schema of AWS::EMRContainers::VirtualCluster Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-aiagentversion.json" + "$ref": "resources/aws-emrcontainers-virtualcluster.json" } }, "required": [ @@ -216,9 +218,9 @@ ], "additionalProperties": false }, - "AWS_CloudTrail_Trail": { + "AWS_AppRunner_Service": { "type": "object", - "markdownDescription": "Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. A maximum of five trails can exist in a region, irrespective of the region in which they were created. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html)", + "markdownDescription": "The AWS::AppRunner::Service resource specifies an AppRunner Service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html)", "allOf": [ { "type": "object", @@ -226,14 +228,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudTrail::Trail" + "AWS::AppRunner::Service" ], "markdownEnumDescriptions": [ - "Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. A maximum of five trails can exist in a region, irrespective of the region in which they were created. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html)" + "The AWS::AppRunner::Service resource specifies an AppRunner Service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudtrail-trail.json" + "$ref": "resources/aws-apprunner-service.json" } }, "required": [ @@ -247,9 +249,9 @@ ], "additionalProperties": false }, - "AWS_FSx_FileSystem": { + "AWS_PCS_Cluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::FSx::FileSystem \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html)", + "markdownDescription": "AWS::PCS::Cluster resource creates an AWS PCS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html)", "allOf": [ { "type": "object", @@ -257,14 +259,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FSx::FileSystem" + "AWS::PCS::Cluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::FSx::FileSystem \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html)" + "AWS::PCS::Cluster resource creates an AWS PCS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-fsx-filesystem.json" + "$ref": "resources/aws-pcs-cluster.json" } }, "required": [ @@ -278,9 +280,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_DeviceFleet": { + "AWS_Greengrass_CoreDefinition": { "type": "object", - "markdownDescription": "Resource schema for AWS::SageMaker::DeviceFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-devicefleet.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::CoreDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html)", "allOf": [ { "type": "object", @@ -288,14 +290,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::DeviceFleet" + "AWS::Greengrass::CoreDefinition" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::SageMaker::DeviceFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-devicefleet.html)" + "Resource Type definition for AWS::Greengrass::CoreDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-devicefleet.json" + "$ref": "resources/aws-greengrass-coredefinition.json" } }, "required": [ @@ -309,9 +311,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayMulticastDomainAssociation": { + "AWS_Route53Resolver_ResolverDNSSECConfig": { "type": "object", - "markdownDescription": "The AWS::EC2::TransitGatewayMulticastDomainAssociation type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverDNSSECConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverdnssecconfig.html)", "allOf": [ { "type": "object", @@ -319,14 +321,44 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayMulticastDomainAssociation" + "AWS::Route53Resolver::ResolverDNSSECConfig" ], "markdownEnumDescriptions": [ - "The AWS::EC2::TransitGatewayMulticastDomainAssociation type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html)" + "Resource schema for AWS::Route53Resolver::ResolverDNSSECConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverdnssecconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewaymulticastdomainassociation.json" + "$ref": "resources/aws-route53resolver-resolverdnssecconfig.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_WAF_IPSet": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::WAF::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::WAF::IPSet" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::WAF::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-waf-ipset.json" } }, "required": [ @@ -340,9 +372,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_DirectoryConfig": { + "AWS_RDS_CustomDBEngineVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::DirectoryConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html)", + "markdownDescription": "Creates a custom DB engine version (CEV). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html)", "allOf": [ { "type": "object", @@ -350,14 +382,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::DirectoryConfig" + "AWS::RDS::CustomDBEngineVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::DirectoryConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html)" + "Creates a custom DB engine version (CEV). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-directoryconfig.json" + "$ref": "resources/aws-rds-customdbengineversion.json" } }, "required": [ @@ -371,9 +403,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_ServiceAction": { + "AWS_S3Outposts_AccessPoint": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalog::ServiceAction \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceaction.html)", + "markdownDescription": "Resource Type Definition for AWS::S3Outposts::AccessPoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html)", "allOf": [ { "type": "object", @@ -381,14 +413,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::ServiceAction" + "AWS::S3Outposts::AccessPoint" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalog::ServiceAction \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceaction.html)" + "Resource Type Definition for AWS::S3Outposts::AccessPoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-serviceaction.json" + "$ref": "resources/aws-s3outposts-accesspoint.json" } }, "required": [ @@ -402,9 +434,9 @@ ], "additionalProperties": false }, - "AWS_Logs_ResourcePolicy": { + "AWS_WAFRegional_SqlInjectionMatchSet": { "type": "object", - "markdownDescription": "The resource schema for AWSLogs ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html)", "allOf": [ { "type": "object", @@ -412,14 +444,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::ResourcePolicy" + "AWS::WAFRegional::SqlInjectionMatchSet" ], "markdownEnumDescriptions": [ - "The resource schema for AWSLogs ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html)" + "Resource Type definition for AWS::WAFRegional::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-resourcepolicy.json" + "$ref": "resources/aws-wafregional-sqlinjectionmatchset.json" } }, "required": [ @@ -433,9 +465,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_IPSet": { + "AWS_CloudFront_VpcOrigin": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html)", + "markdownDescription": "An Amazon CloudFront VPC origin. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html)", "allOf": [ { "type": "object", @@ -443,14 +475,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::IPSet" + "AWS::CloudFront::VpcOrigin" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html)" + "An Amazon CloudFront VPC origin. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-ipset.json" + "$ref": "resources/aws-cloudfront-vpcorigin.json" } }, "required": [ @@ -464,9 +496,9 @@ ], "additionalProperties": false }, - "AWS_EKS_Nodegroup": { + "AWS_DocDB_DBInstance": { "type": "object", - "markdownDescription": "Resource schema for AWS::EKS::Nodegroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html)", + "markdownDescription": "Resource Type definition for AWS::DocDB::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html)", "allOf": [ { "type": "object", @@ -474,14 +506,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::Nodegroup" + "AWS::DocDB::DBInstance" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EKS::Nodegroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html)" + "Resource Type definition for AWS::DocDB::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-nodegroup.json" + "$ref": "resources/aws-docdb-dbinstance.json" } }, "required": [ @@ -495,9 +527,9 @@ ], "additionalProperties": false }, - "AWS_EC2_Subnet": { + "AWS_AppSync_Api": { "type": "object", - "markdownDescription": "Specifies a subnet for the specified VPC.\n For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.\n For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)", + "markdownDescription": "Resource schema for AppSync Api \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html)", "allOf": [ { "type": "object", @@ -505,14 +537,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::Subnet" + "AWS::AppSync::Api" ], "markdownEnumDescriptions": [ - "Specifies a subnet for the specified VPC.\n For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.\n For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)" + "Resource schema for AppSync Api \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-subnet.json" + "$ref": "resources/aws-appsync-api.json" } }, "required": [ @@ -526,9 +558,9 @@ ], "additionalProperties": false }, - "AWS_AppTest_TestCase": { + "AWS_Timestream_ScheduledQuery": { "type": "object", - "markdownDescription": "Represents a Test Case that can be captured and executed \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apptest-testcase.html)", + "markdownDescription": "The AWS::Timestream::ScheduledQuery resource creates a Timestream Scheduled Query. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-scheduledquery.html)", "allOf": [ { "type": "object", @@ -536,14 +568,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppTest::TestCase" + "AWS::Timestream::ScheduledQuery" ], "markdownEnumDescriptions": [ - "Represents a Test Case that can be captured and executed \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apptest-testcase.html)" + "The AWS::Timestream::ScheduledQuery resource creates a Timestream Scheduled Query. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-scheduledquery.html)" ] }, "Properties": { - "$ref": "resources/aws-apptest-testcase.json" + "$ref": "resources/aws-timestream-scheduledquery.json" } }, "required": [ @@ -557,9 +589,9 @@ ], "additionalProperties": false }, - "AWS_Detective_Graph": { + "AWS_DevOpsAgent_Association": { "type": "object", - "markdownDescription": "Resource schema for AWS::Detective::Graph \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html)", + "markdownDescription": "Resource Type definition for AWS::DevOpsAgent::Association defining how the AgentSpace interacts with external services like GitHub, Slack, AWS accounts, and others. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-association.html)", "allOf": [ { "type": "object", @@ -567,14 +599,45 @@ "Type": { "type": "string", "enum": [ - "AWS::Detective::Graph" + "AWS::DevOpsAgent::Association" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Detective::Graph \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html)" + "Resource Type definition for AWS::DevOpsAgent::Association defining how the AgentSpace interacts with external services like GitHub, Slack, AWS accounts, and others. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-association.html)" ] }, "Properties": { - "$ref": "resources/aws-detective-graph.json" + "$ref": "resources/aws-devopsagent-association.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_ElasticLoadBalancingV2_TrustStoreRevocation": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStoreRevocation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststorerevocation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStoreRevocation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststorerevocation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-elasticloadbalancingv2-truststorerevocation.json" } }, "required": [ @@ -587,9 +650,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPNConnectionRoute": { + "AWS_EC2_RouteServerPeer": { "type": "object", - "markdownDescription": "Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnectionroute.html)", + "markdownDescription": "VPC Route Server Peer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html)", "allOf": [ { "type": "object", @@ -597,14 +660,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::RouteServerPeer" ], "markdownEnumDescriptions": [ - "Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnectionroute.html)" + "VPC Route Server Peer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpnconnectionroute.json" + "$ref": "resources/aws-ec2-routeserverpeer.json" } }, "required": [ @@ -618,9 +681,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_ContainerRecipe": { + "AWS_EC2_NetworkAclEntry": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::ContainerRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::NetworkAclEntry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html)", "allOf": [ { "type": "object", @@ -628,18 +691,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::ContainerRecipe" + "AWS::EC2::NetworkAclEntry" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::ContainerRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html)" + "Resource Type definition for AWS::EC2::NetworkAclEntry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-containerrecipe.json" + "$ref": "resources/aws-ec2-networkaclentry.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -648,9 +712,9 @@ ], "additionalProperties": false }, - "AWS_Shield_ProtectionGroup": { + "AWS_MPA_IdentitySource": { "type": "object", - "markdownDescription": "A grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protectiongroup.html)", + "markdownDescription": "Resource Type definition for AWS::MPA::IdentitySource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-identitysource.html)", "allOf": [ { "type": "object", @@ -658,14 +722,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Shield::ProtectionGroup" + "AWS::MPA::IdentitySource" ], "markdownEnumDescriptions": [ - "A grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protectiongroup.html)" + "Resource Type definition for AWS::MPA::IdentitySource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-identitysource.html)" ] }, "Properties": { - "$ref": "resources/aws-shield-protectiongroup.json" + "$ref": "resources/aws-mpa-identitysource.json" } }, "required": [ @@ -679,9 +743,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_Destination": { + "AWS_Connect_DataTableAttribute": { "type": "object", - "markdownDescription": "Destination's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::DataTableAttribute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-datatableattribute.html)", "allOf": [ { "type": "object", @@ -689,14 +753,74 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::Destination" + "AWS::Connect::DataTableAttribute" ], "markdownEnumDescriptions": [ - "Destination's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html)" + "Resource Type definition for AWS::Connect::DataTableAttribute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-datatableattribute.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-destination.json" + "$ref": "resources/aws-connect-datatableattribute.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Route53RecoveryControl_SafetyRule": { + "type": "object", + "markdownDescription": "Resource schema for AWS Route53 Recovery Control basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-safetyrule.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Route53RecoveryControl::SafetyRule" + ], + "markdownEnumDescriptions": [ + "Resource schema for AWS Route53 Recovery Control basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-safetyrule.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-route53recoverycontrol-safetyrule.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SageMaker_FeatureGroup": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::SageMaker::FeatureGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-featuregroup.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SageMaker::FeatureGroup" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::SageMaker::FeatureGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-featuregroup.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-sagemaker-featuregroup.json" } }, "required": [ @@ -710,9 +834,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_GlobalNetwork": { + "AWS_MediaLive_Input": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::GlobalNetwork type specifies a global network of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html)", + "markdownDescription": "Resource Type definition for AWS::MediaLive::Input \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html)", "allOf": [ { "type": "object", @@ -720,14 +844,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::GlobalNetwork" + "AWS::MediaLive::Input" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::GlobalNetwork type specifies a global network of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html)" + "Resource Type definition for AWS::MediaLive::Input \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-globalnetwork.json" + "$ref": "resources/aws-medialive-input.json" } }, "required": [ @@ -740,9 +864,9 @@ ], "additionalProperties": false }, - "AWS_MSK_BatchScramSecret": { + "AWS_KinesisAnalyticsV2_ApplicationOutput": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::BatchScramSecret \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html)", "allOf": [ { "type": "object", @@ -750,14 +874,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::BatchScramSecret" + "AWS::KinesisAnalyticsV2::ApplicationOutput" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::BatchScramSecret \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html)" + "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-batchscramsecret.json" + "$ref": "resources/aws-kinesisanalyticsv2-applicationoutput.json" } }, "required": [ @@ -771,9 +895,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_EmailTemplate": { + "AWS_AutoScaling_ScalingPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::EmailTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailtemplate.html)", + "markdownDescription": "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scalingpolicy.html)", "allOf": [ { "type": "object", @@ -781,14 +905,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::EmailTemplate" + "AWS::AutoScaling::ScalingPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::EmailTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailtemplate.html)" + "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scalingpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-emailtemplate.json" + "$ref": "resources/aws-autoscaling-scalingpolicy.json" } }, "required": [ @@ -802,9 +926,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_ManagedNotificationAccountContactAssociation": { + "AWS_MWAAServerless_Workflow": { "type": "object", - "markdownDescription": "Resource Type definition for ManagedNotificationAccountContactAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationaccountcontactassociation.html)", + "markdownDescription": "Resource Type definition for AWS::MWAAServerless::Workflow resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaaserverless-workflow.html)", "allOf": [ { "type": "object", @@ -812,14 +936,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::ManagedNotificationAccountContactAssociation" + "AWS::MWAAServerless::Workflow" ], "markdownEnumDescriptions": [ - "Resource Type definition for ManagedNotificationAccountContactAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationaccountcontactassociation.html)" + "Resource Type definition for AWS::MWAAServerless::Workflow resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaaserverless-workflow.html)" ] }, "Properties": { - "$ref": "resources/aws-notifications-managednotificationaccountcontactassociation.json" + "$ref": "resources/aws-mwaaserverless-workflow.json" } }, "required": [ @@ -833,9 +957,9 @@ ], "additionalProperties": false }, - "AWS_Athena_CapacityReservation": { + "AWS_CodeArtifact_PackageGroup": { "type": "object", - "markdownDescription": "Resource schema for AWS::Athena::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-capacityreservation.html)", + "markdownDescription": "The resource schema to create a CodeArtifact package group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html)", "allOf": [ { "type": "object", @@ -843,14 +967,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Athena::CapacityReservation" + "AWS::CodeArtifact::PackageGroup" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Athena::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-capacityreservation.html)" + "The resource schema to create a CodeArtifact package group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-athena-capacityreservation.json" + "$ref": "resources/aws-codeartifact-packagegroup.json" } }, "required": [ @@ -864,9 +988,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_CloudFormationProvisionedProduct": { + "AWS_EC2_VPNConnectionRoute": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalog::CloudFormationProvisionedProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html)", + "markdownDescription": "Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnectionroute.html)", "allOf": [ { "type": "object", @@ -874,18 +998,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + "AWS::EC2::VPNConnectionRoute" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalog::CloudFormationProvisionedProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html)" + "Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnectionroute.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-cloudformationprovisionedproduct.json" + "$ref": "resources/aws-ec2-vpnconnectionroute.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -894,9 +1019,9 @@ ], "additionalProperties": false }, - "AWS_Omics_RunGroup": { + "AWS_GameLift_Location": { "type": "object", - "markdownDescription": "Definition of AWS::Omics::RunGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-rungroup.html)", + "markdownDescription": "The AWS::GameLift::Location resource creates an Amazon GameLift (GameLift) custom location. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-location.html)", "allOf": [ { "type": "object", @@ -904,18 +1029,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::RunGroup" + "AWS::GameLift::Location" ], "markdownEnumDescriptions": [ - "Definition of AWS::Omics::RunGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-rungroup.html)" + "The AWS::GameLift::Location resource creates an Amazon GameLift (GameLift) custom location. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-location.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-rungroup.json" + "$ref": "resources/aws-gamelift-location.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -924,9 +1050,9 @@ ], "additionalProperties": false }, - "AWS_PinpointEmail_ConfigurationSet": { + "AWS_Greengrass_SubscriptionDefinitionVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::PinpointEmail::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::SubscriptionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html)", "allOf": [ { "type": "object", @@ -934,14 +1060,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PinpointEmail::ConfigurationSet" + "AWS::Greengrass::SubscriptionDefinitionVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::PinpointEmail::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html)" + "Resource Type definition for AWS::Greengrass::SubscriptionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpointemail-configurationset.json" + "$ref": "resources/aws-greengrass-subscriptiondefinitionversion.json" } }, "required": [ @@ -955,9 +1081,9 @@ ], "additionalProperties": false }, - "AWS_S3Tables_TableBucketPolicy": { + "AWS_Cases_Field": { "type": "object", - "markdownDescription": "Applies an IAM resource policy to a table bucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucketpolicy.html)", + "markdownDescription": "A field in the Cases domain. This field is used to define the case object model (that is, defines what data can be captured on cases) in a Cases domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-field.html)", "allOf": [ { "type": "object", @@ -965,14 +1091,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Tables::TableBucketPolicy" + "AWS::Cases::Field" ], "markdownEnumDescriptions": [ - "Applies an IAM resource policy to a table bucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucketpolicy.html)" + "A field in the Cases domain. This field is used to define the case object model (that is, defines what data can be captured on cases) in a Cases domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-field.html)" ] }, "Properties": { - "$ref": "resources/aws-s3tables-tablebucketpolicy.json" + "$ref": "resources/aws-cases-field.json" } }, "required": [ @@ -986,9 +1112,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LocalGatewayRoute": { + "AWS_DataBrew_Dataset": { "type": "object", - "markdownDescription": "Resource Type definition for Local Gateway Route which describes a route for a local gateway route table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html)", + "markdownDescription": "Resource schema for AWS::DataBrew::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html)", "allOf": [ { "type": "object", @@ -996,18 +1122,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LocalGatewayRoute" + "AWS::DataBrew::Dataset" ], "markdownEnumDescriptions": [ - "Resource Type definition for Local Gateway Route which describes a route for a local gateway route table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html)" + "Resource schema for AWS::DataBrew::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-localgatewayroute.json" + "$ref": "resources/aws-databrew-dataset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1016,9 +1143,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPC": { + "AWS_MediaStore_Container": { "type": "object", - "markdownDescription": "Specifies a virtual private cloud (VPC).\n To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html)", + "markdownDescription": "Resource Type definition for AWS::MediaStore::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html)", "allOf": [ { "type": "object", @@ -1026,18 +1153,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPC" + "AWS::MediaStore::Container" ], "markdownEnumDescriptions": [ - "Specifies a virtual private cloud (VPC).\n To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html)" + "Resource Type definition for AWS::MediaStore::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpc.json" + "$ref": "resources/aws-mediastore-container.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1046,9 +1174,9 @@ ], "additionalProperties": false }, - "AWS_IoT_ResourceSpecificLogging": { + "AWS_Glue_Crawler": { "type": "object", - "markdownDescription": "Resource-specific logging allows you to specify a logging level for a specific thing group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Crawler \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html)", "allOf": [ { "type": "object", @@ -1056,14 +1184,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::ResourceSpecificLogging" + "AWS::Glue::Crawler" ], "markdownEnumDescriptions": [ - "Resource-specific logging allows you to specify a logging level for a specific thing group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html)" + "Resource Type definition for AWS::Glue::Crawler \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-resourcespecificlogging.json" + "$ref": "resources/aws-glue-crawler.json" } }, "required": [ @@ -1077,9 +1205,9 @@ ], "additionalProperties": false }, - "AWS_DevOpsGuru_LogAnomalyDetectionIntegration": { + "AWS_GroundStation_Config": { "type": "object", - "markdownDescription": "This resource schema represents the LogAnomalyDetectionIntegration resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-loganomalydetectionintegration.html)", + "markdownDescription": "AWS Ground Station config resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html)", "allOf": [ { "type": "object", @@ -1087,18 +1215,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" + "AWS::GroundStation::Config" ], "markdownEnumDescriptions": [ - "This resource schema represents the LogAnomalyDetectionIntegration resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-loganomalydetectionintegration.html)" + "AWS Ground Station config resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html)" ] }, "Properties": { - "$ref": "resources/aws-devopsguru-loganomalydetectionintegration.json" + "$ref": "resources/aws-groundstation-config.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1138,9 +1267,9 @@ ], "additionalProperties": false }, - "AWS_DevOpsGuru_ResourceCollection": { + "AWS_Glue_Database": { "type": "object", - "markdownDescription": "This resource schema represents the ResourceCollection resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html)", "allOf": [ { "type": "object", @@ -1148,14 +1277,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DevOpsGuru::ResourceCollection" + "AWS::Glue::Database" ], "markdownEnumDescriptions": [ - "This resource schema represents the ResourceCollection resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html)" + "Resource Type definition for AWS::Glue::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html)" ] }, "Properties": { - "$ref": "resources/aws-devopsguru-resourcecollection.json" + "$ref": "resources/aws-glue-database.json" } }, "required": [ @@ -1169,9 +1298,9 @@ ], "additionalProperties": false }, - "AWS_WAF_XssMatchSet": { + "AWS_IoT_ThingGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::ThingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html)", "allOf": [ { "type": "object", @@ -1179,19 +1308,18 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::XssMatchSet" + "AWS::IoT::ThingGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html)" + "Resource Type definition for AWS::IoT::ThingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-xssmatchset.json" + "$ref": "resources/aws-iot-thinggroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -1200,9 +1328,9 @@ ], "additionalProperties": false }, - "AWS_Amplify_Branch": { + "AWS_Events_Rule": { "type": "object", - "markdownDescription": "The AWS::Amplify::Branch resource creates a new branch within an app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html)", + "markdownDescription": "Resource Type definition for AWS::Events::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html)", "allOf": [ { "type": "object", @@ -1210,19 +1338,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Amplify::Branch" + "AWS::Events::Rule" ], "markdownEnumDescriptions": [ - "The AWS::Amplify::Branch resource creates a new branch within an app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html)" + "Resource Type definition for AWS::Events::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html)" ] }, "Properties": { - "$ref": "resources/aws-amplify-branch.json" + "$ref": "resources/aws-events-rule.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -1231,9 +1358,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_AgentAlias": { + "AWS_WAF_ByteMatchSet": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::AgentAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html)", + "markdownDescription": "Resource Type definition for AWS::WAF::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html)", "allOf": [ { "type": "object", @@ -1241,14 +1368,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::AgentAlias" + "AWS::WAF::ByteMatchSet" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::AgentAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html)" + "Resource Type definition for AWS::WAF::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-agentalias.json" + "$ref": "resources/aws-waf-bytematchset.json" } }, "required": [ @@ -1262,9 +1389,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_WebExperience": { + "AWS_DataBrew_Recipe": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::WebExperience Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-webexperience.html)", + "markdownDescription": "Resource schema for AWS::DataBrew::Recipe. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html)", "allOf": [ { "type": "object", @@ -1272,14 +1399,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::WebExperience" + "AWS::DataBrew::Recipe" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::WebExperience Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-webexperience.html)" + "Resource schema for AWS::DataBrew::Recipe. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-webexperience.json" + "$ref": "resources/aws-databrew-recipe.json" } }, "required": [ @@ -1293,9 +1420,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_ClusterSecurityGroupIngress": { + "AWS_Location_GeofenceCollection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html)", + "markdownDescription": "Definition of AWS::Location::GeofenceCollection Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html)", "allOf": [ { "type": "object", @@ -1303,14 +1430,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::ClusterSecurityGroupIngress" + "AWS::Location::GeofenceCollection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Redshift::ClusterSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html)" + "Definition of AWS::Location::GeofenceCollection Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-clustersecuritygroupingress.json" + "$ref": "resources/aws-location-geofencecollection.json" } }, "required": [ @@ -1324,9 +1451,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_FlowVpcInterface": { + "AWS_EC2_VPCPeeringConnection": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::FlowVpcInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCPeeringConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html)", "allOf": [ { "type": "object", @@ -1334,14 +1461,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::FlowVpcInterface" + "AWS::EC2::VPCPeeringConnection" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::FlowVpcInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html)" + "Resource Type definition for AWS::EC2::VPCPeeringConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-flowvpcinterface.json" + "$ref": "resources/aws-ec2-vpcpeeringconnection.json" } }, "required": [ @@ -1355,9 +1482,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_ConnectorDefinitionVersion": { + "AWS_EC2_EgressOnlyInternetGateway": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::ConnectorDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::EgressOnlyInternetGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html)", "allOf": [ { "type": "object", @@ -1365,14 +1492,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::ConnectorDefinitionVersion" + "AWS::EC2::EgressOnlyInternetGateway" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::ConnectorDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html)" + "Resource Type definition for AWS::EC2::EgressOnlyInternetGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-connectordefinitionversion.json" + "$ref": "resources/aws-ec2-egressonlyinternetgateway.json" } }, "required": [ @@ -1386,9 +1513,9 @@ ], "additionalProperties": false }, - "AWS_IAM_User": { + "AWS_EventSchemas_Schema": { "type": "object", - "markdownDescription": "Creates a new IAM user for your AWS-account.\n For information about quotas for the number of IAM users you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html)", + "markdownDescription": "Resource Type definition for AWS::EventSchemas::Schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html)", "allOf": [ { "type": "object", @@ -1396,18 +1523,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::User" + "AWS::EventSchemas::Schema" ], "markdownEnumDescriptions": [ - "Creates a new IAM user for your AWS-account.\n For information about quotas for the number of IAM users you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html)" + "Resource Type definition for AWS::EventSchemas::Schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-user.json" + "$ref": "resources/aws-eventschemas-schema.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1416,9 +1544,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_Extension": { + "AWS_Omics_WorkflowVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppConfig::Extension \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html)", + "markdownDescription": "Definition of AWS::Omics::WorkflowVersion Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflowversion.html)", "allOf": [ { "type": "object", @@ -1426,14 +1554,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::Extension" + "AWS::Omics::WorkflowVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppConfig::Extension \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html)" + "Definition of AWS::Omics::WorkflowVersion Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflowversion.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-extension.json" + "$ref": "resources/aws-omics-workflowversion.json" } }, "required": [ @@ -1447,9 +1575,9 @@ ], "additionalProperties": false }, - "AWS_ARCRegionSwitch_Plan": { + "Alexa_ASK_Skill": { "type": "object", - "markdownDescription": "Represents a plan that specifies Regions, IAM roles, and workflows of logic required to perform the desired change to your multi-Region application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arcregionswitch-plan.html)", + "markdownDescription": "Resource Type definition for Alexa::ASK::Skill \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-alexa-ask-skill.html)", "allOf": [ { "type": "object", @@ -1457,14 +1585,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ARCRegionSwitch::Plan" + "Alexa::ASK::Skill" ], "markdownEnumDescriptions": [ - "Represents a plan that specifies Regions, IAM roles, and workflows of logic required to perform the desired change to your multi-Region application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arcregionswitch-plan.html)" + "Resource Type definition for Alexa::ASK::Skill \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-alexa-ask-skill.html)" ] }, "Properties": { - "$ref": "resources/aws-arcregionswitch-plan.json" + "$ref": "resources/alexa-ask-skill.json" } }, "required": [ @@ -1478,9 +1606,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInsightsAccessScope": { + "AWS_NetworkFirewall_RuleGroup": { "type": "object", - "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsAccessScope \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscope.html)", + "markdownDescription": "Resource type definition for AWS::NetworkFirewall::RuleGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html)", "allOf": [ { "type": "object", @@ -1488,18 +1616,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInsightsAccessScope" + "AWS::NetworkFirewall::RuleGroup" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EC2::NetworkInsightsAccessScope \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscope.html)" + "Resource type definition for AWS::NetworkFirewall::RuleGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinsightsaccessscope.json" + "$ref": "resources/aws-networkfirewall-rulegroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1508,9 +1637,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_SecurityGroupIngress": { + "AWS_SSMContacts_Rotation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroupingress.html)", + "markdownDescription": "Resource Type definition for AWS::SSMContacts::Rotation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html)", "allOf": [ { "type": "object", @@ -1518,14 +1647,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::SecurityGroupIngress" + "AWS::SSMContacts::Rotation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroupingress.html)" + "Resource Type definition for AWS::SSMContacts::Rotation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-securitygroupingress.json" + "$ref": "resources/aws-ssmcontacts-rotation.json" } }, "required": [ @@ -1539,9 +1668,9 @@ ], "additionalProperties": false }, - "AWS_IoTTwinMaker_Entity": { + "AWS_S3Files_MountTarget": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTTwinMaker::Entity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-entity.html)", + "markdownDescription": "Resource Type definition for AWS::S3Files::MountTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-mounttarget.html)", "allOf": [ { "type": "object", @@ -1549,14 +1678,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTTwinMaker::Entity" + "AWS::S3Files::MountTarget" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTTwinMaker::Entity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-entity.html)" + "Resource Type definition for AWS::S3Files::MountTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-mounttarget.html)" ] }, "Properties": { - "$ref": "resources/aws-iottwinmaker-entity.json" + "$ref": "resources/aws-s3files-mounttarget.json" } }, "required": [ @@ -1570,9 +1699,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_SecurityPolicy": { + "AWS_ApiGateway_Deployment": { "type": "object", - "markdownDescription": "Amazon OpenSearchServerless security policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securitypolicy.html)", + "markdownDescription": "The ``AWS::ApiGateway::Deployment`` resource deploys an API Gateway ``RestApi`` resource to a stage so that clients can call the API over the internet. The stage acts as an environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html)", "allOf": [ { "type": "object", @@ -1580,14 +1709,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::SecurityPolicy" + "AWS::ApiGateway::Deployment" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchServerless security policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securitypolicy.html)" + "The ``AWS::ApiGateway::Deployment`` resource deploys an API Gateway ``RestApi`` resource to a stage so that clients can call the API over the internet. The stage acts as an environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-securitypolicy.json" + "$ref": "resources/aws-apigateway-deployment.json" } }, "required": [ @@ -1601,9 +1730,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayMulticastGroupMember": { + "AWS_CloudFormation_HookVersion": { "type": "object", - "markdownDescription": "The AWS::EC2::TransitGatewayMulticastGroupMember registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html)", + "markdownDescription": "Publishes new or first hook version to AWS CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html)", "allOf": [ { "type": "object", @@ -1611,14 +1740,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupMember" + "AWS::CloudFormation::HookVersion" ], "markdownEnumDescriptions": [ - "The AWS::EC2::TransitGatewayMulticastGroupMember registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html)" + "Publishes new or first hook version to AWS CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewaymulticastgroupmember.json" + "$ref": "resources/aws-cloudformation-hookversion.json" } }, "required": [ @@ -1632,9 +1761,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_LifecyclePolicy": { + "AWS_Greengrass_GroupVersion": { "type": "object", - "markdownDescription": "Amazon OpenSearchServerless lifecycle policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-lifecyclepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::GroupVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html)", "allOf": [ { "type": "object", @@ -1642,14 +1771,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::LifecyclePolicy" + "AWS::Greengrass::GroupVersion" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchServerless lifecycle policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-lifecyclepolicy.html)" + "Resource Type definition for AWS::Greengrass::GroupVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-lifecyclepolicy.json" + "$ref": "resources/aws-greengrass-groupversion.json" } }, "required": [ @@ -1663,9 +1792,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalytics_ApplicationOutput": { + "AWS_EC2_SecurityGroupEgress": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisAnalytics::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html)", + "markdownDescription": "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html)", "allOf": [ { "type": "object", @@ -1673,14 +1802,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalytics::ApplicationOutput" + "AWS::EC2::SecurityGroupEgress" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisAnalytics::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html)" + "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalytics-applicationoutput.json" + "$ref": "resources/aws-ec2-securitygroupegress.json" } }, "required": [ @@ -1694,9 +1823,9 @@ ], "additionalProperties": false }, - "AWS_CloudTrail_Dashboard": { + "AWS_Connect_EvaluationForm": { "type": "object", - "markdownDescription": "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-dashboard.html)", + "markdownDescription": "Creates an evaluation form for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-evaluationform.html)", "allOf": [ { "type": "object", @@ -1704,18 +1833,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudTrail::Dashboard" + "AWS::Connect::EvaluationForm" ], "markdownEnumDescriptions": [ - "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-dashboard.html)" + "Creates an evaluation form for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-evaluationform.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudtrail-dashboard.json" + "$ref": "resources/aws-connect-evaluationform.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1724,9 +1854,9 @@ ], "additionalProperties": false }, - "AWS_WAFv2_RegexPatternSet": { + "AWS_EC2_TransitGatewayRouteTableAssociation": { "type": "object", - "markdownDescription": "Contains a list of Regular expressions based on the provided inputs. RegexPatternSet can be used with other WAF entities with RegexPatternSetReferenceStatement to perform other actions . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html)", "allOf": [ { "type": "object", @@ -1734,14 +1864,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFv2::RegexPatternSet" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "markdownEnumDescriptions": [ - "Contains a list of Regular expressions based on the provided inputs. RegexPatternSet can be used with other WAF entities with RegexPatternSetReferenceStatement to perform other actions . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html)" + "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-wafv2-regexpatternset.json" + "$ref": "resources/aws-ec2-transitgatewayroutetableassociation.json" } }, "required": [ @@ -1755,9 +1885,9 @@ ], "additionalProperties": false }, - "AWS_CodeBuild_Fleet": { + "AWS_DataSync_LocationS3": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeBuild::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-fleet.html)", + "markdownDescription": "Resource schema for AWS::DataSync::LocationS3 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html)", "allOf": [ { "type": "object", @@ -1765,18 +1895,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeBuild::Fleet" + "AWS::DataSync::LocationS3" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeBuild::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-fleet.html)" + "Resource schema for AWS::DataSync::LocationS3 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html)" ] }, "Properties": { - "$ref": "resources/aws-codebuild-fleet.json" + "$ref": "resources/aws-datasync-locations3.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1785,9 +1916,9 @@ ], "additionalProperties": false }, - "AWS_Glue_DataQualityRuleset": { + "AWS_DataZone_SubscriptionTarget": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::DataQualityRuleset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-dataqualityruleset.html)", + "markdownDescription": "Subscription targets enables one to access the data to which you have subscribed in your projects. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html)", "allOf": [ { "type": "object", @@ -1795,18 +1926,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::DataQualityRuleset" + "AWS::DataZone::SubscriptionTarget" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::DataQualityRuleset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-dataqualityruleset.html)" + "Subscription targets enables one to access the data to which you have subscribed in your projects. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-dataqualityruleset.json" + "$ref": "resources/aws-datazone-subscriptiontarget.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -1815,9 +1947,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_Integration": { + "AWS_ApiGateway_Method": { "type": "object", - "markdownDescription": "Integration from a source AWS service to a Redshift cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html)", + "markdownDescription": "The ``AWS::ApiGateway::Method`` resource creates API Gateway methods that define the parameters and body that clients must send in their requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html)", "allOf": [ { "type": "object", @@ -1825,14 +1957,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::Integration" + "AWS::ApiGateway::Method" ], "markdownEnumDescriptions": [ - "Integration from a source AWS service to a Redshift cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html)" + "The ``AWS::ApiGateway::Method`` resource creates API Gateway methods that define the parameters and body that clients must send in their requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-integration.json" + "$ref": "resources/aws-apigateway-method.json" } }, "required": [ @@ -1846,9 +1978,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_ResourceDefinitionVersion": { + "AWS_EC2_EIPAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::ResourceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html)", + "markdownDescription": "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html)", "allOf": [ { "type": "object", @@ -1856,19 +1988,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::ResourceDefinitionVersion" + "AWS::EC2::EIPAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::ResourceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html)" + "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-resourcedefinitionversion.json" + "$ref": "resources/aws-ec2-eipassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -1877,9 +2008,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_SenderId": { + "AWS_ServiceCatalog_LaunchTemplateConstraint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::SenderId \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::LaunchTemplateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html)", "allOf": [ { "type": "object", @@ -1887,14 +2018,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::SenderId" + "AWS::ServiceCatalog::LaunchTemplateConstraint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::SenderId \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html)" + "Resource Type definition for AWS::ServiceCatalog::LaunchTemplateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-senderid.json" + "$ref": "resources/aws-servicecatalog-launchtemplateconstraint.json" } }, "required": [ @@ -1908,9 +2039,9 @@ ], "additionalProperties": false }, - "AWS_AmazonMQ_Configuration": { + "AWS_RDS_OptionGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AmazonMQ::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html)", + "markdownDescription": "The ``AWS::RDS::OptionGroup`` resource creates or updates an option group, to enable and configure features that are specific to a particular DB engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html)", "allOf": [ { "type": "object", @@ -1918,14 +2049,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AmazonMQ::Configuration" + "AWS::RDS::OptionGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AmazonMQ::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html)" + "The ``AWS::RDS::OptionGroup`` resource creates or updates an option group, to enable and configure features that are specific to a particular DB engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html)" ] }, "Properties": { - "$ref": "resources/aws-amazonmq-configuration.json" + "$ref": "resources/aws-rds-optiongroup.json" } }, "required": [ @@ -1939,9 +2070,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_FlowVersion": { + "AWS_Detective_MemberInvitation": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::FlowVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowversion.html)", + "markdownDescription": "Resource schema for AWS::Detective::MemberInvitation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html)", "allOf": [ { "type": "object", @@ -1949,14 +2080,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::FlowVersion" + "AWS::Detective::MemberInvitation" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::FlowVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowversion.html)" + "Resource schema for AWS::Detective::MemberInvitation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-flowversion.json" + "$ref": "resources/aws-detective-memberinvitation.json" } }, "required": [ @@ -1970,9 +2101,9 @@ ], "additionalProperties": false }, - "AWS_Logs_Transformer": { + "AWS_MSK_ClusterPolicy": { "type": "object", - "markdownDescription": "Specifies a transformer on the log group to transform logs into consistent structured and information rich format. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-transformer.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::ClusterPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-clusterpolicy.html)", "allOf": [ { "type": "object", @@ -1980,14 +2111,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::Transformer" + "AWS::MSK::ClusterPolicy" ], "markdownEnumDescriptions": [ - "Specifies a transformer on the log group to transform logs into consistent structured and information rich format. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-transformer.html)" + "Resource Type definition for AWS::MSK::ClusterPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-clusterpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-transformer.json" + "$ref": "resources/aws-msk-clusterpolicy.json" } }, "required": [ @@ -2001,9 +2132,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_FunctionDefinitionVersion": { + "AWS_Route53Resolver_FirewallDomainList": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::FunctionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::FirewallDomainList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewalldomainlist.html)", "allOf": [ { "type": "object", @@ -2011,19 +2142,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::FunctionDefinitionVersion" + "AWS::Route53Resolver::FirewallDomainList" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::FunctionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html)" + "Resource schema for AWS::Route53Resolver::FirewallDomainList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewalldomainlist.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-functiondefinitionversion.json" + "$ref": "resources/aws-route53resolver-firewalldomainlist.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -2032,9 +2162,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationFSxOpenZFS": { + "AWS_Config_ConfigRule": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationFSxOpenZFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxopenzfs.html)", + "markdownDescription": "You must first create and start the CC configuration recorder in order to create CC managed rules with CFNlong. For more information, see [Managing the Configuration Recorder](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html).\n Adds or updates an CC rule to evaluate if your AWS resources comply with your desired configurations. For information on how many CC rules you can have per account, see [Service Limits](https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) in the *Developer Guide*.\n There are two types of rules: *Managed Rules* and *Custom Rules*. You can use the ``ConfigRule`` resource to create both CC Managed Rules and CC Custom Rules.\n CC Managed Rules are predefined, customizable rules created by CC. For a list of managed rules, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). If you are adding an CC managed rule, you must specify the rule's identifier for the ``SourceIdentifier`` key.\n CC Custom Rules are rules that you create from scratch. There are two ways to create CC custom rules: with Lambda functions ([Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/gettingstarted-concepts.html#gettingstarted-concepts-function)) and with CFNGUARDshort ([Guard GitHub Repository](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-guard)), a policy-as-code language. CC custom rules created with LAMlong are called *Custom Lambda Rules* and CC custom rules created with CFNGUARDshort are called *Custom Policy Rules*.\n If you are adding a new CC Custom LAM rule, you first need to create an LAMlong function that the rule invokes to evaluate your resources. When you use the ``ConfigRule`` resource to add a Custom LAM rule to CC, you must specify the Amazon Resource Name (ARN) that LAMlong assigns to the function. You specify the ARN in the ``SourceIdentifier`` key. This key is part of the ``Source`` object, which is part of the ``ConfigRule`` object. \n For any new CC rule that you add, specify the ``ConfigRuleName`` in the ``ConfigRule`` object. Do not specify the ``ConfigRuleArn`` or the ``ConfigRuleId``. These values are generated by CC for new rules.\n If you are updating a rule that you added previously, you can specify the rule by ``ConfigRuleName``, ``ConfigRuleId``, or ``ConfigRuleArn`` in the ``ConfigRule`` data type that you use in this request.\n For more information about developing and using CC rules, see [Evaluating Resources with Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html)", "allOf": [ { "type": "object", @@ -2042,14 +2172,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationFSxOpenZFS" + "AWS::Config::ConfigRule" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationFSxOpenZFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxopenzfs.html)" + "You must first create and start the CC configuration recorder in order to create CC managed rules with CFNlong. For more information, see [Managing the Configuration Recorder](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html).\n Adds or updates an CC rule to evaluate if your AWS resources comply with your desired configurations. For information on how many CC rules you can have per account, see [Service Limits](https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) in the *Developer Guide*.\n There are two types of rules: *Managed Rules* and *Custom Rules*. You can use the ``ConfigRule`` resource to create both CC Managed Rules and CC Custom Rules.\n CC Managed Rules are predefined, customizable rules created by CC. For a list of managed rules, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). If you are adding an CC managed rule, you must specify the rule's identifier for the ``SourceIdentifier`` key.\n CC Custom Rules are rules that you create from scratch. There are two ways to create CC custom rules: with Lambda functions ([Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/gettingstarted-concepts.html#gettingstarted-concepts-function)) and with CFNGUARDshort ([Guard GitHub Repository](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-guard)), a policy-as-code language. CC custom rules created with LAMlong are called *Custom Lambda Rules* and CC custom rules created with CFNGUARDshort are called *Custom Policy Rules*.\n If you are adding a new CC Custom LAM rule, you first need to create an LAMlong function that the rule invokes to evaluate your resources. When you use the ``ConfigRule`` resource to add a Custom LAM rule to CC, you must specify the Amazon Resource Name (ARN) that LAMlong assigns to the function. You specify the ARN in the ``SourceIdentifier`` key. This key is part of the ``Source`` object, which is part of the ``ConfigRule`` object. \n For any new CC rule that you add, specify the ``ConfigRuleName`` in the ``ConfigRule`` object. Do not specify the ``ConfigRuleArn`` or the ``ConfigRuleId``. These values are generated by CC for new rules.\n If you are updating a rule that you added previously, you can specify the rule by ``ConfigRuleName``, ``ConfigRuleId``, or ``ConfigRuleArn`` in the ``ConfigRule`` data type that you use in this request.\n For more information about developing and using CC rules, see [Evaluating Resources with Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationfsxopenzfs.json" + "$ref": "resources/aws-config-configrule.json" } }, "required": [ @@ -2063,9 +2193,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_KnowledgeBase": { + "AWS_DMS_EventSubscription": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html)", + "markdownDescription": "Resource Type definition for AWS::DMS::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html)", "allOf": [ { "type": "object", @@ -2073,14 +2203,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::KnowledgeBase" + "AWS::DMS::EventSubscription" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html)" + "Resource Type definition for AWS::DMS::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-knowledgebase.json" + "$ref": "resources/aws-dms-eventsubscription.json" } }, "required": [ @@ -2094,9 +2224,9 @@ ], "additionalProperties": false }, - "AWS_ACMPCA_CertificateAuthorityActivation": { + "AWS_EC2_NetworkAcl": { "type": "object", - "markdownDescription": "Used to install the certificate authority certificate and update the certificate authority status. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html)", + "markdownDescription": "Specifies a network ACL for your VPC.\n To add a network ACL entry, see [AWS::EC2::NetworkAclEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html)", "allOf": [ { "type": "object", @@ -2104,14 +2234,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ACMPCA::CertificateAuthorityActivation" + "AWS::EC2::NetworkAcl" ], "markdownEnumDescriptions": [ - "Used to install the certificate authority certificate and update the certificate authority status. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html)" + "Specifies a network ACL for your VPC.\n To add a network ACL entry, see [AWS::EC2::NetworkAclEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html)" ] }, "Properties": { - "$ref": "resources/aws-acmpca-certificateauthorityactivation.json" + "$ref": "resources/aws-ec2-networkacl.json" } }, "required": [ @@ -2125,9 +2255,9 @@ ], "additionalProperties": false }, - "AWS_ServiceDiscovery_Service": { + "AWS_ECS_CapacityProvider": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)", + "markdownDescription": "Resource Type definition for AWS::ECS::CapacityProvider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html)", "allOf": [ { "type": "object", @@ -2135,14 +2265,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceDiscovery::Service" + "AWS::ECS::CapacityProvider" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceDiscovery::Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)" + "Resource Type definition for AWS::ECS::CapacityProvider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-servicediscovery-service.json" + "$ref": "resources/aws-ecs-capacityprovider.json" } }, "required": [ @@ -2155,9 +2285,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryReadiness_RecoveryGroup": { + "AWS_Rbin_Rule": { "type": "object", - "markdownDescription": "AWS Route53 Recovery Readiness Recovery Group Schema and API specifications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-recoverygroup.html)", + "markdownDescription": "Resource Type definition for AWS::Rbin::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rbin-rule.html)", "allOf": [ { "type": "object", @@ -2165,18 +2295,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryReadiness::RecoveryGroup" + "AWS::Rbin::Rule" ], "markdownEnumDescriptions": [ - "AWS Route53 Recovery Readiness Recovery Group Schema and API specifications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-recoverygroup.html)" + "Resource Type definition for AWS::Rbin::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rbin-rule.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoveryreadiness-recoverygroup.json" + "$ref": "resources/aws-rbin-rule.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -2185,9 +2316,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_DataProtectionSettings": { + "AWS_EC2_VPCEndpointService": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::DataProtectionSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-dataprotectionsettings.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCEndpointService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html)", "allOf": [ { "type": "object", @@ -2195,14 +2326,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::DataProtectionSettings" + "AWS::EC2::VPCEndpointService" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::DataProtectionSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-dataprotectionsettings.html)" + "Resource Type definition for AWS::EC2::VPCEndpointService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-dataprotectionsettings.json" + "$ref": "resources/aws-ec2-vpcendpointservice.json" } }, "required": [ @@ -2215,9 +2346,9 @@ ], "additionalProperties": false }, - "AWS_AmazonMQ_Broker": { + "AWS_QuickSight_Topic": { "type": "object", - "markdownDescription": "Resource type definition for AWS::AmazonMQ::Broker \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html)", + "markdownDescription": "Definition of the AWS::QuickSight::Topic Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-topic.html)", "allOf": [ { "type": "object", @@ -2225,19 +2356,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AmazonMQ::Broker" + "AWS::QuickSight::Topic" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::AmazonMQ::Broker \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html)" + "Definition of the AWS::QuickSight::Topic Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-topic.html)" ] }, "Properties": { - "$ref": "resources/aws-amazonmq-broker.json" + "$ref": "resources/aws-quicksight-topic.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -2246,9 +2376,9 @@ ], "additionalProperties": false }, - "AWS_IoT_ProvisioningTemplate": { + "AWS_S3Tables_TablePolicy": { "type": "object", - "markdownDescription": "Creates a fleet provisioning template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html)", + "markdownDescription": "Resource Type definition for AWS::S3Tables::TablePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablepolicy.html)", "allOf": [ { "type": "object", @@ -2256,14 +2386,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::ProvisioningTemplate" + "AWS::S3Tables::TablePolicy" ], "markdownEnumDescriptions": [ - "Creates a fleet provisioning template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html)" + "Resource Type definition for AWS::S3Tables::TablePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-provisioningtemplate.json" + "$ref": "resources/aws-s3tables-tablepolicy.json" } }, "required": [ @@ -2277,9 +2407,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_Campaign": { + "AWS_Location_PlaceIndex": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::Campaign \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html)", + "markdownDescription": "Definition of AWS::Location::PlaceIndex Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html)", "allOf": [ { "type": "object", @@ -2287,14 +2417,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::Campaign" + "AWS::Location::PlaceIndex" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::Campaign \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html)" + "Definition of AWS::Location::PlaceIndex Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-campaign.json" + "$ref": "resources/aws-location-placeindex.json" } }, "required": [ @@ -2308,9 +2438,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_EventInvokeConfig": { + "AWS_VpcLattice_AuthPolicy": { "type": "object", - "markdownDescription": "The AWS::Lambda::EventInvokeConfig resource configures options for asynchronous invocation on a version or an alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html)", + "markdownDescription": "Creates or updates the auth policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-authpolicy.html)", "allOf": [ { "type": "object", @@ -2318,14 +2448,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::EventInvokeConfig" + "AWS::VpcLattice::AuthPolicy" ], "markdownEnumDescriptions": [ - "The AWS::Lambda::EventInvokeConfig resource configures options for asynchronous invocation on a version or an alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html)" + "Creates or updates the auth policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-authpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-eventinvokeconfig.json" + "$ref": "resources/aws-vpclattice-authpolicy.json" } }, "required": [ @@ -2339,9 +2469,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Deployment": { + "AWS_Backup_RestoreTestingSelection": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::Deployment`` resource creates a deployment for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html)", + "markdownDescription": "Resource Type definition for AWS::Backup::RestoreTestingSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html)", "allOf": [ { "type": "object", @@ -2349,14 +2479,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Deployment" + "AWS::Backup::RestoreTestingSelection" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::Deployment`` resource creates a deployment for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html)" + "Resource Type definition for AWS::Backup::RestoreTestingSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-deployment.json" + "$ref": "resources/aws-backup-restoretestingselection.json" } }, "required": [ @@ -2370,9 +2500,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_OutpostResolver": { + "AWS_EC2_RouteServerAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::OutpostResolver. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html)", + "markdownDescription": "VPC Route Server Association \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html)", "allOf": [ { "type": "object", @@ -2380,14 +2510,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::OutpostResolver" + "AWS::EC2::RouteServerAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::OutpostResolver. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html)" + "VPC Route Server Association \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-outpostresolver.json" + "$ref": "resources/aws-ec2-routeserverassociation.json" } }, "required": [ @@ -2401,9 +2531,9 @@ ], "additionalProperties": false }, - "AWS_S3ObjectLambda_AccessPointPolicy": { + "AWS_SSMIncidents_ResponsePlan": { "type": "object", - "markdownDescription": "AWS::S3ObjectLambda::AccessPointPolicy resource is an Amazon S3ObjectLambda policy type that you can use to control permissions for your S3ObjectLambda \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspointpolicy.html)", + "markdownDescription": "Resource type definition for AWS::SSMIncidents::ResponsePlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-responseplan.html)", "allOf": [ { "type": "object", @@ -2411,14 +2541,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3ObjectLambda::AccessPointPolicy" + "AWS::SSMIncidents::ResponsePlan" ], "markdownEnumDescriptions": [ - "AWS::S3ObjectLambda::AccessPointPolicy resource is an Amazon S3ObjectLambda policy type that you can use to control permissions for your S3ObjectLambda \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspointpolicy.html)" + "Resource type definition for AWS::SSMIncidents::ResponsePlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-responseplan.html)" ] }, "Properties": { - "$ref": "resources/aws-s3objectlambda-accesspointpolicy.json" + "$ref": "resources/aws-ssmincidents-responseplan.json" } }, "required": [ @@ -2432,9 +2562,9 @@ ], "additionalProperties": false }, - "AWS_IoTEvents_DetectorModel": { + "AWS_EC2_VolumeAttachment": { "type": "object", - "markdownDescription": "The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a *detector model* (a model of your equipment or process) using *states*. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*.\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) all detector instances created by the model are reset to their initial states. (The detector's ``state``, and the values of any variables and timers are reset.)\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) the version number of the detector model is incremented. (A detector model with version number 1 before the update has version number 2 after the update succeeds.)\n If you attempt to update a detector model using CFN and the update does not succeed, the system may, in some cases, restore the original detector model. When this occurs, the detector model's version is incremented twice (for example, from version 1 to version 3) and the detector instances are reset.\n Also, be aware that if you attempt to update several detector models at once using CFN, some updates may succeed and others fail. In this case, the effects on each detector model's detector instances and version number depend on whether the update succeeded or failed, with the results as stated. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html)", + "markdownDescription": "Attaches an Amazon EBS volume to a running instance and exposes it to the instance with the specified device name.\n Before this resource can be deleted (and therefore the volume detached), you must first unmount the volume in the instance. Failure to do so results in the volume being stuck in the busy state while it is trying to detach, which could possibly damage the file system or the data it contains.\n If an Amazon EBS volume is the root device of an instance, it cannot be detached while the instance is in the \"running\" state. To detach the root volume, stop the instance first.\n If the root volume is detached from an instance with an MKT product code, then the product codes from that volume are no longer associated with the instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volumeattachment.html)", "allOf": [ { "type": "object", @@ -2442,14 +2572,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTEvents::DetectorModel" + "AWS::EC2::VolumeAttachment" ], "markdownEnumDescriptions": [ - "The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a *detector model* (a model of your equipment or process) using *states*. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*.\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) all detector instances created by the model are reset to their initial states. (The detector's ``state``, and the values of any variables and timers are reset.)\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) the version number of the detector model is incremented. (A detector model with version number 1 before the update has version number 2 after the update succeeds.)\n If you attempt to update a detector model using CFN and the update does not succeed, the system may, in some cases, restore the original detector model. When this occurs, the detector model's version is incremented twice (for example, from version 1 to version 3) and the detector instances are reset.\n Also, be aware that if you attempt to update several detector models at once using CFN, some updates may succeed and others fail. In this case, the effects on each detector model's detector instances and version number depend on whether the update succeeded or failed, with the results as stated. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html)" + "Attaches an Amazon EBS volume to a running instance and exposes it to the instance with the specified device name.\n Before this resource can be deleted (and therefore the volume detached), you must first unmount the volume in the instance. Failure to do so results in the volume being stuck in the busy state while it is trying to detach, which could possibly damage the file system or the data it contains.\n If an Amazon EBS volume is the root device of an instance, it cannot be detached while the instance is in the \"running\" state. To detach the root volume, stop the instance first.\n If the root volume is detached from an instance with an MKT product code, then the product codes from that volume are no longer associated with the instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volumeattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-iotevents-detectormodel.json" + "$ref": "resources/aws-ec2-volumeattachment.json" } }, "required": [ @@ -2463,9 +2593,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_ProjectMembership": { + "AWS_Glue_Schema": { "type": "object", - "markdownDescription": "Definition of AWS::DataZone::ProjectMembership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html)", + "markdownDescription": "This resource represents a schema of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html)", "allOf": [ { "type": "object", @@ -2473,14 +2603,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::ProjectMembership" + "AWS::Glue::Schema" ], "markdownEnumDescriptions": [ - "Definition of AWS::DataZone::ProjectMembership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html)" + "This resource represents a schema of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-projectmembership.json" + "$ref": "resources/aws-glue-schema.json" } }, "required": [ @@ -2494,9 +2624,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBSubnetGroup": { + "AWS_Wisdom_MessageTemplate": { "type": "object", - "markdownDescription": "The ``AWS::RDS::DBSubnetGroup`` resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. \n For more information, see [Working with DB subnet groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html)", + "markdownDescription": "Definition of AWS::Wisdom::MessageTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplate.html)", "allOf": [ { "type": "object", @@ -2504,14 +2634,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBSubnetGroup" + "AWS::Wisdom::MessageTemplate" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::DBSubnetGroup`` resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. \n For more information, see [Working with DB subnet groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html)" + "Definition of AWS::Wisdom::MessageTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbsubnetgroup.json" + "$ref": "resources/aws-wisdom-messagetemplate.json" } }, "required": [ @@ -2525,9 +2655,9 @@ ], "additionalProperties": false }, - "AWS_WAFv2_LoggingConfiguration": { + "AWS_AppIntegrations_EventIntegration": { "type": "object", - "markdownDescription": "A WAFv2 Logging Configuration Resource Provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::AppIntegrations::EventIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html)", "allOf": [ { "type": "object", @@ -2535,14 +2665,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFv2::LoggingConfiguration" + "AWS::AppIntegrations::EventIntegration" ], "markdownEnumDescriptions": [ - "A WAFv2 Logging Configuration Resource Provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html)" + "Resource Type definition for AWS::AppIntegrations::EventIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html)" ] }, "Properties": { - "$ref": "resources/aws-wafv2-loggingconfiguration.json" + "$ref": "resources/aws-appintegrations-eventintegration.json" } }, "required": [ @@ -2556,9 +2686,9 @@ ], "additionalProperties": false }, - "AWS_EC2_ClientVpnEndpoint": { + "AWS_CodeArtifact_Repository": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html)", + "markdownDescription": "The resource schema to create a CodeArtifact repository. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html)", "allOf": [ { "type": "object", @@ -2566,14 +2696,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::ClientVpnEndpoint" + "AWS::CodeArtifact::Repository" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::ClientVpnEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html)" + "The resource schema to create a CodeArtifact repository. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-clientvpnendpoint.json" + "$ref": "resources/aws-codeartifact-repository.json" } }, "required": [ @@ -2587,9 +2717,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_Input": { + "AWS_FMS_ResourceSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaLive::Input \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html)", + "markdownDescription": "Creates an AWS Firewall Manager resource set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-resourceset.html)", "allOf": [ { "type": "object", @@ -2597,18 +2727,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::Input" + "AWS::FMS::ResourceSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaLive::Input \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html)" + "Creates an AWS Firewall Manager resource set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-resourceset.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-input.json" + "$ref": "resources/aws-fms-resourceset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -2617,9 +2748,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_CalculatedAttributeDefinition": { + "AWS_Deadline_LicenseEndpoint": { "type": "object", - "markdownDescription": "A calculated attribute definition for Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-calculatedattributedefinition.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::LicenseEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html)", "allOf": [ { "type": "object", @@ -2627,14 +2758,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::CalculatedAttributeDefinition" + "AWS::Deadline::LicenseEndpoint" ], "markdownEnumDescriptions": [ - "A calculated attribute definition for Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-calculatedattributedefinition.html)" + "Resource Type definition for AWS::Deadline::LicenseEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-calculatedattributedefinition.json" + "$ref": "resources/aws-deadline-licenseendpoint.json" } }, "required": [ @@ -2648,9 +2779,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayRoute": { + "AWS_MediaPackage_PackagingConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html)", + "markdownDescription": "Resource schema for AWS::MediaPackage::PackagingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html)", "allOf": [ { "type": "object", @@ -2658,14 +2789,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayRoute" + "AWS::MediaPackage::PackagingConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html)" + "Resource schema for AWS::MediaPackage::PackagingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayroute.json" + "$ref": "resources/aws-mediapackage-packagingconfiguration.json" } }, "required": [ @@ -2679,9 +2810,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SubnetCidrBlock": { + "AWS_ServiceCatalog_ResourceUpdateConstraint": { "type": "object", - "markdownDescription": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html)", + "markdownDescription": "Resource type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)", "allOf": [ { "type": "object", @@ -2689,14 +2820,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SubnetCidrBlock" + "AWS::ServiceCatalog::ResourceUpdateConstraint" ], "markdownEnumDescriptions": [ - "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html)" + "Resource type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-subnetcidrblock.json" + "$ref": "resources/aws-servicecatalog-resourceupdateconstraint.json" } }, "required": [ @@ -2710,9 +2841,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_FunctionDefinition": { + "AWS_Deadline_StorageProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::FunctionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::StorageProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html)", "allOf": [ { "type": "object", @@ -2720,14 +2851,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::FunctionDefinition" + "AWS::Deadline::StorageProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::FunctionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html)" + "Resource Type definition for AWS::Deadline::StorageProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-functiondefinition.json" + "$ref": "resources/aws-deadline-storageprofile.json" } }, "required": [ @@ -2741,9 +2872,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_AssetModel": { + "AWS_S3_BucketPolicy": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::AssetModel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html)", + "markdownDescription": "Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.\n If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error.\n As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. \n When using the ``AWS::S3::BucketPolicy`` resource, you can create, update, and delete bucket policies for S3 buckets located in Regions that are different from the stack's Region. However, the CloudFormation stacks should be deployed in the US East (N. Virginia) or ``us-east-1`` Region. This cross-region bucket policy modification functionality is supported for backward compatibility with existing workflows.\n If the [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) is not specified or set to ``Delete``, the bucket policy will be removed when the stack is deleted. If set to ``Retain``, the bucket policy will be preserved even after the stack is deleted.\n For example, a CloudFormation stack in ``us-east-1`` can use the ``AWS::S3::BucketPolicy`` resource to manage the bucket policy for an S3 bucket in ``us-west-2``. The retention or removal of the bucket policy during the stack deletion is determined by the ``DeletionPolicy`` attribute specified in the stack template.\n For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).\n The following operations are related to ``PutBucketPolicy``:\n + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) \n + [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucketpolicy.html)", "allOf": [ { "type": "object", @@ -2751,14 +2882,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::AssetModel" + "AWS::S3::BucketPolicy" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::AssetModel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html)" + "Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.\n If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error.\n As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. \n When using the ``AWS::S3::BucketPolicy`` resource, you can create, update, and delete bucket policies for S3 buckets located in Regions that are different from the stack's Region. However, the CloudFormation stacks should be deployed in the US East (N. Virginia) or ``us-east-1`` Region. This cross-region bucket policy modification functionality is supported for backward compatibility with existing workflows.\n If the [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) is not specified or set to ``Delete``, the bucket policy will be removed when the stack is deleted. If set to ``Retain``, the bucket policy will be preserved even after the stack is deleted.\n For example, a CloudFormation stack in ``us-east-1`` can use the ``AWS::S3::BucketPolicy`` resource to manage the bucket policy for an S3 bucket in ``us-west-2``. The retention or removal of the bucket policy during the stack deletion is determined by the ``DeletionPolicy`` attribute specified in the stack template.\n For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).\n The following operations are related to ``PutBucketPolicy``:\n + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) \n + [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucketpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-assetmodel.json" + "$ref": "resources/aws-s3-bucketpolicy.json" } }, "required": [ @@ -2772,9 +2903,9 @@ ], "additionalProperties": false }, - "AWS_IoTAnalytics_Channel": { + "AWS_MediaLive_EventBridgeRuleTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html)", + "markdownDescription": "Definition of AWS::MediaLive::EventBridgeRuleTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplate.html)", "allOf": [ { "type": "object", @@ -2782,18 +2913,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTAnalytics::Channel" + "AWS::MediaLive::EventBridgeRuleTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoTAnalytics::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html)" + "Definition of AWS::MediaLive::EventBridgeRuleTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-iotanalytics-channel.json" + "$ref": "resources/aws-medialive-eventbridgeruletemplate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -2802,9 +2934,9 @@ ], "additionalProperties": false }, - "AWS_IAM_Policy": { + "AWS_IoTWireless_PartnerAccount": { "type": "object", - "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM group, user or role.\n An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *User Guide*.\n The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.\n For information about policy documents see [Creating policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *User Guide*.\n For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*.\n This resource does not support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). The following inline policy resource types support drift detection:\n + [AWS::IAM::GroupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html) \n + [AWS::IAM::RolePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html) \n + [AWS::IAM::UserPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)", + "markdownDescription": "Create and manage partner account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html)", "allOf": [ { "type": "object", @@ -2812,19 +2944,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::Policy" + "AWS::IoTWireless::PartnerAccount" ], "markdownEnumDescriptions": [ - "Adds or updates an inline policy document that is embedded in the specified IAM group, user or role.\n An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *User Guide*.\n The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.\n For information about policy documents see [Creating policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *User Guide*.\n For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*.\n This resource does not support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). The following inline policy resource types support drift detection:\n + [AWS::IAM::GroupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html) \n + [AWS::IAM::RolePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html) \n + [AWS::IAM::UserPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)" + "Create and manage partner account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-policy.json" + "$ref": "resources/aws-iotwireless-partneraccount.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -2833,9 +2964,9 @@ ], "additionalProperties": false }, - "AWS_IVS_PlaybackKeyPair": { + "AWS_NetworkManager_Link": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::PlaybackKeyPair \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html)", + "markdownDescription": "The AWS::NetworkManager::Link type describes a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html)", "allOf": [ { "type": "object", @@ -2843,18 +2974,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::PlaybackKeyPair" + "AWS::NetworkManager::Link" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::PlaybackKeyPair \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html)" + "The AWS::NetworkManager::Link type describes a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-playbackkeypair.json" + "$ref": "resources/aws-networkmanager-link.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -2863,9 +2995,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_APNSVoipChannel": { + "AWS_SageMaker_InferenceExperiment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSVoipChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::InferenceExperiment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferenceexperiment.html)", "allOf": [ { "type": "object", @@ -2873,14 +3005,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::APNSVoipChannel" + "AWS::SageMaker::InferenceExperiment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::APNSVoipChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html)" + "Resource Type definition for AWS::SageMaker::InferenceExperiment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferenceexperiment.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-apnsvoipchannel.json" + "$ref": "resources/aws-sagemaker-inferenceexperiment.json" } }, "required": [ @@ -2894,9 +3026,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_Multiplexprogram": { + "AWS_IAM_VirtualMFADevice": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaLive::Multiplexprogram \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplexprogram.html)", + "markdownDescription": "Resource Type definition for AWS::IAM::VirtualMFADevice \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html)", "allOf": [ { "type": "object", @@ -2904,18 +3036,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::Multiplexprogram" + "AWS::IAM::VirtualMFADevice" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaLive::Multiplexprogram \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplexprogram.html)" + "Resource Type definition for AWS::IAM::VirtualMFADevice \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-multiplexprogram.json" + "$ref": "resources/aws-iam-virtualmfadevice.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -2924,9 +3057,9 @@ ], "additionalProperties": false }, - "AWS_IoT_FleetMetric": { + "AWS_Pinpoint_Segment": { "type": "object", - "markdownDescription": "An aggregated metric of certain devices in your fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-segment.html)", "allOf": [ { "type": "object", @@ -2934,14 +3067,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::FleetMetric" + "AWS::Pinpoint::Segment" ], "markdownEnumDescriptions": [ - "An aggregated metric of certain devices in your fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html)" + "Resource Type definition for AWS::Pinpoint::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-segment.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-fleetmetric.json" + "$ref": "resources/aws-pinpoint-segment.json" } }, "required": [ @@ -2955,9 +3088,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SecurityGroupIngress": { + "AWS_Cognito_IdentityPool": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupingress.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::IdentityPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html)", "allOf": [ { "type": "object", @@ -2965,14 +3098,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SecurityGroupIngress" + "AWS::Cognito::IdentityPool" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupingress.html)" + "Resource Type definition for AWS::Cognito::IdentityPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-securitygroupingress.json" + "$ref": "resources/aws-cognito-identitypool.json" } }, "required": [ @@ -2986,9 +3119,9 @@ ], "additionalProperties": false }, - "AWS_DevOpsGuru_NotificationChannel": { + "AWS_EntityResolution_SchemaMapping": { "type": "object", - "markdownDescription": "This resource schema represents the NotificationChannel resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-notificationchannel.html)", + "markdownDescription": "SchemaMapping defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-schemamapping.html)", "allOf": [ { "type": "object", @@ -2996,14 +3129,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DevOpsGuru::NotificationChannel" + "AWS::EntityResolution::SchemaMapping" ], "markdownEnumDescriptions": [ - "This resource schema represents the NotificationChannel resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-notificationchannel.html)" + "SchemaMapping defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-schemamapping.html)" ] }, "Properties": { - "$ref": "resources/aws-devopsguru-notificationchannel.json" + "$ref": "resources/aws-entityresolution-schemamapping.json" } }, "required": [ @@ -3017,9 +3150,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryReadiness_ReadinessCheck": { + "AWS_Lightsail_Certificate": { "type": "object", - "markdownDescription": "Aws Route53 Recovery Readiness Check Schema and API specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-readinesscheck.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html)", "allOf": [ { "type": "object", @@ -3027,18 +3160,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryReadiness::ReadinessCheck" + "AWS::Lightsail::Certificate" ], "markdownEnumDescriptions": [ - "Aws Route53 Recovery Readiness Check Schema and API specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-readinesscheck.html)" + "Resource Type definition for AWS::Lightsail::Certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoveryreadiness-readinesscheck.json" + "$ref": "resources/aws-lightsail-certificate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3047,9 +3181,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_FlowSource": { + "AWS_DataZone_EnvironmentProfile": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::FlowSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html)", + "markdownDescription": "AWS Datazone Environment Profile is pre-configured set of resources and blueprints that provide reusable templates for creating environments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentprofile.html)", "allOf": [ { "type": "object", @@ -3057,14 +3191,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::FlowSource" + "AWS::DataZone::EnvironmentProfile" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::FlowSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html)" + "AWS Datazone Environment Profile is pre-configured set of resources and blueprints that provide reusable templates for creating environments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-flowsource.json" + "$ref": "resources/aws-datazone-environmentprofile.json" } }, "required": [ @@ -3078,9 +3212,9 @@ ], "additionalProperties": false }, - "AWS_NetworkFirewall_LoggingConfiguration": { + "AWS_OpenSearchServerless_CollectionGroup": { "type": "object", - "markdownDescription": "Resource type definition for AWS::NetworkFirewall::LoggingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::OpenSearchServerless::CollectionGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-collectiongroup.html)", "allOf": [ { "type": "object", @@ -3088,14 +3222,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkFirewall::LoggingConfiguration" + "AWS::OpenSearchServerless::CollectionGroup" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::NetworkFirewall::LoggingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)" + "Resource Type definition for AWS::OpenSearchServerless::CollectionGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-collectiongroup.html)" ] }, "Properties": { - "$ref": "resources/aws-networkfirewall-loggingconfiguration.json" + "$ref": "resources/aws-opensearchserverless-collectiongroup.json" } }, "required": [ @@ -3109,9 +3243,9 @@ ], "additionalProperties": false }, - "AWS_EC2_FlowLog": { + "AWS_KinesisAnalyticsV2_ApplicationCloudWatchLoggingOption": { "type": "object", - "markdownDescription": "Specifies a VPC flow log, which enables you to capture IP traffic for a specific network interface, subnet, or VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html)", "allOf": [ { "type": "object", @@ -3119,14 +3253,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::FlowLog" + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" ], "markdownEnumDescriptions": [ - "Specifies a VPC flow log, which enables you to capture IP traffic for a specific network interface, subnet, or VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html)" + "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-flowlog.json" + "$ref": "resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json" } }, "required": [ @@ -3140,9 +3274,9 @@ ], "additionalProperties": false }, - "AWS_KMS_Key": { + "AWS_MemoryDB_SubnetGroup": { "type": "object", - "markdownDescription": "The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.\n If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.\n KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.\n You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.\n You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.\n You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.\n You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.\n You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).\n *Regions* \n KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)", + "markdownDescription": "The AWS::MemoryDB::SubnetGroup resource creates an Amazon MemoryDB Subnet Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html)", "allOf": [ { "type": "object", @@ -3150,18 +3284,19 @@ "Type": { "type": "string", "enum": [ - "AWS::KMS::Key" + "AWS::MemoryDB::SubnetGroup" ], "markdownEnumDescriptions": [ - "The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.\n If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.\n KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.\n You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.\n You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.\n You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.\n You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.\n You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).\n *Regions* \n KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)" + "The AWS::MemoryDB::SubnetGroup resource creates an Amazon MemoryDB Subnet Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-kms-key.json" + "$ref": "resources/aws-memorydb-subnetgroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3170,9 +3305,9 @@ ], "additionalProperties": false }, - "AWS_Connect_TrafficDistributionGroup": { + "AWS_SecurityHub_ConnectorV2": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::TrafficDistributionGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-trafficdistributiongroup.html)", + "markdownDescription": "Resource schema for AWS::SecurityHub::ConnectorV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-connectorv2.html)", "allOf": [ { "type": "object", @@ -3180,14 +3315,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::TrafficDistributionGroup" + "AWS::SecurityHub::ConnectorV2" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::TrafficDistributionGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-trafficdistributiongroup.html)" + "Resource schema for AWS::SecurityHub::ConnectorV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-connectorv2.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-trafficdistributiongroup.json" + "$ref": "resources/aws-securityhub-connectorv2.json" } }, "required": [ @@ -3201,9 +3336,9 @@ ], "additionalProperties": false }, - "AWS_NeptuneGraph_Graph": { + "AWS_CustomerProfiles_ObjectType": { "type": "object", - "markdownDescription": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html)", + "markdownDescription": "An ObjectType resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html)", "allOf": [ { "type": "object", @@ -3211,14 +3346,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NeptuneGraph::Graph" + "AWS::CustomerProfiles::ObjectType" ], "markdownEnumDescriptions": [ - "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html)" + "An ObjectType resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html)" ] }, "Properties": { - "$ref": "resources/aws-neptunegraph-graph.json" + "$ref": "resources/aws-customerprofiles-objecttype.json" } }, "required": [ @@ -3232,9 +3367,9 @@ ], "additionalProperties": false }, - "AWS_Panorama_ApplicationInstance": { + "AWS_ECR_RepositoryCreationTemplate": { "type": "object", - "markdownDescription": "Creates an application instance and deploys it to a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html)", + "markdownDescription": "The details of the repository creation template associated with the request. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html)", "allOf": [ { "type": "object", @@ -3242,14 +3377,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Panorama::ApplicationInstance" + "AWS::ECR::RepositoryCreationTemplate" ], "markdownEnumDescriptions": [ - "Creates an application instance and deploys it to a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html)" + "The details of the repository creation template associated with the request. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-panorama-applicationinstance.json" + "$ref": "resources/aws-ecr-repositorycreationtemplate.json" } }, "required": [ @@ -3263,9 +3398,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_TagOptionAssociation": { + "AWS_EC2_TransitGatewayMeteringPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html)", + "markdownDescription": "AWS::EC2::TransitGatewayMeteringPolicy Resource Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicy.html)", "allOf": [ { "type": "object", @@ -3273,14 +3408,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::TagOptionAssociation" + "AWS::EC2::TransitGatewayMeteringPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html)" + "AWS::EC2::TransitGatewayMeteringPolicy Resource Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-tagoptionassociation.json" + "$ref": "resources/aws-ec2-transitgatewaymeteringpolicy.json" } }, "required": [ @@ -3294,9 +3429,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_Service": { + "AWS_RDS_DBProxy": { "type": "object", - "markdownDescription": "A service is any software application that can run on instances containers, or serverless functions within an account or virtual private cloud (VPC). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-service.html)", + "markdownDescription": "Resource schema for AWS::RDS::DBProxy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html)", "allOf": [ { "type": "object", @@ -3304,18 +3439,19 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::Service" + "AWS::RDS::DBProxy" ], "markdownEnumDescriptions": [ - "A service is any software application that can run on instances containers, or serverless functions within an account or virtual private cloud (VPC). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-service.html)" + "Resource schema for AWS::RDS::DBProxy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-service.json" + "$ref": "resources/aws-rds-dbproxy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3324,9 +3460,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_GraphQLApi": { + "AWS_FMS_NotificationChannel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::GraphQLApi \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html)", + "markdownDescription": "Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html)", "allOf": [ { "type": "object", @@ -3334,14 +3470,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::GraphQLApi" + "AWS::FMS::NotificationChannel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::GraphQLApi \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html)" + "Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-graphqlapi.json" + "$ref": "resources/aws-fms-notificationchannel.json" } }, "required": [ @@ -3355,9 +3491,9 @@ ], "additionalProperties": false }, - "AWS_ARCZonalShift_ZonalAutoshiftConfiguration": { + "AWS_Bedrock_PromptVersion": { "type": "object", - "markdownDescription": "Definition of AWS::ARCZonalShift::ZonalAutoshiftConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-zonalautoshiftconfiguration.html)", + "markdownDescription": "Definition of AWS::Bedrock::PromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-promptversion.html)", "allOf": [ { "type": "object", @@ -3365,18 +3501,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" + "AWS::Bedrock::PromptVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::ARCZonalShift::ZonalAutoshiftConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-zonalautoshiftconfiguration.html)" + "Definition of AWS::Bedrock::PromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-promptversion.html)" ] }, "Properties": { - "$ref": "resources/aws-arczonalshift-zonalautoshiftconfiguration.json" + "$ref": "resources/aws-bedrock-promptversion.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3385,9 +3522,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_CloudWatchAlarmTemplate": { + "AWS_DocDB_DBCluster": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::CloudWatchAlarmTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplate.html)", + "markdownDescription": "Resource Type definition for AWS::DocDB::DBCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html)", "allOf": [ { "type": "object", @@ -3395,19 +3532,18 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::CloudWatchAlarmTemplate" + "AWS::DocDB::DBCluster" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::CloudWatchAlarmTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplate.html)" + "Resource Type definition for AWS::DocDB::DBCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-cloudwatchalarmtemplate.json" + "$ref": "resources/aws-docdb-dbcluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -3416,9 +3552,9 @@ ], "additionalProperties": false }, - "AWS_CE_AnomalySubscription": { + "AWS_QBusiness_Application": { "type": "object", - "markdownDescription": "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. Create subscription to be notified \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html)", + "markdownDescription": "Definition of AWS::QBusiness::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-application.html)", "allOf": [ { "type": "object", @@ -3426,14 +3562,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CE::AnomalySubscription" + "AWS::QBusiness::Application" ], "markdownEnumDescriptions": [ - "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. Create subscription to be notified \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html)" + "Definition of AWS::QBusiness::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-application.html)" ] }, "Properties": { - "$ref": "resources/aws-ce-anomalysubscription.json" + "$ref": "resources/aws-qbusiness-application.json" } }, "required": [ @@ -3447,9 +3583,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_ResourceUpdateConstraint": { + "AWS_Route53_KeySigningKey": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)", + "markdownDescription": "Represents a key signing key (KSK) associated with a hosted zone. You can only have two KSKs per hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html)", "allOf": [ { "type": "object", @@ -3457,14 +3593,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::ResourceUpdateConstraint" + "AWS::Route53::KeySigningKey" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)" + "Represents a key signing key (KSK) associated with a hosted zone. You can only have two KSKs per hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-resourceupdateconstraint.json" + "$ref": "resources/aws-route53-keysigningkey.json" } }, "required": [ @@ -3478,9 +3614,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_Rule": { + "AWS_CloudWatch_Alarm": { "type": "object", - "markdownDescription": "Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-rule.html)", + "markdownDescription": "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html)", "allOf": [ { "type": "object", @@ -3488,19 +3624,18 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::Rule" + "AWS::CloudWatch::Alarm" ], "markdownEnumDescriptions": [ - "Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-rule.html)" + "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-rule.json" + "$ref": "resources/aws-cloudwatch-alarm.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -3509,9 +3644,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_TargetGroup": { + "AWS_Kinesis_StreamConsumer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::TargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Kinesis::StreamConsumer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html)", "allOf": [ { "type": "object", @@ -3519,18 +3654,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::TargetGroup" + "AWS::Kinesis::StreamConsumer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticLoadBalancingV2::TargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html)" + "Resource Type definition for AWS::Kinesis::StreamConsumer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-targetgroup.json" + "$ref": "resources/aws-kinesis-streamconsumer.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3539,9 +3675,9 @@ ], "additionalProperties": false }, - "AWS_S3Outposts_Endpoint": { + "AWS_MSK_Configuration": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::S3Outposts::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html)", "allOf": [ { "type": "object", @@ -3549,14 +3685,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Outposts::Endpoint" + "AWS::MSK::Configuration" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::S3Outposts::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html)" + "Resource Type definition for AWS::MSK::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html)" ] }, "Properties": { - "$ref": "resources/aws-s3outposts-endpoint.json" + "$ref": "resources/aws-msk-configuration.json" } }, "required": [ @@ -3570,9 +3706,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_MessageTemplate": { + "AWS_DataSync_LocationAzureBlob": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::MessageTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplate.html)", + "markdownDescription": "Resource Type definition for AWS::DataSync::LocationAzureBlob. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html)", "allOf": [ { "type": "object", @@ -3580,14 +3716,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::MessageTemplate" + "AWS::DataSync::LocationAzureBlob" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::MessageTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplate.html)" + "Resource Type definition for AWS::DataSync::LocationAzureBlob. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-messagetemplate.json" + "$ref": "resources/aws-datasync-locationazureblob.json" } }, "required": [ @@ -3601,9 +3737,9 @@ ], "additionalProperties": false }, - "AWS_FMS_ResourceSet": { + "AWS_APS_RuleGroupsNamespace": { "type": "object", - "markdownDescription": "Creates an AWS Firewall Manager resource set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-resourceset.html)", + "markdownDescription": "RuleGroupsNamespace schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html)", "allOf": [ { "type": "object", @@ -3611,14 +3747,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FMS::ResourceSet" + "AWS::APS::RuleGroupsNamespace" ], "markdownEnumDescriptions": [ - "Creates an AWS Firewall Manager resource set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-resourceset.html)" + "RuleGroupsNamespace schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html)" ] }, "Properties": { - "$ref": "resources/aws-fms-resourceset.json" + "$ref": "resources/aws-aps-rulegroupsnamespace.json" } }, "required": [ @@ -3632,9 +3768,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_Portal": { + "AWS_EKS_Cluster": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::Portal Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-portal.html)", + "markdownDescription": "An object representing an Amazon EKS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html)", "allOf": [ { "type": "object", @@ -3642,18 +3778,19 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::Portal" + "AWS::EKS::Cluster" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::Portal Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-portal.html)" + "An object representing an Amazon EKS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-portal.json" + "$ref": "resources/aws-eks-cluster.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3662,9 +3799,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_ResourcePolicy": { + "AWS_Lightsail_LoadBalancerTlsCertificate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancertlscertificate.html)", "allOf": [ { "type": "object", @@ -3672,14 +3809,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::ResourcePolicy" + "AWS::Lightsail::LoadBalancerTlsCertificate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html)" + "Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancertlscertificate.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-resourcepolicy.json" + "$ref": "resources/aws-lightsail-loadbalancertlscertificate.json" } }, "required": [ @@ -3693,9 +3830,9 @@ ], "additionalProperties": false }, - "AWS_Logs_LogStream": { + "AWS_EC2_LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Logs::LogStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html)", + "markdownDescription": "Resource Type definition for Local Gateway Route Table Virtual Interface Group Association which describes a local gateway route table virtual interface group association for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevirtualinterfacegroupassociation.html)", "allOf": [ { "type": "object", @@ -3703,14 +3840,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::LogStream" + "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Logs::LogStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html)" + "Resource Type definition for Local Gateway Route Table Virtual Interface Group Association which describes a local gateway route table virtual interface group association for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevirtualinterfacegroupassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-logstream.json" + "$ref": "resources/aws-ec2-localgatewayroutetablevirtualinterfacegroupassociation.json" } }, "required": [ @@ -3724,9 +3861,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationHDFS": { + "AWS_BillingConductor_BillingGroup": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationHDFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html)", + "markdownDescription": "A billing group is a set of linked account which belong to the same end customer. It can be seen as a virtual consolidated billing family. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html)", "allOf": [ { "type": "object", @@ -3734,14 +3871,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationHDFS" + "AWS::BillingConductor::BillingGroup" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationHDFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html)" + "A billing group is a set of linked account which belong to the same end customer. It can be seen as a virtual consolidated billing family. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationhdfs.json" + "$ref": "resources/aws-billingconductor-billinggroup.json" } }, "required": [ @@ -3755,9 +3892,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ProcessingJob": { + "AWS_ResourceGroups_TagSyncTask": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ProcessingJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-processingjob.html)", + "markdownDescription": "Schema for ResourceGroups::TagSyncTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-tagsynctask.html)", "allOf": [ { "type": "object", @@ -3765,14 +3902,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ProcessingJob" + "AWS::ResourceGroups::TagSyncTask" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ProcessingJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-processingjob.html)" + "Schema for ResourceGroups::TagSyncTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-tagsynctask.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-processingjob.json" + "$ref": "resources/aws-resourcegroups-tagsynctask.json" } }, "required": [ @@ -3786,9 +3923,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_BasePathMapping": { + "AWS_ACMPCA_CertificateAuthority": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html)", + "markdownDescription": "Private certificate authority. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html)", "allOf": [ { "type": "object", @@ -3796,14 +3933,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::BasePathMapping" + "AWS::ACMPCA::CertificateAuthority" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html)" + "Private certificate authority. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-basepathmapping.json" + "$ref": "resources/aws-acmpca-certificateauthority.json" } }, "required": [ @@ -3817,9 +3954,9 @@ ], "additionalProperties": false }, - "AWS_Scheduler_ScheduleGroup": { + "AWS_SES_MultiRegionEndpoint": { "type": "object", - "markdownDescription": "Definition of AWS::Scheduler::ScheduleGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedulegroup.html)", + "markdownDescription": "Resource Type definition for AWS::SES::MultiRegionEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-multiregionendpoint.html)", "allOf": [ { "type": "object", @@ -3827,18 +3964,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Scheduler::ScheduleGroup" + "AWS::SES::MultiRegionEndpoint" ], "markdownEnumDescriptions": [ - "Definition of AWS::Scheduler::ScheduleGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedulegroup.html)" + "Resource Type definition for AWS::SES::MultiRegionEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-multiregionendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-scheduler-schedulegroup.json" + "$ref": "resources/aws-ses-multiregionendpoint.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3847,9 +3985,9 @@ ], "additionalProperties": false }, - "AWS_RefactorSpaces_Environment": { + "AWS_ServiceDiscovery_Service": { "type": "object", - "markdownDescription": "Definition of AWS::RefactorSpaces::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-environment.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)", "allOf": [ { "type": "object", @@ -3857,14 +3995,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RefactorSpaces::Environment" + "AWS::ServiceDiscovery::Service" ], "markdownEnumDescriptions": [ - "Definition of AWS::RefactorSpaces::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-environment.html)" + "Resource Type definition for AWS::ServiceDiscovery::Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)" ] }, "Properties": { - "$ref": "resources/aws-refactorspaces-environment.json" + "$ref": "resources/aws-servicediscovery-service.json" } }, "required": [ @@ -3877,9 +4015,9 @@ ], "additionalProperties": false }, - "AWS_SSM_PatchBaseline": { + "AWS_EC2_SecurityGroupIngress": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSM::PatchBaseline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupingress.html)", "allOf": [ { "type": "object", @@ -3887,14 +4025,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::PatchBaseline" + "AWS::EC2::SecurityGroupIngress" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSM::PatchBaseline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html)" + "Resource Type definition for AWS::EC2::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupingress.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-patchbaseline.json" + "$ref": "resources/aws-ec2-securitygroupingress.json" } }, "required": [ @@ -3908,9 +4046,9 @@ ], "additionalProperties": false }, - "AWS_IoT_BillingGroup": { + "AWS_ApiGatewayV2_Stage": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::BillingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html)", + "markdownDescription": "Resource Type definition for AWS::ApiGatewayV2::Stage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html)", "allOf": [ { "type": "object", @@ -3918,18 +4056,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::BillingGroup" + "AWS::ApiGatewayV2::Stage" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::BillingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html)" + "Resource Type definition for AWS::ApiGatewayV2::Stage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-billinggroup.json" + "$ref": "resources/aws-apigatewayv2-stage.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -3938,9 +4077,9 @@ ], "additionalProperties": false }, - "AWS_CleanRoomsML_TrainingDataset": { + "AWS_ApiGateway_BasePathMappingV2": { "type": "object", - "markdownDescription": "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html)", + "markdownDescription": "Resource Type definition for AWS::ApiGateway::BasePathMappingV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmappingv2.html)", "allOf": [ { "type": "object", @@ -3948,14 +4087,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRoomsML::TrainingDataset" + "AWS::ApiGateway::BasePathMappingV2" ], "markdownEnumDescriptions": [ - "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html)" + "Resource Type definition for AWS::ApiGateway::BasePathMappingV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmappingv2.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanroomsml-trainingdataset.json" + "$ref": "resources/aws-apigateway-basepathmappingv2.json" } }, "required": [ @@ -3969,9 +4108,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_ProductSubscription": { + "AWS_Budgets_BudgetsAction": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html)", "allOf": [ { "type": "object", @@ -3979,14 +4118,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::ProductSubscription" + "AWS::Budgets::BudgetsAction" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-productsubscription.json" + "$ref": "resources/aws-budgets-budgetsaction.json" } }, "required": [ @@ -4000,9 +4139,9 @@ ], "additionalProperties": false }, - "AWS_AppRunner_VpcIngressConnection": { + "AWS_SES_MailManagerArchive": { "type": "object", - "markdownDescription": "The AWS::AppRunner::VpcIngressConnection resource is an App Runner resource that specifies an App Runner VpcIngressConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcingressconnection.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerArchive Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerarchive.html)", "allOf": [ { "type": "object", @@ -4010,19 +4149,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AppRunner::VpcIngressConnection" + "AWS::SES::MailManagerArchive" ], "markdownEnumDescriptions": [ - "The AWS::AppRunner::VpcIngressConnection resource is an App Runner resource that specifies an App Runner VpcIngressConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcingressconnection.html)" + "Definition of AWS::SES::MailManagerArchive Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerarchive.html)" ] }, "Properties": { - "$ref": "resources/aws-apprunner-vpcingressconnection.json" + "$ref": "resources/aws-ses-mailmanagerarchive.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -4031,9 +4169,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_FirewallRuleGroup": { + "AWS_Wisdom_Assistant": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::FirewallRuleGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroup.html)", + "markdownDescription": "Definition of AWS::Wisdom::Assistant Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html)", "allOf": [ { "type": "object", @@ -4041,18 +4179,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::FirewallRuleGroup" + "AWS::Wisdom::Assistant" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::FirewallRuleGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroup.html)" + "Definition of AWS::Wisdom::Assistant Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-firewallrulegroup.json" + "$ref": "resources/aws-wisdom-assistant.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -4061,9 +4200,9 @@ ], "additionalProperties": false }, - "AWS_ResourceExplorer2_DefaultViewAssociation": { + "AWS_ControlTower_EnabledBaseline": { "type": "object", - "markdownDescription": "Definition of AWS::ResourceExplorer2::DefaultViewAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-defaultviewassociation.html)", + "markdownDescription": "Definition of AWS::ControlTower::EnabledBaseline Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html)", "allOf": [ { "type": "object", @@ -4071,14 +4210,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ResourceExplorer2::DefaultViewAssociation" + "AWS::ControlTower::EnabledBaseline" ], "markdownEnumDescriptions": [ - "Definition of AWS::ResourceExplorer2::DefaultViewAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-defaultviewassociation.html)" + "Definition of AWS::ControlTower::EnabledBaseline Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html)" ] }, "Properties": { - "$ref": "resources/aws-resourceexplorer2-defaultviewassociation.json" + "$ref": "resources/aws-controltower-enabledbaseline.json" } }, "required": [ @@ -4092,9 +4231,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_CachePolicy": { + "AWS_Route53Profiles_ProfileAssociation": { "type": "object", - "markdownDescription": "A cache policy.\n When it's attached to a cache behavior, the cache policy determines the following:\n + The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.\n + The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.\n \n The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but *not* include them in the cache key, use ``OriginRequestPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Route53Profiles::ProfileAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileassociation.html)", "allOf": [ { "type": "object", @@ -4102,14 +4241,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::CachePolicy" + "AWS::Route53Profiles::ProfileAssociation" ], "markdownEnumDescriptions": [ - "A cache policy.\n When it's attached to a cache behavior, the cache policy determines the following:\n + The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.\n + The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.\n \n The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but *not* include them in the cache key, use ``OriginRequestPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html)" + "Resource Type definition for AWS::Route53Profiles::ProfileAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-cachepolicy.json" + "$ref": "resources/aws-route53profiles-profileassociation.json" } }, "required": [ @@ -4123,9 +4262,9 @@ ], "additionalProperties": false }, - "AWS_MediaTailor_SourceLocation": { + "AWS_Bedrock_ApplicationInferenceProfile": { "type": "object", - "markdownDescription": "Definition of AWS::MediaTailor::SourceLocation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html)", + "markdownDescription": "Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html)", "allOf": [ { "type": "object", @@ -4133,14 +4272,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaTailor::SourceLocation" + "AWS::Bedrock::ApplicationInferenceProfile" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaTailor::SourceLocation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html)" + "Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-mediatailor-sourcelocation.json" + "$ref": "resources/aws-bedrock-applicationinferenceprofile.json" } }, "required": [ @@ -4154,9 +4293,9 @@ ], "additionalProperties": false }, - "AWS_EKS_PodIdentityAssociation": { + "AWS_EC2_ClientVpnAuthorizationRule": { "type": "object", - "markdownDescription": "An object representing an Amazon EKS PodIdentityAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnAuthorizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html)", "allOf": [ { "type": "object", @@ -4164,14 +4303,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::PodIdentityAssociation" + "AWS::EC2::ClientVpnAuthorizationRule" ], "markdownEnumDescriptions": [ - "An object representing an Amazon EKS PodIdentityAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html)" + "Resource Type definition for AWS::EC2::ClientVpnAuthorizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-podidentityassociation.json" + "$ref": "resources/aws-ec2-clientvpnauthorizationrule.json" } }, "required": [ @@ -4185,9 +4324,9 @@ ], "additionalProperties": false }, - "AWS_S3_AccessGrant": { + "AWS_IAM_UserToGroupAddition": { "type": "object", - "markdownDescription": "The AWS::S3::AccessGrant resource is an Amazon S3 resource type representing permissions to a specific S3 bucket or prefix hosted in an S3 Access Grants instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrant.html)", + "markdownDescription": "Resource Type definition for AWS::IAM::UserToGroupAddition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html)", "allOf": [ { "type": "object", @@ -4195,14 +4334,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::AccessGrant" + "AWS::IAM::UserToGroupAddition" ], "markdownEnumDescriptions": [ - "The AWS::S3::AccessGrant resource is an Amazon S3 resource type representing permissions to a specific S3 bucket or prefix hosted in an S3 Access Grants instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrant.html)" + "Resource Type definition for AWS::IAM::UserToGroupAddition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-accessgrant.json" + "$ref": "resources/aws-iam-usertogroupaddition.json" } }, "required": [ @@ -4216,9 +4355,9 @@ ], "additionalProperties": false }, - "AWS_Proton_ServiceTemplate": { + "AWS_Lambda_Permission": { "type": "object", - "markdownDescription": "Definition of AWS::Proton::ServiceTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-servicetemplate.html)", + "markdownDescription": "The ``AWS::Lambda::Permission`` resource grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function.\n To grant permission to another account, specify the account ID as the ``Principal``. To grant permission to an organization defined in AOlong, specify the organization ID as the ``PrincipalOrgID``. For AWS services, the principal is a domain-style identifier defined by the service, like ``s3.amazonaws.com`` or ``sns.amazonaws.com``. For AWS services, you can also specify the ARN of the associated resource as the ``SourceArn``. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.\n If your function has a function URL, you can specify the ``FunctionUrlAuthType`` parameter. This adds a condition to your permission that only applies when your function URL's ``AuthType`` matches the specified ``FunctionUrlAuthType``. For more information about the ``AuthType`` parameter, see [Control access to function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).\n This resource adds a statement to a resource-based permission policy for the function. For more information about function policies, see [Lambda Function Policies](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)", "allOf": [ { "type": "object", @@ -4226,18 +4365,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Proton::ServiceTemplate" + "AWS::Lambda::Permission" ], "markdownEnumDescriptions": [ - "Definition of AWS::Proton::ServiceTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-servicetemplate.html)" + "The ``AWS::Lambda::Permission`` resource grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function.\n To grant permission to another account, specify the account ID as the ``Principal``. To grant permission to an organization defined in AOlong, specify the organization ID as the ``PrincipalOrgID``. For AWS services, the principal is a domain-style identifier defined by the service, like ``s3.amazonaws.com`` or ``sns.amazonaws.com``. For AWS services, you can also specify the ARN of the associated resource as the ``SourceArn``. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.\n If your function has a function URL, you can specify the ``FunctionUrlAuthType`` parameter. This adds a condition to your permission that only applies when your function URL's ``AuthType`` matches the specified ``FunctionUrlAuthType``. For more information about the ``AuthType`` parameter, see [Control access to function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).\n This resource adds a statement to a resource-based permission policy for the function. For more information about function policies, see [Lambda Function Policies](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)" ] }, "Properties": { - "$ref": "resources/aws-proton-servicetemplate.json" + "$ref": "resources/aws-lambda-permission.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -4246,9 +4386,9 @@ ], "additionalProperties": false }, - "AWS_Omics_Workflow": { + "AWS_Backup_ReportPlan": { "type": "object", - "markdownDescription": "Definition of AWS::Omics::Workflow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflow.html)", + "markdownDescription": "Contains detailed information about a report plan in AWS Backup Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html)", "allOf": [ { "type": "object", @@ -4256,18 +4396,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::Workflow" + "AWS::Backup::ReportPlan" ], "markdownEnumDescriptions": [ - "Definition of AWS::Omics::Workflow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflow.html)" + "Contains detailed information about a report plan in AWS Backup Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-workflow.json" + "$ref": "resources/aws-backup-reportplan.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -4276,9 +4417,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_StaticIp": { + "AWS_MSK_Cluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::StaticIp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html)", "allOf": [ { "type": "object", @@ -4286,14 +4427,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::StaticIp" + "AWS::MSK::Cluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::StaticIp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html)" + "Resource Type definition for AWS::MSK::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-staticip.json" + "$ref": "resources/aws-msk-cluster.json" } }, "required": [ @@ -4307,9 +4448,9 @@ ], "additionalProperties": false }, - "AWS_Backup_Framework": { + "AWS_InspectorV2_CodeSecurityIntegration": { "type": "object", - "markdownDescription": "Contains detailed information about a framework. Frameworks contain controls, which evaluate and report on your backup events and resources. Frameworks generate daily compliance results. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html)", + "markdownDescription": "Inspector CodeSecurityIntegration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityintegration.html)", "allOf": [ { "type": "object", @@ -4317,19 +4458,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::Framework" + "AWS::InspectorV2::CodeSecurityIntegration" ], "markdownEnumDescriptions": [ - "Contains detailed information about a framework. Frameworks contain controls, which evaluate and report on your backup events and resources. Frameworks generate daily compliance results. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html)" + "Inspector CodeSecurityIntegration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityintegration.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-framework.json" + "$ref": "resources/aws-inspectorv2-codesecurityintegration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -4338,9 +4478,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_SizeConstraintSet": { + "AWS_S3Files_FileSystemPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html)", + "markdownDescription": "Resource Type definition for AWS::S3Files::FileSystemPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-filesystempolicy.html)", "allOf": [ { "type": "object", @@ -4348,14 +4488,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::SizeConstraintSet" + "AWS::S3Files::FileSystemPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html)" + "Resource Type definition for AWS::S3Files::FileSystemPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-filesystempolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-sizeconstraintset.json" + "$ref": "resources/aws-s3files-filesystempolicy.json" } }, "required": [ @@ -4369,9 +4509,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_BridgeSource": { + "AWS_CloudWatch_CompositeAlarm": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::BridgeSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgesource.html)", + "markdownDescription": "The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html)", "allOf": [ { "type": "object", @@ -4379,14 +4519,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::BridgeSource" + "AWS::CloudWatch::CompositeAlarm" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::BridgeSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgesource.html)" + "The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-bridgesource.json" + "$ref": "resources/aws-cloudwatch-compositealarm.json" } }, "required": [ @@ -4400,9 +4540,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_EndpointAuthorization": { + "AWS_ECR_SigningConfiguration": { "type": "object", - "markdownDescription": "Describes an endpoint authorization for authorizing Redshift-managed VPC endpoint access to a cluster across AWS accounts. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html)", + "markdownDescription": "The AWS::ECR::SigningConfiguration resource creates or updates the signing configuration for an Amazon ECR registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-signingconfiguration.html)", "allOf": [ { "type": "object", @@ -4410,14 +4550,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::EndpointAuthorization" + "AWS::ECR::SigningConfiguration" ], "markdownEnumDescriptions": [ - "Describes an endpoint authorization for authorizing Redshift-managed VPC endpoint access to a cluster across AWS accounts. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html)" + "The AWS::ECR::SigningConfiguration resource creates or updates the signing configuration for an Amazon ECR registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-signingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-endpointauthorization.json" + "$ref": "resources/aws-ecr-signingconfiguration.json" } }, "required": [ @@ -4431,9 +4571,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_AccessPolicy": { + "AWS_IoT_TopicRuleDestination": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::AccessPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::TopicRuleDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html)", "allOf": [ { "type": "object", @@ -4441,19 +4581,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::AccessPolicy" + "AWS::IoT::TopicRuleDestination" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::AccessPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html)" + "Resource Type definition for AWS::IoT::TopicRuleDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-accesspolicy.json" + "$ref": "resources/aws-iot-topicruledestination.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -4462,9 +4601,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TrafficMirrorSession": { + "AWS_CloudFormation_CustomResource": { "type": "object", - "markdownDescription": "Resource schema for AWS::EC2::TrafficMirrorSession \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html)", + "markdownDescription": "Resource Type definition for AWS::CloudFormation::CustomResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html)", "allOf": [ { "type": "object", @@ -4472,14 +4611,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TrafficMirrorSession" + "AWS::CloudFormation::CustomResource" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EC2::TrafficMirrorSession \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html)" + "Resource Type definition for AWS::CloudFormation::CustomResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-trafficmirrorsession.json" + "$ref": "resources/aws-cloudformation-customresource.json" } }, "required": [ @@ -4493,9 +4632,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_QueueEnvironment": { + "AWS_EC2_TransitGatewayPeeringAttachment": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::QueueEnvironment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html)", + "markdownDescription": "The AWS::EC2::TransitGatewayPeeringAttachment type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html)", "allOf": [ { "type": "object", @@ -4503,14 +4642,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::QueueEnvironment" + "AWS::EC2::TransitGatewayPeeringAttachment" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::QueueEnvironment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html)" + "The AWS::EC2::TransitGatewayPeeringAttachment type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-queueenvironment.json" + "$ref": "resources/aws-ec2-transitgatewaypeeringattachment.json" } }, "required": [ @@ -4524,9 +4663,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_BrowserSettings": { + "AWS_Location_APIKey": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::BrowserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-browsersettings.html)", + "markdownDescription": "Definition of AWS::Location::APIKey Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-apikey.html)", "allOf": [ { "type": "object", @@ -4534,18 +4673,19 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::BrowserSettings" + "AWS::Location::APIKey" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::BrowserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-browsersettings.html)" + "Definition of AWS::Location::APIKey Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-apikey.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-browsersettings.json" + "$ref": "resources/aws-location-apikey.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -4554,9 +4694,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolUser": { + "AWS_VpcLattice_ServiceNetworkVpcAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolUser \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html)", + "markdownDescription": "Associates a VPC with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkvpcassociation.html)", "allOf": [ { "type": "object", @@ -4564,19 +4704,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolUser" + "AWS::VpcLattice::ServiceNetworkVpcAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolUser \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html)" + "Associates a VPC with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkvpcassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpooluser.json" + "$ref": "resources/aws-vpclattice-servicenetworkvpcassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -4585,9 +4724,9 @@ ], "additionalProperties": false }, - "AWS_S3_AccessGrantsInstance": { + "AWS_EC2_IPAMPrefixListResolver": { "type": "object", - "markdownDescription": "The AWS::S3::AccessGrantsInstance resource is an Amazon S3 resource type that hosts Access Grants and their associated locations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantsinstance.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::IPAMPrefixListResolver \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolver.html)", "allOf": [ { "type": "object", @@ -4595,18 +4734,19 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::AccessGrantsInstance" + "AWS::EC2::IPAMPrefixListResolver" ], "markdownEnumDescriptions": [ - "The AWS::S3::AccessGrantsInstance resource is an Amazon S3 resource type that hosts Access Grants and their associated locations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantsinstance.html)" + "Resource Type definition for AWS::EC2::IPAMPrefixListResolver \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolver.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-accessgrantsinstance.json" + "$ref": "resources/aws-ec2-ipamprefixlistresolver.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -4615,9 +4755,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_EntityType": { + "AWS_Pinpoint_EmailChannel": { "type": "object", - "markdownDescription": "An entity type for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::EmailChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html)", "allOf": [ { "type": "object", @@ -4625,14 +4765,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::EntityType" + "AWS::Pinpoint::EmailChannel" ], "markdownEnumDescriptions": [ - "An entity type for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html)" + "Resource Type definition for AWS::Pinpoint::EmailChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-entitytype.json" + "$ref": "resources/aws-pinpoint-emailchannel.json" } }, "required": [ @@ -4646,9 +4786,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_Outcome": { + "AWS_IAM_Role": { "type": "object", - "markdownDescription": "An outcome for rule evaluation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html)", + "markdownDescription": "Creates a new role for your AWS-account.\n For more information about roles, see [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) in the *IAM User Guide*. For information about quotas for role names and the number of roles you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)", "allOf": [ { "type": "object", @@ -4656,14 +4796,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::Outcome" + "AWS::IAM::Role" ], "markdownEnumDescriptions": [ - "An outcome for rule evaluation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html)" + "Creates a new role for your AWS-account.\n For more information about roles, see [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) in the *IAM User Guide*. For information about quotas for role names and the number of roles you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-outcome.json" + "$ref": "resources/aws-iam-role.json" } }, "required": [ @@ -4677,9 +4817,9 @@ ], "additionalProperties": false }, - "AWS_LookoutEquipment_InferenceScheduler": { + "AWS_EC2_SnapshotBlockPublicAccess": { "type": "object", - "markdownDescription": "Resource schema for LookoutEquipment InferenceScheduler. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::SnapshotBlockPublicAccess \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html)", "allOf": [ { "type": "object", @@ -4687,14 +4827,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LookoutEquipment::InferenceScheduler" + "AWS::EC2::SnapshotBlockPublicAccess" ], "markdownEnumDescriptions": [ - "Resource schema for LookoutEquipment InferenceScheduler. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html)" + "Resource Type definition for AWS::EC2::SnapshotBlockPublicAccess \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html)" ] }, "Properties": { - "$ref": "resources/aws-lookoutequipment-inferencescheduler.json" + "$ref": "resources/aws-ec2-snapshotblockpublicaccess.json" } }, "required": [ @@ -4708,9 +4848,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_GameServerGroup": { + "AWS_ApiGatewayV2_VpcLink": { "type": "object", - "markdownDescription": "The AWS::GameLift::GameServerGroup resource creates an Amazon GameLift (GameLift) GameServerGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::VpcLink`` resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from ``PENDING`` to ``AVAILABLE`` to successfully create a VPC link, which can take up to 10 minutes. To learn more, see [Working with VPC Links for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html)", "allOf": [ { "type": "object", @@ -4718,14 +4858,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::GameServerGroup" + "AWS::ApiGatewayV2::VpcLink" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::GameServerGroup resource creates an Amazon GameLift (GameLift) GameServerGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html)" + "The ``AWS::ApiGatewayV2::VpcLink`` resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from ``PENDING`` to ``AVAILABLE`` to successfully create a VPC link, which can take up to 10 minutes. To learn more, see [Working with VPC Links for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-gameservergroup.json" + "$ref": "resources/aws-apigatewayv2-vpclink.json" } }, "required": [ @@ -4739,9 +4879,9 @@ ], "additionalProperties": false }, - "AWS_FSx_StorageVirtualMachine": { + "AWS_SageMaker_ProcessingJob": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::FSx::StorageVirtualMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-storagevirtualmachine.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ProcessingJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-processingjob.html)", "allOf": [ { "type": "object", @@ -4749,14 +4889,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FSx::StorageVirtualMachine" + "AWS::SageMaker::ProcessingJob" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::FSx::StorageVirtualMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-storagevirtualmachine.html)" + "Resource Type definition for AWS::SageMaker::ProcessingJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-processingjob.html)" ] }, "Properties": { - "$ref": "resources/aws-fsx-storagevirtualmachine.json" + "$ref": "resources/aws-sagemaker-processingjob.json" } }, "required": [ @@ -4770,9 +4910,9 @@ ], "additionalProperties": false }, - "AWS_RoboMaker_SimulationApplication": { + "AWS_AppStream_StackFleetAssociation": { "type": "object", - "markdownDescription": "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::StackFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html)", "allOf": [ { "type": "object", @@ -4780,14 +4920,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RoboMaker::SimulationApplication" + "AWS::AppStream::StackFleetAssociation" ], "markdownEnumDescriptions": [ - "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html)" + "Resource Type definition for AWS::AppStream::StackFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-robomaker-simulationapplication.json" + "$ref": "resources/aws-appstream-stackfleetassociation.json" } }, "required": [ @@ -4801,9 +4941,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AIAgent": { + "AWS_Lambda_Alias": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AIAgent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html)", + "markdownDescription": "Resource Type definition for AWS::Lambda::Alias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)", "allOf": [ { "type": "object", @@ -4811,14 +4951,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AIAgent" + "AWS::Lambda::Alias" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AIAgent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html)" + "Resource Type definition for AWS::Lambda::Alias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-aiagent.json" + "$ref": "resources/aws-lambda-alias.json" } }, "required": [ @@ -4832,9 +4972,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_Detector": { + "AWS_VpcLattice_Rule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::Detector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html)", + "markdownDescription": "Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-rule.html)", "allOf": [ { "type": "object", @@ -4842,14 +4982,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::Detector" + "AWS::VpcLattice::Rule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::Detector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html)" + "Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-rule.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-detector.json" + "$ref": "resources/aws-vpclattice-rule.json" } }, "required": [ @@ -4863,9 +5003,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_ConnectorDefinition": { + "AWS_CodePipeline_Webhook": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::ConnectorDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html)", + "markdownDescription": "Resource Type definition for AWS::CodePipeline::Webhook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html)", "allOf": [ { "type": "object", @@ -4873,14 +5013,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::ConnectorDefinition" + "AWS::CodePipeline::Webhook" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::ConnectorDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html)" + "Resource Type definition for AWS::CodePipeline::Webhook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-connectordefinition.json" + "$ref": "resources/aws-codepipeline-webhook.json" } }, "required": [ @@ -4894,9 +5034,9 @@ ], "additionalProperties": false }, - "AWS_SES_Template": { + "AWS_WAFRegional_IPSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::Template \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html)", "allOf": [ { "type": "object", @@ -4904,18 +5044,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::Template" + "AWS::WAFRegional::IPSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::Template \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html)" + "Resource Type definition for AWS::WAFRegional::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-template.json" + "$ref": "resources/aws-wafregional-ipset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -4924,9 +5065,9 @@ ], "additionalProperties": false }, - "AWS_BedrockAgentCore_RuntimeEndpoint": { + "AWS_ServiceCatalog_CloudFormationProvisionedProduct": { "type": "object", - "markdownDescription": "Resource definition for AWS::BedrockAgentCore::RuntimeEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtimeendpoint.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalog::CloudFormationProvisionedProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html)", "allOf": [ { "type": "object", @@ -4934,19 +5075,18 @@ "Type": { "type": "string", "enum": [ - "AWS::BedrockAgentCore::RuntimeEndpoint" + "AWS::ServiceCatalog::CloudFormationProvisionedProduct" ], "markdownEnumDescriptions": [ - "Resource definition for AWS::BedrockAgentCore::RuntimeEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtimeendpoint.html)" + "Resource Schema for AWS::ServiceCatalog::CloudFormationProvisionedProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrockagentcore-runtimeendpoint.json" + "$ref": "resources/aws-servicecatalog-cloudformationprovisionedproduct.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -4955,9 +5095,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_AutomationRule": { + "AWS_SecretsManager_ResourcePolicy": { "type": "object", - "markdownDescription": "The ``AWS::SecurityHub::AutomationRule`` resource specifies an automation rule based on input parameters. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html)", + "markdownDescription": "Resource Type definition for AWS::SecretsManager::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -4965,14 +5105,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::AutomationRule" + "AWS::SecretsManager::ResourcePolicy" ], "markdownEnumDescriptions": [ - "The ``AWS::SecurityHub::AutomationRule`` resource specifies an automation rule based on input parameters. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html)" + "Resource Type definition for AWS::SecretsManager::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-automationrule.json" + "$ref": "resources/aws-secretsmanager-resourcepolicy.json" } }, "required": [ @@ -4986,9 +5126,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LocalGatewayVirtualInterfaceGroup": { + "AWS_AmplifyUIBuilder_Theme": { "type": "object", - "markdownDescription": "Resource Type definition for LocalGatewayVirtualInterfaceGroup which describes a group of LocalGateway VirtualInterfaces \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html)", + "markdownDescription": "Definition of AWS::AmplifyUIBuilder::Theme Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html)", "allOf": [ { "type": "object", @@ -4996,19 +5136,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LocalGatewayVirtualInterfaceGroup" + "AWS::AmplifyUIBuilder::Theme" ], "markdownEnumDescriptions": [ - "Resource Type definition for LocalGatewayVirtualInterfaceGroup which describes a group of LocalGateway VirtualInterfaces \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html)" + "Definition of AWS::AmplifyUIBuilder::Theme Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-localgatewayvirtualinterfacegroup.json" + "$ref": "resources/aws-amplifyuibuilder-theme.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -5017,9 +5156,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationSMB": { + "AWS_MediaPackage_PackagingGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DataSync::LocationSMB. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html)", + "markdownDescription": "Resource schema for AWS::MediaPackage::PackagingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html)", "allOf": [ { "type": "object", @@ -5027,14 +5166,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationSMB" + "AWS::MediaPackage::PackagingGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DataSync::LocationSMB. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html)" + "Resource schema for AWS::MediaPackage::PackagingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationsmb.json" + "$ref": "resources/aws-mediapackage-packaginggroup.json" } }, "required": [ @@ -5048,9 +5187,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_ReplicationGroup": { + "AWS_Cognito_IdentityPoolRoleAttachment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::ReplicationGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::IdentityPoolRoleAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html)", "allOf": [ { "type": "object", @@ -5058,14 +5197,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::ReplicationGroup" + "AWS::Cognito::IdentityPoolRoleAttachment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::ReplicationGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html)" + "Resource Type definition for AWS::Cognito::IdentityPoolRoleAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-replicationgroup.json" + "$ref": "resources/aws-cognito-identitypoolroleattachment.json" } }, "required": [ @@ -5079,9 +5218,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Deployment": { + "AWS_Redshift_ClusterSubnetGroup": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Deployment`` resource deploys an API Gateway ``RestApi`` resource to a stage so that clients can call the API over the internet. The stage acts as an environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html)", + "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup. Specifies an Amazon Redshift subnet group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html)", "allOf": [ { "type": "object", @@ -5089,14 +5228,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Deployment" + "AWS::Redshift::ClusterSubnetGroup" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Deployment`` resource deploys an API Gateway ``RestApi`` resource to a stage so that clients can call the API over the internet. The stage acts as an environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html)" + "Resource Type definition for AWS::Redshift::ClusterSubnetGroup. Specifies an Amazon Redshift subnet group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-deployment.json" + "$ref": "resources/aws-redshift-clustersubnetgroup.json" } }, "required": [ @@ -5110,9 +5249,9 @@ ], "additionalProperties": false }, - "AWS_IAM_UserToGroupAddition": { + "AWS_Pinpoint_GCMChannel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::UserToGroupAddition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::GCMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html)", "allOf": [ { "type": "object", @@ -5120,14 +5259,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::Pinpoint::GCMChannel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::UserToGroupAddition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html)" + "Resource Type definition for AWS::Pinpoint::GCMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-usertogroupaddition.json" + "$ref": "resources/aws-pinpoint-gcmchannel.json" } }, "required": [ @@ -5141,9 +5280,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Route": { + "AWS_KinesisVideo_SignalingChannel": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::Route`` resource creates a route for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html)", + "markdownDescription": "Resource Type Definition for AWS::KinesisVideo::SignalingChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-signalingchannel.html)", "allOf": [ { "type": "object", @@ -5151,19 +5290,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Route" + "AWS::KinesisVideo::SignalingChannel" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::Route`` resource creates a route for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html)" + "Resource Type Definition for AWS::KinesisVideo::SignalingChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-signalingchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-route.json" + "$ref": "resources/aws-kinesisvideo-signalingchannel.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -5172,9 +5310,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_DeploymentStrategy": { + "AWS_S3Outposts_BucketPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppConfig::DeploymentStrategy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html)", + "markdownDescription": "Resource Type Definition for AWS::S3Outposts::BucketPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html)", "allOf": [ { "type": "object", @@ -5182,14 +5320,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::DeploymentStrategy" + "AWS::S3Outposts::BucketPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppConfig::DeploymentStrategy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html)" + "Resource Type Definition for AWS::S3Outposts::BucketPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-deploymentstrategy.json" + "$ref": "resources/aws-s3outposts-bucketpolicy.json" } }, "required": [ @@ -5203,9 +5341,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_Device": { + "AWS_CodePipeline_CustomActionType": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::Device type describes a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html)", + "markdownDescription": "The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html)", "allOf": [ { "type": "object", @@ -5213,14 +5351,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::Device" + "AWS::CodePipeline::CustomActionType" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::Device type describes a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html)" + "The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-device.json" + "$ref": "resources/aws-codepipeline-customactiontype.json" } }, "required": [ @@ -5234,9 +5372,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_DataSource": { + "AWS_SSMQuickSetup_LifecycleAutomation": { "type": "object", - "markdownDescription": "A data source is used to import technical metadata of assets (data) from the source databases or data warehouses into Amazon DataZone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html)", + "markdownDescription": "Resource Type definition for AWS::SSMQuickSetup::LifecycleAutomation that executes SSM Automation documents in response to CloudFormation lifecycle events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-lifecycleautomation.html)", "allOf": [ { "type": "object", @@ -5244,14 +5382,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::DataSource" + "AWS::SSMQuickSetup::LifecycleAutomation" ], "markdownEnumDescriptions": [ - "A data source is used to import technical metadata of assets (data) from the source databases or data warehouses into Amazon DataZone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html)" + "Resource Type definition for AWS::SSMQuickSetup::LifecycleAutomation that executes SSM Automation documents in response to CloudFormation lifecycle events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-lifecycleautomation.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-datasource.json" + "$ref": "resources/aws-ssmquicksetup-lifecycleautomation.json" } }, "required": [ @@ -5265,9 +5403,9 @@ ], "additionalProperties": false }, - "AWS_CodePipeline_Webhook": { + "AWS_EMRServerless_Application": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodePipeline::Webhook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html)", + "markdownDescription": "Resource schema for AWS::EMRServerless::Application Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html)", "allOf": [ { "type": "object", @@ -5275,14 +5413,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodePipeline::Webhook" + "AWS::EMRServerless::Application" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodePipeline::Webhook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html)" + "Resource schema for AWS::EMRServerless::Application Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html)" ] }, "Properties": { - "$ref": "resources/aws-codepipeline-webhook.json" + "$ref": "resources/aws-emrserverless-application.json" } }, "required": [ @@ -5296,9 +5434,9 @@ ], "additionalProperties": false }, - "AWS_S3Tables_TablePolicy": { + "AWS_DocDBElastic_Cluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::S3Tables::TablePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablepolicy.html)", + "markdownDescription": "The AWS::DocDBElastic::Cluster Amazon DocumentDB (with MongoDB compatibility) Elastic Scale resource describes a Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html)", "allOf": [ { "type": "object", @@ -5306,14 +5444,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Tables::TablePolicy" + "AWS::DocDBElastic::Cluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::S3Tables::TablePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablepolicy.html)" + "The AWS::DocDBElastic::Cluster Amazon DocumentDB (with MongoDB compatibility) Elastic Scale resource describes a Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-s3tables-tablepolicy.json" + "$ref": "resources/aws-docdbelastic-cluster.json" } }, "required": [ @@ -5327,9 +5465,9 @@ ], "additionalProperties": false }, - "AWS_DirectoryService_MicrosoftAD": { + "AWS_RAM_ResourceShare": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DirectoryService::MicrosoftAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html)", + "markdownDescription": "Resource type definition for AWS::RAM::ResourceShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html)", "allOf": [ { "type": "object", @@ -5337,14 +5475,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DirectoryService::MicrosoftAD" + "AWS::RAM::ResourceShare" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DirectoryService::MicrosoftAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html)" + "Resource type definition for AWS::RAM::ResourceShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html)" ] }, "Properties": { - "$ref": "resources/aws-directoryservice-microsoftad.json" + "$ref": "resources/aws-ram-resourceshare.json" } }, "required": [ @@ -5358,9 +5496,9 @@ ], "additionalProperties": false }, - "AWS_Comprehend_Flywheel": { + "AWS_EC2_IPAMPrefixListResolverTarget": { "type": "object", - "markdownDescription": "The AWS::Comprehend::Flywheel resource creates an Amazon Comprehend Flywheel that enables customer to train their model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-flywheel.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::IPAMPrefixListResolverTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolvertarget.html)", "allOf": [ { "type": "object", @@ -5368,14 +5506,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Comprehend::Flywheel" + "AWS::EC2::IPAMPrefixListResolverTarget" ], "markdownEnumDescriptions": [ - "The AWS::Comprehend::Flywheel resource creates an Amazon Comprehend Flywheel that enables customer to train their model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-flywheel.html)" + "Resource Type definition for AWS::EC2::IPAMPrefixListResolverTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolvertarget.html)" ] }, "Properties": { - "$ref": "resources/aws-comprehend-flywheel.json" + "$ref": "resources/aws-ec2-ipamprefixlistresolvertarget.json" } }, "required": [ @@ -5389,9 +5527,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_SubnetGroup": { + "AWS_Transfer_Connector": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Transfer::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html)", "allOf": [ { "type": "object", @@ -5399,14 +5537,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::SubnetGroup" + "AWS::Transfer::Connector" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html)" + "Resource Type definition for AWS::Transfer::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-subnetgroup.json" + "$ref": "resources/aws-transfer-connector.json" } }, "required": [ @@ -5420,9 +5558,9 @@ ], "additionalProperties": false }, - "AWS_Route53_RecordSet": { + "AWS_VpcLattice_ServiceNetworkServiceAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53::RecordSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html)", + "markdownDescription": "Associates a service with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkserviceassociation.html)", "allOf": [ { "type": "object", @@ -5430,19 +5568,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::RecordSet" + "AWS::VpcLattice::ServiceNetworkServiceAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53::RecordSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html)" + "Associates a service with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkserviceassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-recordset.json" + "$ref": "resources/aws-vpclattice-servicenetworkserviceassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -5451,9 +5588,9 @@ ], "additionalProperties": false }, - "AWS_ECR_RegistryPolicy": { + "AWS_EC2_Route": { "type": "object", - "markdownDescription": "The ``AWS::ECR::RegistryPolicy`` resource creates or updates the permissions policy for a private registry.\n A private registry policy is used to specify permissions for another AWS-account and is used when configuring cross-account replication. For more information, see [Registry permissions](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the *Amazon Elastic Container Registry User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registrypolicy.html)", + "markdownDescription": "Specifies a route in a route table. For more information, see [Routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-table-routes) in the *Amazon VPC User Guide*.\n You must specify either a destination CIDR block or prefix list ID. You must also specify exactly one of the resources as the target.\n If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the ``AWS::EC2::Route`` resource to explicitly declare a dependency on the ``AWS::EC2::TransitGatewayAttachment`` resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html)", "allOf": [ { "type": "object", @@ -5461,14 +5598,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::RegistryPolicy" + "AWS::EC2::Route" ], "markdownEnumDescriptions": [ - "The ``AWS::ECR::RegistryPolicy`` resource creates or updates the permissions policy for a private registry.\n A private registry policy is used to specify permissions for another AWS-account and is used when configuring cross-account replication. For more information, see [Registry permissions](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the *Amazon Elastic Container Registry User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registrypolicy.html)" + "Specifies a route in a route table. For more information, see [Routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-table-routes) in the *Amazon VPC User Guide*.\n You must specify either a destination CIDR block or prefix list ID. You must also specify exactly one of the resources as the target.\n If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the ``AWS::EC2::Route`` resource to explicitly declare a dependency on the ``AWS::EC2::TransitGatewayAttachment`` resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-registrypolicy.json" + "$ref": "resources/aws-ec2-route.json" } }, "required": [ @@ -5482,9 +5619,9 @@ ], "additionalProperties": false }, - "AWS_WAF_ByteMatchSet": { + "AWS_Timestream_InfluxDBCluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html)", + "markdownDescription": "The AWS::Timestream::InfluxDBCluster resource creates an InfluxDB cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbcluster.html)", "allOf": [ { "type": "object", @@ -5492,19 +5629,18 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::ByteMatchSet" + "AWS::Timestream::InfluxDBCluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html)" + "The AWS::Timestream::InfluxDBCluster resource creates an InfluxDB cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-bytematchset.json" + "$ref": "resources/aws-timestream-influxdbcluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -5513,9 +5649,9 @@ ], "additionalProperties": false }, - "AWS_S3_AccessPoint": { + "AWS_IoT_Authorizer": { "type": "object", - "markdownDescription": "The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html)", + "markdownDescription": "Creates an authorizer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html)", "allOf": [ { "type": "object", @@ -5523,14 +5659,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::AccessPoint" + "AWS::IoT::Authorizer" ], "markdownEnumDescriptions": [ - "The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html)" + "Creates an authorizer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-accesspoint.json" + "$ref": "resources/aws-iot-authorizer.json" } }, "required": [ @@ -5544,9 +5680,9 @@ ], "additionalProperties": false }, - "AWS_Organizations_Organization": { + "AWS_StepFunctions_StateMachine": { "type": "object", - "markdownDescription": "Resource schema for AWS::Organizations::Organization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organization.html)", + "markdownDescription": "Resource schema for StateMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)", "allOf": [ { "type": "object", @@ -5554,18 +5690,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Organizations::Organization" + "AWS::StepFunctions::StateMachine" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Organizations::Organization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organization.html)" + "Resource schema for StateMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)" ] }, "Properties": { - "$ref": "resources/aws-organizations-organization.json" + "$ref": "resources/aws-stepfunctions-statemachine.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -5574,9 +5711,9 @@ ], "additionalProperties": false }, - "AWS_Connect_UserHierarchyGroup": { + "AWS_EFS_AccessPoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::UserHierarchyGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html)", + "markdownDescription": "The ``AWS::EFS::AccessPoint`` resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see [Mounting a file system using EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html).\n This operation requires permissions for the ``elasticfilesystem:CreateAccessPoint`` action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html)", "allOf": [ { "type": "object", @@ -5584,14 +5721,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::UserHierarchyGroup" + "AWS::EFS::AccessPoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::UserHierarchyGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html)" + "The ``AWS::EFS::AccessPoint`` resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see [Mounting a file system using EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html).\n This operation requires permissions for the ``elasticfilesystem:CreateAccessPoint`` action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-userhierarchygroup.json" + "$ref": "resources/aws-efs-accesspoint.json" } }, "required": [ @@ -5605,9 +5742,9 @@ ], "additionalProperties": false }, - "AWS_EC2_Volume": { + "AWS_SecurityHub_AutomationRule": { "type": "object", - "markdownDescription": "Specifies an Amazon Elastic Block Store (Amazon EBS) volume.\n When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time.\n Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html)", + "markdownDescription": "The ``AWS::SecurityHub::AutomationRule`` resource specifies an automation rule based on input parameters. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html)", "allOf": [ { "type": "object", @@ -5615,14 +5752,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::Volume" + "AWS::SecurityHub::AutomationRule" ], "markdownEnumDescriptions": [ - "Specifies an Amazon Elastic Block Store (Amazon EBS) volume.\n When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time.\n Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html)" + "The ``AWS::SecurityHub::AutomationRule`` resource specifies an automation rule based on input parameters. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-volume.json" + "$ref": "resources/aws-securityhub-automationrule.json" } }, "required": [ @@ -5636,9 +5773,9 @@ ], "additionalProperties": false }, - "AWS_Batch_ServiceEnvironment": { + "AWS_MSK_VpcConnection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Batch::ServiceEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::VpcConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-vpcconnection.html)", "allOf": [ { "type": "object", @@ -5646,14 +5783,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Batch::ServiceEnvironment" + "AWS::MSK::VpcConnection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Batch::ServiceEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html)" + "Resource Type definition for AWS::MSK::VpcConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-vpcconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-batch-serviceenvironment.json" + "$ref": "resources/aws-msk-vpcconnection.json" } }, "required": [ @@ -5667,9 +5804,9 @@ ], "additionalProperties": false }, - "AWS_EC2_CapacityReservationFleet": { + "AWS_Neptune_DBClusterParameterGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::CapacityReservationFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html)", + "markdownDescription": "The AWS::Neptune::DBClusterParameterGroup resource creates a new Amazon Neptune DB cluster parameter group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html)", "allOf": [ { "type": "object", @@ -5677,18 +5814,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::CapacityReservationFleet" + "AWS::Neptune::DBClusterParameterGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::CapacityReservationFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html)" + "The AWS::Neptune::DBClusterParameterGroup resource creates a new Amazon Neptune DB cluster parameter group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-capacityreservationfleet.json" + "$ref": "resources/aws-neptune-dbclusterparametergroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -5697,9 +5835,9 @@ ], "additionalProperties": false }, - "AWS_WAFv2_WebACLAssociation": { + "AWS_Notifications_NotificationConfiguration": { "type": "object", - "markdownDescription": "Associates WebACL to Application Load Balancer, CloudFront or API Gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Notifications::NotificationConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationconfiguration.html)", "allOf": [ { "type": "object", @@ -5707,14 +5845,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFv2::WebACLAssociation" + "AWS::Notifications::NotificationConfiguration" ], "markdownEnumDescriptions": [ - "Associates WebACL to Application Load Balancer, CloudFront or API Gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)" + "Resource Type definition for AWS::Notifications::NotificationConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-wafv2-webaclassociation.json" + "$ref": "resources/aws-notifications-notificationconfiguration.json" } }, "required": [ @@ -5728,39 +5866,9 @@ ], "additionalProperties": false }, - "AWS_ECS_CapacityProvider": { - "type": "object", - "markdownDescription": "Resource Type definition for AWS::ECS::CapacityProvider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::ECS::CapacityProvider" - ], - "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ECS::CapacityProvider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-ecs-capacityprovider.json" - } - }, - "required": [ - "Type" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_CodeStarConnections_SyncConfiguration": { + "AWS_IoT_JobTemplate": { "type": "object", - "markdownDescription": "Schema for AWS::CodeStarConnections::SyncConfiguration resource which is used to enables an AWS resource to be synchronized from a source-provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::JobTemplate. Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html)", "allOf": [ { "type": "object", @@ -5768,14 +5876,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeStarConnections::SyncConfiguration" + "AWS::IoT::JobTemplate" ], "markdownEnumDescriptions": [ - "Schema for AWS::CodeStarConnections::SyncConfiguration resource which is used to enables an AWS resource to be synchronized from a source-provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html)" + "Resource Type definition for AWS::IoT::JobTemplate. Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-codestarconnections-syncconfiguration.json" + "$ref": "resources/aws-iot-jobtemplate.json" } }, "required": [ @@ -5789,9 +5897,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCCidrBlock": { + "AWS_WAFRegional_Rule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCCidrBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html)", "allOf": [ { "type": "object", @@ -5799,14 +5907,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::WAFRegional::Rule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCCidrBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html)" + "Resource Type definition for AWS::WAFRegional::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpccidrblock.json" + "$ref": "resources/aws-wafregional-rule.json" } }, "required": [ @@ -5820,9 +5928,9 @@ ], "additionalProperties": false }, - "AWS_Glue_UsageProfile": { + "AWS_OpsWorks_UserProfile": { "type": "object", - "markdownDescription": "This creates a Resource of UsageProfile type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-usageprofile.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html)", "allOf": [ { "type": "object", @@ -5830,14 +5938,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::UsageProfile" + "AWS::OpsWorks::UserProfile" ], "markdownEnumDescriptions": [ - "This creates a Resource of UsageProfile type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-usageprofile.html)" + "Resource Type definition for AWS::OpsWorks::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-usageprofile.json" + "$ref": "resources/aws-opsworks-userprofile.json" } }, "required": [ @@ -5851,9 +5959,9 @@ ], "additionalProperties": false }, - "AWS_EFS_AccessPoint": { + "AWS_ObservabilityAdmin_TelemetryRule": { "type": "object", - "markdownDescription": "The ``AWS::EFS::AccessPoint`` resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see [Mounting a file system using EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html).\n This operation requires permissions for the ``elasticfilesystem:CreateAccessPoint`` action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html)", + "markdownDescription": "The AWS::ObservabilityAdmin::TelemetryRule resource defines a CloudWatch Observability Admin Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetryrule.html)", "allOf": [ { "type": "object", @@ -5861,14 +5969,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EFS::AccessPoint" + "AWS::ObservabilityAdmin::TelemetryRule" ], "markdownEnumDescriptions": [ - "The ``AWS::EFS::AccessPoint`` resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see [Mounting a file system using EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html).\n This operation requires permissions for the ``elasticfilesystem:CreateAccessPoint`` action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html)" + "The AWS::ObservabilityAdmin::TelemetryRule resource defines a CloudWatch Observability Admin Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetryrule.html)" ] }, "Properties": { - "$ref": "resources/aws-efs-accesspoint.json" + "$ref": "resources/aws-observabilityadmin-telemetryrule.json" } }, "required": [ @@ -5882,9 +5990,9 @@ ], "additionalProperties": false }, - "AWS_SSM_ResourceDataSync": { + "AWS_ServiceCatalog_AcceptedPortfolioShare": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSM::ResourceDataSync \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcedatasync.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html)", "allOf": [ { "type": "object", @@ -5892,14 +6000,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::ResourceDataSync" + "AWS::ServiceCatalog::AcceptedPortfolioShare" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSM::ResourceDataSync \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcedatasync.html)" + "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-resourcedatasync.json" + "$ref": "resources/aws-servicecatalog-acceptedportfolioshare.json" } }, "required": [ @@ -5913,9 +6021,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_StackUserAssociation": { + "AWS_RoboMaker_SimulationApplicationVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::StackUserAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html)", + "markdownDescription": "AWS::RoboMaker::SimulationApplicationVersion resource creates an AWS RoboMaker SimulationApplicationVersion. This helps you control which code your simulation uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html)", "allOf": [ { "type": "object", @@ -5923,14 +6031,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::StackUserAssociation" + "AWS::RoboMaker::SimulationApplicationVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::StackUserAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html)" + "AWS::RoboMaker::SimulationApplicationVersion resource creates an AWS RoboMaker SimulationApplicationVersion. This helps you control which code your simulation uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-stackuserassociation.json" + "$ref": "resources/aws-robomaker-simulationapplicationversion.json" } }, "required": [ @@ -5944,9 +6052,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VerifiedAccessEndpoint": { + "AWS_SES_MailManagerIngressPoint": { "type": "object", - "markdownDescription": "The AWS::EC2::VerifiedAccessEndpoint resource creates an AWS EC2 Verified Access Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerIngressPoint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageringresspoint.html)", "allOf": [ { "type": "object", @@ -5954,14 +6062,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VerifiedAccessEndpoint" + "AWS::SES::MailManagerIngressPoint" ], "markdownEnumDescriptions": [ - "The AWS::EC2::VerifiedAccessEndpoint resource creates an AWS EC2 Verified Access Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html)" + "Definition of AWS::SES::MailManagerIngressPoint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageringresspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-verifiedaccessendpoint.json" + "$ref": "resources/aws-ses-mailmanageringresspoint.json" } }, "required": [ @@ -5975,9 +6083,9 @@ ], "additionalProperties": false }, - "AWS_ConnectCampaignsV2_Campaign": { + "AWS_Pinpoint_SMSChannel": { "type": "object", - "markdownDescription": "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaignsv2-campaign.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::SMSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smschannel.html)", "allOf": [ { "type": "object", @@ -5985,14 +6093,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ConnectCampaignsV2::Campaign" + "AWS::Pinpoint::SMSChannel" ], "markdownEnumDescriptions": [ - "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaignsv2-campaign.html)" + "Resource Type definition for AWS::Pinpoint::SMSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smschannel.html)" ] }, "Properties": { - "$ref": "resources/aws-connectcampaignsv2-campaign.json" + "$ref": "resources/aws-pinpoint-smschannel.json" } }, "required": [ @@ -6006,9 +6114,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_ThreatIntelSet": { + "AWS_PCS_ComputeNodeGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::ThreatIntelSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html)", + "markdownDescription": "AWS::PCS::ComputeNodeGroup resource creates an AWS PCS compute node group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html)", "allOf": [ { "type": "object", @@ -6016,14 +6124,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::ThreatIntelSet" + "AWS::PCS::ComputeNodeGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::ThreatIntelSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html)" + "AWS::PCS::ComputeNodeGroup resource creates an AWS PCS compute node group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-threatintelset.json" + "$ref": "resources/aws-pcs-computenodegroup.json" } }, "required": [ @@ -6037,9 +6145,9 @@ ], "additionalProperties": false }, - "AWS_SSO_ApplicationAssignment": { + "AWS_Personalize_Solution": { "type": "object", - "markdownDescription": "Resource Type definition for SSO application access grant to a user or group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-applicationassignment.html)", + "markdownDescription": "Resource schema for AWS::Personalize::Solution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-solution.html)", "allOf": [ { "type": "object", @@ -6047,14 +6155,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSO::ApplicationAssignment" + "AWS::Personalize::Solution" ], "markdownEnumDescriptions": [ - "Resource Type definition for SSO application access grant to a user or group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-applicationassignment.html)" + "Resource schema for AWS::Personalize::Solution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-solution.html)" ] }, "Properties": { - "$ref": "resources/aws-sso-applicationassignment.json" + "$ref": "resources/aws-personalize-solution.json" } }, "required": [ @@ -6068,9 +6176,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerTrafficPolicy": { + "AWS_QLDB_Stream": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerTrafficPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagertrafficpolicy.html)", + "markdownDescription": "Resource schema for AWS::QLDB::Stream. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html)", "allOf": [ { "type": "object", @@ -6078,14 +6186,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerTrafficPolicy" + "AWS::QLDB::Stream" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerTrafficPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagertrafficpolicy.html)" + "Resource schema for AWS::QLDB::Stream. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanagertrafficpolicy.json" + "$ref": "resources/aws-qldb-stream.json" } }, "required": [ @@ -6099,9 +6207,9 @@ ], "additionalProperties": false }, - "AWS_SecretsManager_SecretTargetAttachment": { + "AWS_SageMaker_MlflowTrackingServer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::MlflowTrackingServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-mlflowtrackingserver.html)", "allOf": [ { "type": "object", @@ -6109,14 +6217,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecretsManager::SecretTargetAttachment" + "AWS::SageMaker::MlflowTrackingServer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html)" + "Resource Type definition for AWS::SageMaker::MlflowTrackingServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-mlflowtrackingserver.html)" ] }, "Properties": { - "$ref": "resources/aws-secretsmanager-secrettargetattachment.json" + "$ref": "resources/aws-sagemaker-mlflowtrackingserver.json" } }, "required": [ @@ -6130,9 +6238,9 @@ ], "additionalProperties": false }, - "AWS_Batch_JobQueue": { + "AWS_Connect_DataTableRecord": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Batch::JobQueue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::DataTableRecord \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-datatablerecord.html)", "allOf": [ { "type": "object", @@ -6140,19 +6248,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Batch::JobQueue" + "AWS::Connect::DataTableRecord" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Batch::JobQueue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html)" + "Resource Type definition for AWS::Connect::DataTableRecord \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-datatablerecord.html)" ] }, "Properties": { - "$ref": "resources/aws-batch-jobqueue.json" + "$ref": "resources/aws-connect-datatablerecord.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6161,9 +6268,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalyticsV2_ApplicationReferenceDataSource": { + "AWS_Lightsail_DatabaseSnapshot": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::DatabaseSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-databasesnapshot.html)", "allOf": [ { "type": "object", @@ -6171,14 +6278,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + "AWS::Lightsail::DatabaseSnapshot" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html)" + "Resource Type definition for AWS::Lightsail::DatabaseSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-databasesnapshot.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalyticsv2-applicationreferencedatasource.json" + "$ref": "resources/aws-lightsail-databasesnapshot.json" } }, "required": [ @@ -6192,9 +6299,9 @@ ], "additionalProperties": false }, - "AWS_SNS_Topic": { + "AWS_GroundStation_MissionProfile": { "type": "object", - "markdownDescription": "The ``AWS::SNS::Topic`` resource creates a topic to which notifications can be published.\n One account can create a maximum of 100,000 standard topics and 1,000 FIFO topics. For more information, see [endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sns.html) in the *General Reference*.\n The structure of ``AUTHPARAMS`` depends on the .signature of the API request. For more information, see [Examples of the complete Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)", + "markdownDescription": "AWS Ground Station Mission Profile resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html)", "allOf": [ { "type": "object", @@ -6202,18 +6309,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SNS::Topic" + "AWS::GroundStation::MissionProfile" ], "markdownEnumDescriptions": [ - "The ``AWS::SNS::Topic`` resource creates a topic to which notifications can be published.\n One account can create a maximum of 100,000 standard topics and 1,000 FIFO topics. For more information, see [endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sns.html) in the *General Reference*.\n The structure of ``AUTHPARAMS`` depends on the .signature of the API request. For more information, see [Examples of the complete Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)" + "AWS Ground Station Mission Profile resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-sns-topic.json" + "$ref": "resources/aws-groundstation-missionprofile.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -6222,9 +6330,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Thing": { + "AWS_SMSVOICE_ConfigurationSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::Thing \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html)", "allOf": [ { "type": "object", @@ -6232,14 +6340,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Thing" + "AWS::SMSVOICE::ConfigurationSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::Thing \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html)" + "Resource Type definition for AWS::SMSVOICE::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-thing.json" + "$ref": "resources/aws-smsvoice-configurationset.json" } }, "required": [ @@ -6252,9 +6360,9 @@ ], "additionalProperties": false }, - "AWS_MemoryDB_ParameterGroup": { + "AWS_Kendra_DataSource": { "type": "object", - "markdownDescription": "The AWS::MemoryDB::ParameterGroup resource creates an Amazon MemoryDB ParameterGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html)", + "markdownDescription": "Kendra DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html)", "allOf": [ { "type": "object", @@ -6262,14 +6370,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MemoryDB::ParameterGroup" + "AWS::Kendra::DataSource" ], "markdownEnumDescriptions": [ - "The AWS::MemoryDB::ParameterGroup resource creates an Amazon MemoryDB ParameterGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html)" + "Kendra DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html)" ] }, "Properties": { - "$ref": "resources/aws-memorydb-parametergroup.json" + "$ref": "resources/aws-kendra-datasource.json" } }, "required": [ @@ -6283,9 +6391,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_Project": { + "AWS_SQS_Queue": { "type": "object", - "markdownDescription": "Amazon DataZone projects are business use case\u2013based groupings of people, assets (data), and tools used to simplify access to the AWS analytics. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-project.html)", + "markdownDescription": "The ``AWS::SQS::Queue`` resource creates an SQS standard or FIFO queue.\n Keep the following caveats in mind:\n + If you don't specify the ``FifoQueue`` property, SQS creates a standard queue.\n You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Developer Guide*. \n + If you don't provide a value for a property, the queue is created with the default value for the property.\n + If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.\n + To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.\n \n For more information about creating FIFO (first-in-first-out) queues, see [Creating an queue ()](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/screate-queue-cloudformation.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html)", "allOf": [ { "type": "object", @@ -6293,19 +6401,18 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::Project" + "AWS::SQS::Queue" ], "markdownEnumDescriptions": [ - "Amazon DataZone projects are business use case\u2013based groupings of people, assets (data), and tools used to simplify access to the AWS analytics. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-project.html)" + "The ``AWS::SQS::Queue`` resource creates an SQS standard or FIFO queue.\n Keep the following caveats in mind:\n + If you don't specify the ``FifoQueue`` property, SQS creates a standard queue.\n You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Developer Guide*. \n + If you don't provide a value for a property, the queue is created with the default value for the property.\n + If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.\n + To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.\n \n For more information about creating FIFO (first-in-first-out) queues, see [Creating an queue ()](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/screate-queue-cloudformation.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-project.json" + "$ref": "resources/aws-sqs-queue.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6314,9 +6421,9 @@ ], "additionalProperties": false }, - "AWS_ECS_Cluster": { + "AWS_IoT_SoftwarePackageVersion": { "type": "object", - "markdownDescription": "The ``AWS::ECS::Cluster`` resource creates an Amazon Elastic Container Service (Amazon ECS) cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html)", + "markdownDescription": "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackageversion.html)", "allOf": [ { "type": "object", @@ -6324,18 +6431,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ECS::Cluster" + "AWS::IoT::SoftwarePackageVersion" ], "markdownEnumDescriptions": [ - "The ``AWS::ECS::Cluster`` resource creates an Amazon Elastic Container Service (Amazon ECS) cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html)" + "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackageversion.html)" ] }, "Properties": { - "$ref": "resources/aws-ecs-cluster.json" + "$ref": "resources/aws-iot-softwarepackageversion.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -6344,9 +6452,9 @@ ], "additionalProperties": false }, - "AWS_RoboMaker_Robot": { + "AWS_IAM_UserPolicy": { "type": "object", - "markdownDescription": "AWS::RoboMaker::Robot resource creates an AWS RoboMaker Robot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html)", + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM user.\n An IAM user can also have a managed policy attached to it. To attach a managed policy to a user, use [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a user, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html)", "allOf": [ { "type": "object", @@ -6354,14 +6462,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RoboMaker::Robot" + "AWS::IAM::UserPolicy" ], "markdownEnumDescriptions": [ - "AWS::RoboMaker::Robot resource creates an AWS RoboMaker Robot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html)" + "Adds or updates an inline policy document that is embedded in the specified IAM user.\n An IAM user can also have a managed policy attached to it. To attach a managed policy to a user, use [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a user, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-robomaker-robot.json" + "$ref": "resources/aws-iam-userpolicy.json" } }, "required": [ @@ -6375,9 +6483,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_Queue": { + "AWS_Lambda_Function": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::Queue Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html)", + "markdownDescription": "The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.\n You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)", "allOf": [ { "type": "object", @@ -6385,14 +6493,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::Queue" + "AWS::Lambda::Function" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::Queue Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html)" + "The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.\n You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-queue.json" + "$ref": "resources/aws-lambda-function.json" } }, "required": [ @@ -6406,9 +6514,9 @@ ], "additionalProperties": false }, - "AWS_EntityResolution_IdNamespace": { + "AWS_MediaPackage_Asset": { "type": "object", - "markdownDescription": "IdNamespace defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html)", + "markdownDescription": "Resource schema for AWS::MediaPackage::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html)", "allOf": [ { "type": "object", @@ -6416,14 +6524,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EntityResolution::IdNamespace" + "AWS::MediaPackage::Asset" ], "markdownEnumDescriptions": [ - "IdNamespace defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html)" + "Resource schema for AWS::MediaPackage::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html)" ] }, "Properties": { - "$ref": "resources/aws-entityresolution-idnamespace.json" + "$ref": "resources/aws-mediapackage-asset.json" } }, "required": [ @@ -6437,9 +6545,9 @@ ], "additionalProperties": false }, - "AWS_Route53_HealthCheck": { + "AWS_Proton_EnvironmentAccountConnection": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53::HealthCheck. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html)", + "markdownDescription": "Resource Schema describing various properties for AWS Proton Environment Account Connections resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmentaccountconnection.html)", "allOf": [ { "type": "object", @@ -6447,19 +6555,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::HealthCheck" + "AWS::Proton::EnvironmentAccountConnection" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53::HealthCheck. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html)" + "Resource Schema describing various properties for AWS Proton Environment Account Connections resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmentaccountconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-healthcheck.json" + "$ref": "resources/aws-proton-environmentaccountconnection.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6468,9 +6575,9 @@ ], "additionalProperties": false }, - "AWS_RoboMaker_SimulationApplicationVersion": { + "AWS_LicenseManager_Grant": { "type": "object", - "markdownDescription": "AWS::RoboMaker::SimulationApplicationVersion resource creates an AWS RoboMaker SimulationApplicationVersion. This helps you control which code your simulation uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html)", "allOf": [ { "type": "object", @@ -6478,19 +6585,18 @@ "Type": { "type": "string", "enum": [ - "AWS::RoboMaker::SimulationApplicationVersion" + "AWS::LicenseManager::Grant" ], "markdownEnumDescriptions": [ - "AWS::RoboMaker::SimulationApplicationVersion resource creates an AWS RoboMaker SimulationApplicationVersion. This helps you control which code your simulation uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html)" ] }, "Properties": { - "$ref": "resources/aws-robomaker-simulationapplicationversion.json" + "$ref": "resources/aws-licensemanager-grant.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6499,9 +6605,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInsightsPath": { + "AWS_Rekognition_Collection": { "type": "object", - "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsPath \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html)", + "markdownDescription": "The AWS::Rekognition::Collection type creates an Amazon Rekognition Collection. A collection is a logical grouping of information about detected faces which can later be referenced for searches on the group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-collection.html)", "allOf": [ { "type": "object", @@ -6509,14 +6615,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInsightsPath" + "AWS::Rekognition::Collection" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EC2::NetworkInsightsPath \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html)" + "The AWS::Rekognition::Collection type creates an Amazon Rekognition Collection. A collection is a logical grouping of information about detected faces which can later be referenced for searches on the group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-collection.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinsightspath.json" + "$ref": "resources/aws-rekognition-collection.json" } }, "required": [ @@ -6530,9 +6636,9 @@ ], "additionalProperties": false }, - "AWS_ResourceExplorer2_Index": { + "AWS_ApiGatewayV2_IntegrationResponse": { "type": "object", - "markdownDescription": "Definition of AWS::ResourceExplorer2::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-index.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::IntegrationResponse`` resource updates an integration response for an WebSocket API. For more information, see [Set up WebSocket API Integration Responses in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html)", "allOf": [ { "type": "object", @@ -6540,14 +6646,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ResourceExplorer2::Index" + "AWS::ApiGatewayV2::IntegrationResponse" ], "markdownEnumDescriptions": [ - "Definition of AWS::ResourceExplorer2::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-index.html)" + "The ``AWS::ApiGatewayV2::IntegrationResponse`` resource updates an integration response for an WebSocket API. For more information, see [Set up WebSocket API Integration Responses in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html)" ] }, "Properties": { - "$ref": "resources/aws-resourceexplorer2-index.json" + "$ref": "resources/aws-apigatewayv2-integrationresponse.json" } }, "required": [ @@ -6561,9 +6667,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_Permission": { + "AWS_EFS_MountTarget": { "type": "object", - "markdownDescription": "The ``AWS::Lambda::Permission`` resource grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function.\n To grant permission to another account, specify the account ID as the ``Principal``. To grant permission to an organization defined in AOlong, specify the organization ID as the ``PrincipalOrgID``. For AWS services, the principal is a domain-style identifier defined by the service, like ``s3.amazonaws.com`` or ``sns.amazonaws.com``. For AWS services, you can also specify the ARN of the associated resource as the ``SourceArn``. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.\n If your function has a function URL, you can specify the ``FunctionUrlAuthType`` parameter. This adds a condition to your permission that only applies when your function URL's ``AuthType`` matches the specified ``FunctionUrlAuthType``. For more information about the ``AuthType`` parameter, see [Security and auth model for function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).\n This resource adds a statement to a resource-based permission policy for the function. For more information about function policies, see [Lambda Function Policies](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)", + "markdownDescription": "The ``AWS::EFS::MountTarget`` resource is an Amazon EFS resource that creates a mount target for an EFS file system. You can then mount the file system on Amazon EC2 instances or other resources by using the mount target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)", "allOf": [ { "type": "object", @@ -6571,14 +6677,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::Permission" + "AWS::EFS::MountTarget" ], "markdownEnumDescriptions": [ - "The ``AWS::Lambda::Permission`` resource grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function.\n To grant permission to another account, specify the account ID as the ``Principal``. To grant permission to an organization defined in AOlong, specify the organization ID as the ``PrincipalOrgID``. For AWS services, the principal is a domain-style identifier defined by the service, like ``s3.amazonaws.com`` or ``sns.amazonaws.com``. For AWS services, you can also specify the ARN of the associated resource as the ``SourceArn``. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.\n If your function has a function URL, you can specify the ``FunctionUrlAuthType`` parameter. This adds a condition to your permission that only applies when your function URL's ``AuthType`` matches the specified ``FunctionUrlAuthType``. For more information about the ``AuthType`` parameter, see [Security and auth model for function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).\n This resource adds a statement to a resource-based permission policy for the function. For more information about function policies, see [Lambda Function Policies](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)" + "The ``AWS::EFS::MountTarget`` resource is an Amazon EFS resource that creates a mount target for an EFS file system. You can then mount the file system on Amazon EC2 instances or other resources by using the mount target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-permission.json" + "$ref": "resources/aws-efs-mounttarget.json" } }, "required": [ @@ -6592,9 +6698,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_SecurityConfig": { + "AWS_ElasticLoadBalancingV2_TrustStore": { "type": "object", - "markdownDescription": "Amazon OpenSearchServerless security config resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securityconfig.html)", + "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststore.html)", "allOf": [ { "type": "object", @@ -6602,14 +6708,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::SecurityConfig" + "AWS::ElasticLoadBalancingV2::TrustStore" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchServerless security config resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securityconfig.html)" + "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststore.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-securityconfig.json" + "$ref": "resources/aws-elasticloadbalancingv2-truststore.json" } }, "required": [ @@ -6622,9 +6728,9 @@ ], "additionalProperties": false }, - "AWS_Route53_RecordSetGroup": { + "AWS_AppFlow_Connector": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53::RecordSetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html)", + "markdownDescription": "Resource schema for AWS::AppFlow::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html)", "allOf": [ { "type": "object", @@ -6632,18 +6738,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::RecordSetGroup" + "AWS::AppFlow::Connector" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53::RecordSetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html)" + "Resource schema for AWS::AppFlow::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-recordsetgroup.json" + "$ref": "resources/aws-appflow-connector.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -6652,9 +6759,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_DataSource": { + "AWS_Neptune_DBCluster": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-datasource.html)", + "markdownDescription": "The AWS::Neptune::DBCluster resource creates an Amazon Neptune DB cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html)", "allOf": [ { "type": "object", @@ -6662,19 +6769,18 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::DataSource" + "AWS::Neptune::DBCluster" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-datasource.html)" + "The AWS::Neptune::DBCluster resource creates an Amazon Neptune DB cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-datasource.json" + "$ref": "resources/aws-neptune-dbcluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6683,9 +6789,9 @@ ], "additionalProperties": false }, - "AWS_Oam_Sink": { + "AWS_GameLift_MatchmakingRuleSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Oam::Sink \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)", + "markdownDescription": "The AWS::GameLift::MatchmakingRuleSet resource creates an Amazon GameLift (GameLift) matchmaking rule set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html)", "allOf": [ { "type": "object", @@ -6693,14 +6799,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Oam::Sink" + "AWS::GameLift::MatchmakingRuleSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Oam::Sink \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)" + "The AWS::GameLift::MatchmakingRuleSet resource creates an Amazon GameLift (GameLift) matchmaking rule set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html)" ] }, "Properties": { - "$ref": "resources/aws-oam-sink.json" + "$ref": "resources/aws-gamelift-matchmakingruleset.json" } }, "required": [ @@ -6714,9 +6820,9 @@ ], "additionalProperties": false }, - "AWS_Logs_LogGroup": { + "AWS_IoTSiteWise_Asset": { "type": "object", - "markdownDescription": "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html)", "allOf": [ { "type": "object", @@ -6724,18 +6830,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::LogGroup" + "AWS::IoTSiteWise::Asset" ], "markdownEnumDescriptions": [ - "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)" + "Resource schema for AWS::IoTSiteWise::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-loggroup.json" + "$ref": "resources/aws-iotsitewise-asset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -6744,9 +6851,9 @@ ], "additionalProperties": false }, - "AWS_DMS_DataProvider": { + "AWS_AppConfig_Extension": { "type": "object", - "markdownDescription": "Resource schema for AWS::DMS::DataProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html)", + "markdownDescription": "Resource Type definition for AWS::AppConfig::Extension \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html)", "allOf": [ { "type": "object", @@ -6754,14 +6861,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::DataProvider" + "AWS::AppConfig::Extension" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DMS::DataProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html)" + "Resource Type definition for AWS::AppConfig::Extension \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-dataprovider.json" + "$ref": "resources/aws-appconfig-extension.json" } }, "required": [ @@ -6775,9 +6882,9 @@ ], "additionalProperties": false }, - "AWS_StepFunctions_Activity": { + "AWS_Deadline_QueueEnvironment": { "type": "object", - "markdownDescription": "Resource schema for Activity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::QueueEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html)", "allOf": [ { "type": "object", @@ -6785,14 +6892,14 @@ "Type": { "type": "string", "enum": [ - "AWS::StepFunctions::Activity" + "AWS::Deadline::QueueEnvironment" ], "markdownEnumDescriptions": [ - "Resource schema for Activity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html)" + "Resource Type definition for AWS::Deadline::QueueEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html)" ] }, "Properties": { - "$ref": "resources/aws-stepfunctions-activity.json" + "$ref": "resources/aws-deadline-queueenvironment.json" } }, "required": [ @@ -6806,9 +6913,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_MeteredProduct": { + "AWS_SES_MailManagerAddonSubscription": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::MeteredProduct Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerAddonSubscription Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddonsubscription.html)", "allOf": [ { "type": "object", @@ -6816,18 +6923,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::MeteredProduct" + "AWS::SES::MailManagerAddonSubscription" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::MeteredProduct Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html)" + "Definition of AWS::SES::MailManagerAddonSubscription Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddonsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-meteredproduct.json" + "$ref": "resources/aws-ses-mailmanageraddonsubscription.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -6836,9 +6944,9 @@ ], "additionalProperties": false }, - "AWS_Logs_Integration": { + "AWS_CloudTrail_Trail": { "type": "object", - "markdownDescription": "Resource Schema for Logs Integration Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-integration.html)", + "markdownDescription": "Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. A maximum of five trails can exist in a region, irrespective of the region in which they were created. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html)", "allOf": [ { "type": "object", @@ -6846,14 +6954,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::Integration" + "AWS::CloudTrail::Trail" ], "markdownEnumDescriptions": [ - "Resource Schema for Logs Integration Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-integration.html)" + "Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. A maximum of five trails can exist in a region, irrespective of the region in which they were created. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-integration.json" + "$ref": "resources/aws-cloudtrail-trail.json" } }, "required": [ @@ -6867,9 +6975,9 @@ ], "additionalProperties": false }, - "AWS_PaymentCryptography_Alias": { + "AWS_CloudFormation_Publisher": { "type": "object", - "markdownDescription": "Definition of AWS::PaymentCryptography::Alias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html)", + "markdownDescription": "Register as a publisher in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html)", "allOf": [ { "type": "object", @@ -6877,14 +6985,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PaymentCryptography::Alias" + "AWS::CloudFormation::Publisher" ], "markdownEnumDescriptions": [ - "Definition of AWS::PaymentCryptography::Alias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html)" + "Register as a publisher in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html)" ] }, "Properties": { - "$ref": "resources/aws-paymentcryptography-alias.json" + "$ref": "resources/aws-cloudformation-publisher.json" } }, "required": [ @@ -6898,9 +7006,9 @@ ], "additionalProperties": false }, - "AWS_IoT_PolicyPrincipalAttachment": { + "AWS_ApiGateway_RestApi": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html)", + "markdownDescription": "The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)", "allOf": [ { "type": "object", @@ -6908,19 +7016,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::ApiGateway::RestApi" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html)" + "The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-policyprincipalattachment.json" + "$ref": "resources/aws-apigateway-restapi.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6929,9 +7036,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_TransitGatewayRegistration": { + "AWS_Proton_EnvironmentTemplate": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::TransitGatewayRegistration type registers a transit gateway in your global network. The transit gateway can be in any AWS Region, but it must be owned by the same AWS account that owns the global network. You cannot register a transit gateway in more than one global network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html)", + "markdownDescription": "Definition of AWS::Proton::EnvironmentTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmenttemplate.html)", "allOf": [ { "type": "object", @@ -6939,19 +7046,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::TransitGatewayRegistration" + "AWS::Proton::EnvironmentTemplate" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::TransitGatewayRegistration type registers a transit gateway in your global network. The transit gateway can be in any AWS Region, but it must be owned by the same AWS account that owns the global network. You cannot register a transit gateway in more than one global network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html)" + "Definition of AWS::Proton::EnvironmentTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmenttemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-transitgatewayregistration.json" + "$ref": "resources/aws-proton-environmenttemplate.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -6960,9 +7066,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_NotebookInstanceLifecycleConfig": { + "AWS_FraudDetector_Variable": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::NotebookInstanceLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstancelifecycleconfig.html)", + "markdownDescription": "A resource schema for a Variable in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html)", "allOf": [ { "type": "object", @@ -6970,18 +7076,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::NotebookInstanceLifecycleConfig" + "AWS::FraudDetector::Variable" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::NotebookInstanceLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstancelifecycleconfig.html)" + "A resource schema for a Variable in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-notebookinstancelifecycleconfig.json" + "$ref": "resources/aws-frauddetector-variable.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -6990,9 +7097,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Model": { + "AWS_Bedrock_FlowVersion": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::Model`` resource updates data model for a WebSocket API. For more information, see [Model Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html)", + "markdownDescription": "Definition of AWS::Bedrock::FlowVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowversion.html)", "allOf": [ { "type": "object", @@ -7000,14 +7107,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Model" + "AWS::Bedrock::FlowVersion" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::Model`` resource updates data model for a WebSocket API. For more information, see [Model Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html)" + "Definition of AWS::Bedrock::FlowVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowversion.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-model.json" + "$ref": "resources/aws-bedrock-flowversion.json" } }, "required": [ @@ -7021,9 +7128,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCPeeringConnection": { + "AWS_AppMesh_VirtualNode": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCPeeringConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualNode \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html)", "allOf": [ { "type": "object", @@ -7031,14 +7138,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::AppMesh::VirtualNode" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCPeeringConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html)" + "Resource Type definition for AWS::AppMesh::VirtualNode \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcpeeringconnection.json" + "$ref": "resources/aws-appmesh-virtualnode.json" } }, "required": [ @@ -7052,9 +7159,9 @@ ], "additionalProperties": false }, - "AWS_SDB_Domain": { + "AWS_ElastiCache_CacheCluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SDB::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sdb-domain.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::CacheCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-cachecluster.html)", "allOf": [ { "type": "object", @@ -7062,18 +7169,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SDB::Domain" + "AWS::ElastiCache::CacheCluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SDB::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sdb-domain.html)" + "Resource Type definition for AWS::ElastiCache::CacheCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-cachecluster.html)" ] }, "Properties": { - "$ref": "resources/aws-sdb-domain.json" + "$ref": "resources/aws-elasticache-cachecluster.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -7082,9 +7190,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_ServiceNetworkServiceAssociation": { + "AWS_IoT_MitigationAction": { "type": "object", - "markdownDescription": "Associates a service with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkserviceassociation.html)", + "markdownDescription": "Mitigation actions can be used to take actions to mitigate issues that were found in an Audit finding or Detect violation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html)", "allOf": [ { "type": "object", @@ -7092,18 +7200,19 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::ServiceNetworkServiceAssociation" + "AWS::IoT::MitigationAction" ], "markdownEnumDescriptions": [ - "Associates a service with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkserviceassociation.html)" + "Mitigation actions can be used to take actions to mitigate issues that were found in an Audit finding or Detect violation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-servicenetworkserviceassociation.json" + "$ref": "resources/aws-iot-mitigationaction.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -7143,9 +7252,9 @@ ], "additionalProperties": false }, - "AWS_S3Outposts_BucketPolicy": { + "AWS_MediaConnect_BridgeOutput": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::S3Outposts::BucketPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::BridgeOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgeoutput.html)", "allOf": [ { "type": "object", @@ -7153,14 +7262,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Outposts::BucketPolicy" + "AWS::MediaConnect::BridgeOutput" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::S3Outposts::BucketPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html)" + "Resource schema for AWS::MediaConnect::BridgeOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgeoutput.html)" ] }, "Properties": { - "$ref": "resources/aws-s3outposts-bucketpolicy.json" + "$ref": "resources/aws-mediaconnect-bridgeoutput.json" } }, "required": [ @@ -7174,9 +7283,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_ManagedNotificationAdditionalChannelAssociation": { + "AWS_ObservabilityAdmin_OrganizationCentralizationRule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Notifications::ManagedNotificationAdditionalChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationadditionalchannelassociation.html)", + "markdownDescription": "Resource schema for AWS:ObservabilityAdmin:OrganizationCentralizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationcentralizationrule.html)", "allOf": [ { "type": "object", @@ -7184,14 +7293,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::ManagedNotificationAdditionalChannelAssociation" + "AWS::ObservabilityAdmin::OrganizationCentralizationRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Notifications::ManagedNotificationAdditionalChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationadditionalchannelassociation.html)" + "Resource schema for AWS:ObservabilityAdmin:OrganizationCentralizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationcentralizationrule.html)" ] }, "Properties": { - "$ref": "resources/aws-notifications-managednotificationadditionalchannelassociation.json" + "$ref": "resources/aws-observabilityadmin-organizationcentralizationrule.json" } }, "required": [ @@ -7205,9 +7314,9 @@ ], "additionalProperties": false }, - "AWS_ConnectCampaigns_Campaign": { + "AWS_IoTFleetWise_SignalCatalog": { "type": "object", - "markdownDescription": "Definition of AWS::ConnectCampaigns::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaigns-campaign.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::SignalCatalog Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-signalcatalog.html)", "allOf": [ { "type": "object", @@ -7215,19 +7324,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ConnectCampaigns::Campaign" + "AWS::IoTFleetWise::SignalCatalog" ], "markdownEnumDescriptions": [ - "Definition of AWS::ConnectCampaigns::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaigns-campaign.html)" + "Definition of AWS::IoTFleetWise::SignalCatalog Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-signalcatalog.html)" ] }, "Properties": { - "$ref": "resources/aws-connectcampaigns-campaign.json" + "$ref": "resources/aws-iotfleetwise-signalcatalog.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7236,9 +7344,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_Collaboration": { + "AWS_IoTTwinMaker_Scene": { "type": "object", - "markdownDescription": "Represents a collaboration between AWS accounts that allows for secure data collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html)", + "markdownDescription": "Resource schema for AWS::IoTTwinMaker::Scene \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-scene.html)", "allOf": [ { "type": "object", @@ -7246,14 +7354,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::Collaboration" + "AWS::IoTTwinMaker::Scene" ], "markdownEnumDescriptions": [ - "Represents a collaboration between AWS accounts that allows for secure data collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html)" + "Resource schema for AWS::IoTTwinMaker::Scene \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-scene.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-collaboration.json" + "$ref": "resources/aws-iottwinmaker-scene.json" } }, "required": [ @@ -7267,9 +7375,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_ClusterSubnetGroup": { + "AWS_MediaLive_Multiplexprogram": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup. Specifies an Amazon Redshift subnet group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html)", + "markdownDescription": "Resource schema for AWS::MediaLive::Multiplexprogram \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplexprogram.html)", "allOf": [ { "type": "object", @@ -7277,19 +7385,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::MediaLive::Multiplexprogram" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Redshift::ClusterSubnetGroup. Specifies an Amazon Redshift subnet group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html)" + "Resource schema for AWS::MediaLive::Multiplexprogram \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplexprogram.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-clustersubnetgroup.json" + "$ref": "resources/aws-medialive-multiplexprogram.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7298,9 +7405,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerAddressList": { + "AWS_DevOpsAgent_Service": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerAddressList Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddresslist.html)", + "markdownDescription": "The AWS::DevOpsAgent::Service resource registers external services (like Dynatrace, MCP servers, GitLab) for integration with DevOpsAgent. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-service.html)", "allOf": [ { "type": "object", @@ -7308,18 +7415,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerAddressList" + "AWS::DevOpsAgent::Service" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerAddressList Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddresslist.html)" + "The AWS::DevOpsAgent::Service resource registers external services (like Dynatrace, MCP servers, GitLab) for integration with DevOpsAgent. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-service.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanageraddresslist.json" + "$ref": "resources/aws-devopsagent-service.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -7328,9 +7436,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Disk": { + "AWS_CloudFront_ConnectionFunction": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Disk \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html)", + "markdownDescription": "A connection function. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectionfunction.html)", "allOf": [ { "type": "object", @@ -7338,14 +7446,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Disk" + "AWS::CloudFront::ConnectionFunction" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Disk \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html)" + "A connection function. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectionfunction.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-disk.json" + "$ref": "resources/aws-cloudfront-connectionfunction.json" } }, "required": [ @@ -7359,9 +7467,9 @@ ], "additionalProperties": false }, - "AWS_FSx_DataRepositoryAssociation": { + "AWS_Connect_Notification": { "type": "object", - "markdownDescription": "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). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::Notification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-notification.html)", "allOf": [ { "type": "object", @@ -7369,14 +7477,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FSx::DataRepositoryAssociation" + "AWS::Connect::Notification" ], "markdownEnumDescriptions": [ - "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). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html)" + "Resource Type definition for AWS::Connect::Notification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-notification.html)" ] }, "Properties": { - "$ref": "resources/aws-fsx-datarepositoryassociation.json" + "$ref": "resources/aws-connect-notification.json" } }, "required": [ @@ -7390,9 +7498,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_MatchmakingConfiguration": { + "AWS_EC2_Instance": { "type": "object", - "markdownDescription": "The AWS::GameLift::MatchmakingConfiguration resource creates an Amazon GameLift (GameLift) matchmaking configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html)", "allOf": [ { "type": "object", @@ -7400,19 +7508,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::MatchmakingConfiguration" + "AWS::EC2::Instance" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::MatchmakingConfiguration resource creates an Amazon GameLift (GameLift) matchmaking configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html)" + "Resource Type definition for AWS::EC2::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-matchmakingconfiguration.json" + "$ref": "resources/aws-ec2-instance.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7421,9 +7528,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_Retriever": { + "AWS_Bedrock_FlowAlias": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::Retriever Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-retriever.html)", + "markdownDescription": "Definition of AWS::Bedrock::FlowAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowalias.html)", "allOf": [ { "type": "object", @@ -7431,14 +7538,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::Retriever" + "AWS::Bedrock::FlowAlias" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::Retriever Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-retriever.html)" + "Definition of AWS::Bedrock::FlowAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowalias.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-retriever.json" + "$ref": "resources/aws-bedrock-flowalias.json" } }, "required": [ @@ -7452,9 +7559,9 @@ ], "additionalProperties": false }, - "AWS_CodeDeploy_DeploymentConfig": { + "AWS_EC2_FlowLog": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html)", + "markdownDescription": "Specifies a VPC flow log, which enables you to capture IP traffic for a specific network interface, subnet, or VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html)", "allOf": [ { "type": "object", @@ -7462,18 +7569,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeDeploy::DeploymentConfig" + "AWS::EC2::FlowLog" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeDeploy::DeploymentConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html)" + "Specifies a VPC flow log, which enables you to capture IP traffic for a specific network interface, subnet, or VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html)" ] }, "Properties": { - "$ref": "resources/aws-codedeploy-deploymentconfig.json" + "$ref": "resources/aws-ec2-flowlog.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -7482,9 +7590,9 @@ ], "additionalProperties": false }, - "AWS_EC2_DHCPOptions": { + "AWS_DMS_Endpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::DHCPOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html)", + "markdownDescription": "Resource Type definition for AWS::DMS::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html)", "allOf": [ { "type": "object", @@ -7492,18 +7600,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::DHCPOptions" + "AWS::DMS::Endpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::DHCPOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html)" + "Resource Type definition for AWS::DMS::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-dhcpoptions.json" + "$ref": "resources/aws-dms-endpoint.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -7512,9 +7621,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_PublishingDestination": { + "AWS_ServiceDiscovery_PublicDnsNamespace": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::PublishingDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-publishingdestination.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::PublicDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html)", "allOf": [ { "type": "object", @@ -7522,14 +7631,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::PublishingDestination" + "AWS::ServiceDiscovery::PublicDnsNamespace" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::PublishingDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-publishingdestination.html)" + "Resource Type definition for AWS::ServiceDiscovery::PublicDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-publishingdestination.json" + "$ref": "resources/aws-servicediscovery-publicdnsnamespace.json" } }, "required": [ @@ -7543,9 +7652,9 @@ ], "additionalProperties": false }, - "AWS_Scheduler_Schedule": { + "AWS_ElastiCache_GlobalReplicationGroup": { "type": "object", - "markdownDescription": "Definition of AWS::Scheduler::Schedule Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html)", + "markdownDescription": "The AWS::ElastiCache::GlobalReplicationGroup resource creates an Amazon ElastiCache Global Replication Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html)", "allOf": [ { "type": "object", @@ -7553,14 +7662,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Scheduler::Schedule" + "AWS::ElastiCache::GlobalReplicationGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::Scheduler::Schedule Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html)" + "The AWS::ElastiCache::GlobalReplicationGroup resource creates an Amazon ElastiCache Global Replication Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-scheduler-schedule.json" + "$ref": "resources/aws-elasticache-globalreplicationgroup.json" } }, "required": [ @@ -7574,9 +7683,9 @@ ], "additionalProperties": false }, - "AWS_WAF_IPSet": { + "AWS_IoT_SecurityProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html)", + "markdownDescription": "A security profile defines a set of expected behaviors for devices in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html)", "allOf": [ { "type": "object", @@ -7584,19 +7693,18 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::IPSet" + "AWS::IoT::SecurityProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html)" + "A security profile defines a set of expected behaviors for devices in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-ipset.json" + "$ref": "resources/aws-iot-securityprofile.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7605,9 +7713,9 @@ ], "additionalProperties": false }, - "AWS_EC2_ClientVpnRoute": { + "AWS_ODB_CloudVmCluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html)", + "markdownDescription": "The AWS::ODB::CloudVmCluster resource creates a Cloud VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudvmcluster.html)", "allOf": [ { "type": "object", @@ -7615,19 +7723,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::ClientVpnRoute" + "AWS::ODB::CloudVmCluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::ClientVpnRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html)" + "The AWS::ODB::CloudVmCluster resource creates a Cloud VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudvmcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-clientvpnroute.json" + "$ref": "resources/aws-odb-cloudvmcluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7636,9 +7743,9 @@ ], "additionalProperties": false }, - "AWS_InspectorV2_CodeSecurityScanConfiguration": { + "AWS_DMS_InstanceProfile": { "type": "object", - "markdownDescription": "Inspector CodeSecurityScanConfiguration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityscanconfiguration.html)", + "markdownDescription": "Resource schema for AWS::DMS::InstanceProfile. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html)", "allOf": [ { "type": "object", @@ -7646,14 +7753,14 @@ "Type": { "type": "string", "enum": [ - "AWS::InspectorV2::CodeSecurityScanConfiguration" + "AWS::DMS::InstanceProfile" ], "markdownEnumDescriptions": [ - "Inspector CodeSecurityScanConfiguration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityscanconfiguration.html)" + "Resource schema for AWS::DMS::InstanceProfile. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-inspectorv2-codesecurityscanconfiguration.json" + "$ref": "resources/aws-dms-instanceprofile.json" } }, "required": [ @@ -7666,9 +7773,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_WebACL": { + "AWS_EC2_PlacementGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::PlacementGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html)", "allOf": [ { "type": "object", @@ -7676,19 +7783,18 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::WebACL" + "AWS::EC2::PlacementGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html)" + "Resource Type definition for AWS::EC2::PlacementGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-webacl.json" + "$ref": "resources/aws-ec2-placementgroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7697,9 +7803,9 @@ ], "additionalProperties": false }, - "AWS_Athena_NamedQuery": { + "AWS_IoTSiteWise_Portal": { "type": "object", - "markdownDescription": "Resource schema for AWS::Athena::NamedQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::Portal \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html)", "allOf": [ { "type": "object", @@ -7707,14 +7813,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Athena::NamedQuery" + "AWS::IoTSiteWise::Portal" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Athena::NamedQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html)" + "Resource schema for AWS::IoTSiteWise::Portal \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html)" ] }, "Properties": { - "$ref": "resources/aws-athena-namedquery.json" + "$ref": "resources/aws-iotsitewise-portal.json" } }, "required": [ @@ -7728,9 +7834,9 @@ ], "additionalProperties": false }, - "AWS_AppRunner_Service": { + "AWS_S3_AccessGrant": { "type": "object", - "markdownDescription": "The AWS::AppRunner::Service resource specifies an AppRunner Service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html)", + "markdownDescription": "The AWS::S3::AccessGrant resource is an Amazon S3 resource type representing permissions to a specific S3 bucket or prefix hosted in an S3 Access Grants instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrant.html)", "allOf": [ { "type": "object", @@ -7738,14 +7844,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppRunner::Service" + "AWS::S3::AccessGrant" ], "markdownEnumDescriptions": [ - "The AWS::AppRunner::Service resource specifies an AppRunner Service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html)" + "The AWS::S3::AccessGrant resource is an Amazon S3 resource type representing permissions to a specific S3 bucket or prefix hosted in an S3 Access Grants instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrant.html)" ] }, "Properties": { - "$ref": "resources/aws-apprunner-service.json" + "$ref": "resources/aws-s3-accessgrant.json" } }, "required": [ @@ -7759,9 +7865,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_ApiCache": { + "AWS_DevOpsGuru_ResourceCollection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::ApiCache \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)", + "markdownDescription": "This resource schema represents the ResourceCollection resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html)", "allOf": [ { "type": "object", @@ -7769,14 +7875,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::ApiCache" + "AWS::DevOpsGuru::ResourceCollection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::ApiCache \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)" + "This resource schema represents the ResourceCollection resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-apicache.json" + "$ref": "resources/aws-devopsguru-resourcecollection.json" } }, "required": [ @@ -7790,9 +7896,9 @@ ], "additionalProperties": false }, - "AWS_ObservabilityAdmin_OrganizationTelemetryRule": { + "AWS_SageMaker_DataQualityJobDefinition": { "type": "object", - "markdownDescription": "The AWS::ObservabilityAdmin::OrganizationTelemetryRule resource defines a CloudWatch Observability Admin Organization Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationtelemetryrule.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::DataQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-dataqualityjobdefinition.html)", "allOf": [ { "type": "object", @@ -7800,14 +7906,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ObservabilityAdmin::OrganizationTelemetryRule" + "AWS::SageMaker::DataQualityJobDefinition" ], "markdownEnumDescriptions": [ - "The AWS::ObservabilityAdmin::OrganizationTelemetryRule resource defines a CloudWatch Observability Admin Organization Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationtelemetryrule.html)" + "Resource Type definition for AWS::SageMaker::DataQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-dataqualityjobdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-observabilityadmin-organizationtelemetryrule.json" + "$ref": "resources/aws-sagemaker-dataqualityjobdefinition.json" } }, "required": [ @@ -7821,9 +7927,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_IdentityPool": { + "AWS_IoT_Certificate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::IdentityPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html)", + "markdownDescription": "Use the AWS::IoT::Certificate resource to declare an AWS IoT X.509 certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html)", "allOf": [ { "type": "object", @@ -7831,14 +7937,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::IdentityPool" + "AWS::IoT::Certificate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::IdentityPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html)" + "Use the AWS::IoT::Certificate resource to declare an AWS IoT X.509 certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-identitypool.json" + "$ref": "resources/aws-iot-certificate.json" } }, "required": [ @@ -7852,9 +7958,9 @@ ], "additionalProperties": false }, - "AWS_EC2_KeyPair": { + "AWS_ApiGateway_Authorizer": { "type": "object", - "markdownDescription": "Specifies a key pair for use with an EC2long instance as follows:\n + To import an existing key pair, include the ``PublicKeyMaterial`` property.\n + To create a new key pair, omit the ``PublicKeyMaterial`` property.\n \n When you import an existing key pair, you specify the public key material for the key. We assume that you have the private key material for the key. CFNlong does not create or return the private key material when you import a key pair.\n When you create a new key pair, the private key is saved to SYSlong Parameter Store, using a parameter with the following name: ``/ec2/keypair/{key_pair_id}``. For more information about retrieving private key, and the required permissions, see [Create a key pair using](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#create-key-pair-cloudformation) in the *User Guide*.\n When CFN deletes a key pair that was created or imported by a stack, it also deletes the parameter that was used to store the private key material in Parameter Store. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html)", + "markdownDescription": "The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that API Gateway activates for methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html)", "allOf": [ { "type": "object", @@ -7862,14 +7968,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::KeyPair" + "AWS::ApiGateway::Authorizer" ], "markdownEnumDescriptions": [ - "Specifies a key pair for use with an EC2long instance as follows:\n + To import an existing key pair, include the ``PublicKeyMaterial`` property.\n + To create a new key pair, omit the ``PublicKeyMaterial`` property.\n \n When you import an existing key pair, you specify the public key material for the key. We assume that you have the private key material for the key. CFNlong does not create or return the private key material when you import a key pair.\n When you create a new key pair, the private key is saved to SYSlong Parameter Store, using a parameter with the following name: ``/ec2/keypair/{key_pair_id}``. For more information about retrieving private key, and the required permissions, see [Create a key pair using](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#create-key-pair-cloudformation) in the *User Guide*.\n When CFN deletes a key pair that was created or imported by a stack, it also deletes the parameter that was used to store the private key material in Parameter Store. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html)" + "The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that API Gateway activates for methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-keypair.json" + "$ref": "resources/aws-apigateway-authorizer.json" } }, "required": [ @@ -7883,9 +7989,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorAD_DirectoryRegistration": { + "AWS_SSO_Assignment": { "type": "object", - "markdownDescription": "Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-directoryregistration.html)", + "markdownDescription": "Resource Type definition for SSO assignmet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-assignment.html)", "allOf": [ { "type": "object", @@ -7893,14 +7999,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorAD::DirectoryRegistration" + "AWS::SSO::Assignment" ], "markdownEnumDescriptions": [ - "Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-directoryregistration.html)" + "Resource Type definition for SSO assignmet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-assignment.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorad-directoryregistration.json" + "$ref": "resources/aws-sso-assignment.json" } }, "required": [ @@ -7914,9 +8020,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_BasePathMappingV2": { + "AWS_FIS_TargetAccountConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApiGateway::BasePathMappingV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmappingv2.html)", + "markdownDescription": "Resource schema for AWS::FIS::TargetAccountConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-targetaccountconfiguration.html)", "allOf": [ { "type": "object", @@ -7924,14 +8030,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::BasePathMappingV2" + "AWS::FIS::TargetAccountConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApiGateway::BasePathMappingV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmappingv2.html)" + "Resource schema for AWS::FIS::TargetAccountConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-targetaccountconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-basepathmappingv2.json" + "$ref": "resources/aws-fis-targetaccountconfiguration.json" } }, "required": [ @@ -7945,9 +8051,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_PartnerApp": { + "AWS_SMSVOICE_ProtectConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::PartnerApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-partnerapp.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::ProtectConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html)", "allOf": [ { "type": "object", @@ -7955,19 +8061,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::PartnerApp" + "AWS::SMSVOICE::ProtectConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::PartnerApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-partnerapp.html)" + "Resource Type definition for AWS::SMSVOICE::ProtectConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-partnerapp.json" + "$ref": "resources/aws-smsvoice-protectconfiguration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -7976,9 +8081,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayRouteTablePropagation": { + "AWS_ElastiCache_User": { "type": "object", - "markdownDescription": "AWS::EC2::TransitGatewayRouteTablePropagation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html)", "allOf": [ { "type": "object", @@ -7986,14 +8091,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::ElastiCache::User" ], "markdownEnumDescriptions": [ - "AWS::EC2::TransitGatewayRouteTablePropagation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html)" + "Resource Type definition for AWS::ElastiCache::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayroutetablepropagation.json" + "$ref": "resources/aws-elasticache-user.json" } }, "required": [ @@ -8007,9 +8112,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_DocumentationPart": { + "AWS_WorkSpacesWeb_UserSettings": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::DocumentationPart`` resource creates a documentation part for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::UserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html)", "allOf": [ { "type": "object", @@ -8017,14 +8122,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::DocumentationPart" + "AWS::WorkSpacesWeb::UserSettings" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::DocumentationPart`` resource creates a documentation part for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html)" + "Definition of AWS::WorkSpacesWeb::UserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-documentationpart.json" + "$ref": "resources/aws-workspacesweb-usersettings.json" } }, "required": [ @@ -8038,9 +8143,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_Bridge": { + "AWS_IoTWireless_WirelessDevice": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::Bridge \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridge.html)", + "markdownDescription": "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html)", "allOf": [ { "type": "object", @@ -8048,14 +8153,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::Bridge" + "AWS::IoTWireless::WirelessDevice" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::Bridge \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridge.html)" + "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-bridge.json" + "$ref": "resources/aws-iotwireless-wirelessdevice.json" } }, "required": [ @@ -8069,9 +8174,9 @@ ], "additionalProperties": false }, - "AWS_DataBrew_Ruleset": { + "AWS_AppStream_Stack": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataBrew::Ruleset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html)", "allOf": [ { "type": "object", @@ -8079,19 +8184,18 @@ "Type": { "type": "string", "enum": [ - "AWS::DataBrew::Ruleset" + "AWS::AppStream::Stack" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataBrew::Ruleset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html)" + "Resource Type definition for AWS::AppStream::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html)" ] }, "Properties": { - "$ref": "resources/aws-databrew-ruleset.json" + "$ref": "resources/aws-appstream-stack.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -8100,9 +8204,9 @@ ], "additionalProperties": false }, - "AWS_IoT_ScheduledAudit": { + "AWS_IoTWireless_FuotaTask": { "type": "object", - "markdownDescription": "Scheduled audits can be used to specify the checks you want to perform during an audit and how often the audit should be run. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html)", + "markdownDescription": "Create and manage FUOTA tasks. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html)", "allOf": [ { "type": "object", @@ -8110,14 +8214,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::ScheduledAudit" + "AWS::IoTWireless::FuotaTask" ], "markdownEnumDescriptions": [ - "Scheduled audits can be used to specify the checks you want to perform during an audit and how often the audit should be run. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html)" + "Create and manage FUOTA tasks. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-scheduledaudit.json" + "$ref": "resources/aws-iotwireless-fuotatask.json" } }, "required": [ @@ -8131,9 +8235,9 @@ ], "additionalProperties": false }, - "AWS_ODB_OdbNetwork": { + "AWS_MediaConvert_Preset": { "type": "object", - "markdownDescription": "The AWS::ODB::OdbNetwork resource creates an ODB Network \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbnetwork.html)", + "markdownDescription": "Resource Type definition for AWS::MediaConvert::Preset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html)", "allOf": [ { "type": "object", @@ -8141,18 +8245,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ODB::OdbNetwork" + "AWS::MediaConvert::Preset" ], "markdownEnumDescriptions": [ - "The AWS::ODB::OdbNetwork resource creates an ODB Network \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbnetwork.html)" + "Resource Type definition for AWS::MediaConvert::Preset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html)" ] }, "Properties": { - "$ref": "resources/aws-odb-odbnetwork.json" + "$ref": "resources/aws-mediaconvert-preset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -8161,9 +8266,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Crawler": { + "AWS_EC2_RouteServerPropagation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Crawler \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html)", + "markdownDescription": "VPC Route Server Propagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html)", "allOf": [ { "type": "object", @@ -8171,14 +8276,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Crawler" + "AWS::EC2::RouteServerPropagation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Crawler \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html)" + "VPC Route Server Propagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-crawler.json" + "$ref": "resources/aws-ec2-routeserverpropagation.json" } }, "required": [ @@ -8192,9 +8297,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_Application": { + "AWS_DataBrew_Schedule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppConfig::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html)", + "markdownDescription": "Resource schema for AWS::DataBrew::Schedule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html)", "allOf": [ { "type": "object", @@ -8202,14 +8307,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::Application" + "AWS::DataBrew::Schedule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppConfig::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html)" + "Resource schema for AWS::DataBrew::Schedule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-application.json" + "$ref": "resources/aws-databrew-schedule.json" } }, "required": [ @@ -8223,9 +8328,9 @@ ], "additionalProperties": false }, - "AWS_EMR_InstanceGroupConfig": { + "AWS_AppConfig_Deployment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EMR::InstanceGroupConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html)", + "markdownDescription": "Resource Type definition for AWS::AppConfig::Deployment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html)", "allOf": [ { "type": "object", @@ -8233,14 +8338,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::InstanceGroupConfig" + "AWS::AppConfig::Deployment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EMR::InstanceGroupConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html)" + "Resource Type definition for AWS::AppConfig::Deployment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-instancegroupconfig.json" + "$ref": "resources/aws-appconfig-deployment.json" } }, "required": [ @@ -8254,9 +8359,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_HookDefaultVersion": { + "AWS_EC2_NetworkInsightsAccessScope": { "type": "object", - "markdownDescription": "Set a version as default version for a hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html)", + "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsAccessScope \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscope.html)", "allOf": [ { "type": "object", @@ -8264,14 +8369,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::HookDefaultVersion" + "AWS::EC2::NetworkInsightsAccessScope" ], "markdownEnumDescriptions": [ - "Set a version as default version for a hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html)" + "Resource schema for AWS::EC2::NetworkInsightsAccessScope \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscope.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-hookdefaultversion.json" + "$ref": "resources/aws-ec2-networkinsightsaccessscope.json" } }, "required": [ @@ -8284,9 +8389,9 @@ ], "additionalProperties": false }, - "AWS_ControlTower_EnabledBaseline": { + "AWS_ECR_PullTimeUpdateExclusion": { "type": "object", - "markdownDescription": "Definition of AWS::ControlTower::EnabledBaseline Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html)", + "markdownDescription": "The ARN of the IAM principal to remove from the pull time update exclusion list. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-pulltimeupdateexclusion.html)", "allOf": [ { "type": "object", @@ -8294,14 +8399,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ControlTower::EnabledBaseline" + "AWS::ECR::PullTimeUpdateExclusion" ], "markdownEnumDescriptions": [ - "Definition of AWS::ControlTower::EnabledBaseline Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html)" + "The ARN of the IAM principal to remove from the pull time update exclusion list. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-pulltimeupdateexclusion.html)" ] }, "Properties": { - "$ref": "resources/aws-controltower-enabledbaseline.json" + "$ref": "resources/aws-ecr-pulltimeupdateexclusion.json" } }, "required": [ @@ -8315,9 +8420,9 @@ ], "additionalProperties": false }, - "AWS_M2_Environment": { + "AWS_SageMaker_Workteam": { "type": "object", - "markdownDescription": "Represents a runtime environment that can run migrated mainframe applications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-environment.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Workteam \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-workteam.html)", "allOf": [ { "type": "object", @@ -8325,19 +8430,18 @@ "Type": { "type": "string", "enum": [ - "AWS::M2::Environment" + "AWS::SageMaker::Workteam" ], "markdownEnumDescriptions": [ - "Represents a runtime environment that can run migrated mainframe applications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-environment.html)" + "Resource Type definition for AWS::SageMaker::Workteam \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-workteam.html)" ] }, "Properties": { - "$ref": "resources/aws-m2-environment.json" + "$ref": "resources/aws-sagemaker-workteam.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -8346,9 +8450,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_PrivacyBudgetTemplate": { + "AWS_ODB_OdbPeeringConnection": { "type": "object", - "markdownDescription": "Represents a privacy budget within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html)", + "markdownDescription": "Resource Type definition for AWS::ODB::OdbPeeringConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbpeeringconnection.html)", "allOf": [ { "type": "object", @@ -8356,19 +8460,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::PrivacyBudgetTemplate" + "AWS::ODB::OdbPeeringConnection" ], "markdownEnumDescriptions": [ - "Represents a privacy budget within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html)" + "Resource Type definition for AWS::ODB::OdbPeeringConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbpeeringconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-privacybudgettemplate.json" + "$ref": "resources/aws-odb-odbpeeringconnection.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -8377,9 +8480,9 @@ ], "additionalProperties": false }, - "AWS_DMS_Certificate": { + "AWS_SES_ReceiptFilter": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DMS::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html)", + "markdownDescription": "Resource Type definition for AWS::SES::ReceiptFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html)", "allOf": [ { "type": "object", @@ -8387,18 +8490,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::Certificate" + "AWS::SES::ReceiptFilter" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DMS::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html)" + "Resource Type definition for AWS::SES::ReceiptFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-certificate.json" + "$ref": "resources/aws-ses-receiptfilter.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -8407,9 +8511,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ModelCard": { + "AWS_DynamoDB_Table": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelCard. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelcard.html)", + "markdownDescription": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)", "allOf": [ { "type": "object", @@ -8417,14 +8521,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ModelCard" + "AWS::DynamoDB::Table" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ModelCard. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelcard.html)" + "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-modelcard.json" + "$ref": "resources/aws-dynamodb-table.json" } }, "required": [ @@ -8438,9 +8542,9 @@ ], "additionalProperties": false }, - "AWS_GroundStation_Config": { + "AWS_CloudWatch_MetricStream": { "type": "object", - "markdownDescription": "AWS Ground Station config resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html)", + "markdownDescription": "Resource Type definition for Metric Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html)", "allOf": [ { "type": "object", @@ -8448,19 +8552,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GroundStation::Config" + "AWS::CloudWatch::MetricStream" ], "markdownEnumDescriptions": [ - "AWS Ground Station config resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html)" + "Resource Type definition for Metric Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html)" ] }, "Properties": { - "$ref": "resources/aws-groundstation-config.json" + "$ref": "resources/aws-cloudwatch-metricstream.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -8469,9 +8572,9 @@ ], "additionalProperties": false }, - "AWS_Evidently_Experiment": { + "AWS_EMR_SecurityConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Evidently::Experiment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html)", + "markdownDescription": "Use a SecurityConfiguration resource to configure data encryption, Kerberos authentication, and Amazon S3 authorization for EMRFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html)", "allOf": [ { "type": "object", @@ -8479,14 +8582,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Evidently::Experiment" + "AWS::EMR::SecurityConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Evidently::Experiment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html)" + "Use a SecurityConfiguration resource to configure data encryption, Kerberos authentication, and Amazon S3 authorization for EMRFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-evidently-experiment.json" + "$ref": "resources/aws-emr-securityconfiguration.json" } }, "required": [ @@ -8500,9 +8603,9 @@ ], "additionalProperties": false }, - "AWS_Inspector_AssessmentTemplate": { + "AWS_DataSync_LocationFSxWindows": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Inspector::AssessmentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html)", + "markdownDescription": "Resource Type definition for AWS::DataSync::LocationFSxWindows. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html)", "allOf": [ { "type": "object", @@ -8510,14 +8613,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Inspector::AssessmentTemplate" + "AWS::DataSync::LocationFSxWindows" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Inspector::AssessmentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html)" + "Resource Type definition for AWS::DataSync::LocationFSxWindows. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html)" ] }, "Properties": { - "$ref": "resources/aws-inspector-assessmenttemplate.json" + "$ref": "resources/aws-datasync-locationfsxwindows.json" } }, "required": [ @@ -8531,9 +8634,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_Portfolio": { + "AWS_IoTSiteWise_Dashboard": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::Portfolio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html)", "allOf": [ { "type": "object", @@ -8541,14 +8644,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::Portfolio" + "AWS::IoTSiteWise::Dashboard" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::Portfolio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html)" + "Resource schema for AWS::IoTSiteWise::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-portfolio.json" + "$ref": "resources/aws-iotsitewise-dashboard.json" } }, "required": [ @@ -8562,9 +8665,9 @@ ], "additionalProperties": false }, - "AWS_IAM_ServiceLinkedRole": { + "AWS_Pinpoint_APNSVoipChannel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::ServiceLinkedRole \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSVoipChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html)", "allOf": [ { "type": "object", @@ -8572,18 +8675,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::Pinpoint::APNSVoipChannel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::ServiceLinkedRole \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html)" + "Resource Type definition for AWS::Pinpoint::APNSVoipChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-servicelinkedrole.json" + "$ref": "resources/aws-pinpoint-apnsvoipchannel.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -8592,9 +8696,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_ModuleDefaultVersion": { + "AWS_Connect_Workspace": { "type": "object", - "markdownDescription": "A module that has been registered in the CloudFormation registry as the default version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-workspace.html)", "allOf": [ { "type": "object", @@ -8602,18 +8706,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::ModuleDefaultVersion" + "AWS::Connect::Workspace" ], "markdownEnumDescriptions": [ - "A module that has been registered in the CloudFormation registry as the default version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html)" + "Resource Type definition for AWS::Connect::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-workspace.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-moduledefaultversion.json" + "$ref": "resources/aws-connect-workspace.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -8622,9 +8727,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorAD_Connector": { + "AWS_EC2_VPCDHCPOptionsAssociation": { "type": "object", - "markdownDescription": "Represents a Connector that connects AWS PrivateCA and your directory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-connector.html)", + "markdownDescription": "Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html)", "allOf": [ { "type": "object", @@ -8632,14 +8737,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorAD::Connector" + "AWS::EC2::VPCDHCPOptionsAssociation" ], "markdownEnumDescriptions": [ - "Represents a Connector that connects AWS PrivateCA and your directory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-connector.html)" + "Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorad-connector.json" + "$ref": "resources/aws-ec2-vpcdhcpoptionsassociation.json" } }, "required": [ @@ -8653,9 +8758,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_Agreement": { + "AWS_SageMaker_Project": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Transfer::Agreement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-project.html)", "allOf": [ { "type": "object", @@ -8663,14 +8768,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::Agreement" + "AWS::SageMaker::Project" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Transfer::Agreement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html)" + "Resource Type definition for AWS::SageMaker::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-project.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-agreement.json" + "$ref": "resources/aws-sagemaker-project.json" } }, "required": [ @@ -8684,9 +8789,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VolumeAttachment": { + "AWS_DataZone_UserProfile": { "type": "object", - "markdownDescription": "Attaches an Amazon EBS volume to a running instance and exposes it to the instance with the specified device name.\n Before this resource can be deleted (and therefore the volume detached), you must first unmount the volume in the instance. Failure to do so results in the volume being stuck in the busy state while it is trying to detach, which could possibly damage the file system or the data it contains.\n If an Amazon EBS volume is the root device of an instance, it cannot be detached while the instance is in the \"running\" state. To detach the root volume, stop the instance first.\n If the root volume is detached from an instance with an MKT product code, then the product codes from that volume are no longer associated with the instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volumeattachment.html)", + "markdownDescription": "A user profile represents Amazon DataZone users. Amazon DataZone supports both IAM roles and SSO identities to interact with the Amazon DataZone Management Console and the data portal for different purposes. Domain administrators use IAM roles to perform the initial administrative domain-related work in the Amazon DataZone Management Console, including creating new Amazon DataZone domains, configuring metadata form types, and implementing policies. Data workers use their SSO corporate identities via Identity Center to log into the Amazon DataZone Data Portal and access projects where they have memberships. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-userprofile.html)", "allOf": [ { "type": "object", @@ -8694,14 +8799,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::DataZone::UserProfile" ], "markdownEnumDescriptions": [ - "Attaches an Amazon EBS volume to a running instance and exposes it to the instance with the specified device name.\n Before this resource can be deleted (and therefore the volume detached), you must first unmount the volume in the instance. Failure to do so results in the volume being stuck in the busy state while it is trying to detach, which could possibly damage the file system or the data it contains.\n If an Amazon EBS volume is the root device of an instance, it cannot be detached while the instance is in the \"running\" state. To detach the root volume, stop the instance first.\n If the root volume is detached from an instance with an MKT product code, then the product codes from that volume are no longer associated with the instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volumeattachment.html)" + "A user profile represents Amazon DataZone users. Amazon DataZone supports both IAM roles and SSO identities to interact with the Amazon DataZone Management Console and the data portal for different purposes. Domain administrators use IAM roles to perform the initial administrative domain-related work in the Amazon DataZone Management Console, including creating new Amazon DataZone domains, configuring metadata form types, and implementing policies. Data workers use their SSO corporate identities via Identity Center to log into the Amazon DataZone Data Portal and access projects where they have memberships. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-userprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-volumeattachment.json" + "$ref": "resources/aws-datazone-userprofile.json" } }, "required": [ @@ -8715,9 +8820,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_LaunchRoleConstraint": { + "AWS_IVS_StreamKey": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::LaunchRoleConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::StreamKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html)", "allOf": [ { "type": "object", @@ -8725,14 +8830,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::LaunchRoleConstraint" + "AWS::IVS::StreamKey" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::LaunchRoleConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html)" + "Resource Type definition for AWS::IVS::StreamKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-launchroleconstraint.json" + "$ref": "resources/aws-ivs-streamkey.json" } }, "required": [ @@ -8746,9 +8851,9 @@ ], "additionalProperties": false }, - "AWS_DMS_MigrationProject": { + "AWS_DirectoryService_SimpleAD": { "type": "object", - "markdownDescription": "Resource schema for AWS::DMS::MigrationProject \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html)", + "markdownDescription": "Resource Type definition for AWS::DirectoryService::SimpleAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html)", "allOf": [ { "type": "object", @@ -8756,18 +8861,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::MigrationProject" + "AWS::DirectoryService::SimpleAD" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DMS::MigrationProject \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html)" + "Resource Type definition for AWS::DirectoryService::SimpleAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-migrationproject.json" + "$ref": "resources/aws-directoryservice-simplead.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -8776,9 +8882,9 @@ ], "additionalProperties": false }, - "AWS_DataBrew_Schedule": { + "AWS_RoboMaker_Robot": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataBrew::Schedule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html)", + "markdownDescription": "AWS::RoboMaker::Robot resource creates an AWS RoboMaker Robot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html)", "allOf": [ { "type": "object", @@ -8786,14 +8892,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataBrew::Schedule" + "AWS::RoboMaker::Robot" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataBrew::Schedule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html)" + "AWS::RoboMaker::Robot resource creates an AWS RoboMaker Robot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html)" ] }, "Properties": { - "$ref": "resources/aws-databrew-schedule.json" + "$ref": "resources/aws-robomaker-robot.json" } }, "required": [ @@ -8807,9 +8913,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorAD_ServicePrincipalName": { + "AWS_ElasticBeanstalk_ConfigurationTemplate": { "type": "object", - "markdownDescription": "Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-serviceprincipalname.html)", + "markdownDescription": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html)", "allOf": [ { "type": "object", @@ -8817,18 +8923,19 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorAD::ServicePrincipalName" + "AWS::ElasticBeanstalk::ConfigurationTemplate" ], "markdownEnumDescriptions": [ - "Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-serviceprincipalname.html)" + "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorad-serviceprincipalname.json" + "$ref": "resources/aws-elasticbeanstalk-configurationtemplate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -8837,9 +8944,9 @@ ], "additionalProperties": false }, - "AWS_Glue_DevEndpoint": { + "AWS_Route53RecoveryReadiness_RecoveryGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::DevEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html)", + "markdownDescription": "AWS Route53 Recovery Readiness Recovery Group Schema and API specifications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-recoverygroup.html)", "allOf": [ { "type": "object", @@ -8847,19 +8954,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::DevEndpoint" + "AWS::Route53RecoveryReadiness::RecoveryGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::DevEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html)" + "AWS Route53 Recovery Readiness Recovery Group Schema and API specifications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-recoverygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-devendpoint.json" + "$ref": "resources/aws-route53recoveryreadiness-recoverygroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -8868,9 +8974,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_Project": { + "AWS_AppStream_ApplicationFleetAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::ApplicationFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html)", "allOf": [ { "type": "object", @@ -8878,14 +8984,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::Project" + "AWS::AppStream::ApplicationFleetAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html)" + "Resource Type definition for AWS::AppStream::ApplicationFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-project.json" + "$ref": "resources/aws-appstream-applicationfleetassociation.json" } }, "required": [ @@ -8899,9 +9005,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_QueueFleetAssociation": { + "AWS_EC2_VPNGateway": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::QueueFleetAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html)", + "markdownDescription": "Specifies a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html)", "allOf": [ { "type": "object", @@ -8909,14 +9015,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::QueueFleetAssociation" + "AWS::EC2::VPNGateway" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::QueueFleetAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html)" + "Specifies a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-queuefleetassociation.json" + "$ref": "resources/aws-ec2-vpngateway.json" } }, "required": [ @@ -8930,9 +9036,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Certificate": { + "AWS_SES_MailManagerRuleSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerRuleSet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerruleset.html)", "allOf": [ { "type": "object", @@ -8940,14 +9046,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Certificate" + "AWS::SES::MailManagerRuleSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html)" + "Definition of AWS::SES::MailManagerRuleSet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerruleset.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-certificate.json" + "$ref": "resources/aws-ses-mailmanagerruleset.json" } }, "required": [ @@ -8961,9 +9067,9 @@ ], "additionalProperties": false }, - "AWS_NetworkFirewall_FirewallPolicy": { + "AWS_EMR_WALWorkspace": { "type": "object", - "markdownDescription": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)", + "markdownDescription": "Resource schema for AWS::EMR::WALWorkspace Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-walworkspace.html)", "allOf": [ { "type": "object", @@ -8971,19 +9077,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkFirewall::FirewallPolicy" + "AWS::EMR::WALWorkspace" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::NetworkFirewall::FirewallPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)" + "Resource schema for AWS::EMR::WALWorkspace Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-walworkspace.html)" ] }, "Properties": { - "$ref": "resources/aws-networkfirewall-firewallpolicy.json" + "$ref": "resources/aws-emr-walworkspace.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -8992,9 +9097,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SecurityGroup": { + "AWS_Cognito_UserPool": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html)", + "markdownDescription": "Definition of AWS::Cognito::UserPool Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html)", "allOf": [ { "type": "object", @@ -9002,19 +9107,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SecurityGroup" + "AWS::Cognito::UserPool" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html)" + "Definition of AWS::Cognito::UserPool Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-securitygroup.json" + "$ref": "resources/aws-cognito-userpool.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -9023,9 +9127,9 @@ ], "additionalProperties": false }, - "AWS_DataBrew_Job": { + "AWS_Lambda_CodeSigningConfig": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataBrew::Job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html)", + "markdownDescription": "Resource Type definition for AWS::Lambda::CodeSigningConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html)", "allOf": [ { "type": "object", @@ -9033,14 +9137,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataBrew::Job" + "AWS::Lambda::CodeSigningConfig" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataBrew::Job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html)" + "Resource Type definition for AWS::Lambda::CodeSigningConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-databrew-job.json" + "$ref": "resources/aws-lambda-codesigningconfig.json" } }, "required": [ @@ -9054,9 +9158,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackage_OriginEndpoint": { + "AWS_CodeBuild_SourceCredential": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaPackage::OriginEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html)", + "markdownDescription": "Resource Type definition for AWS::CodeBuild::SourceCredential \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)", "allOf": [ { "type": "object", @@ -9064,14 +9168,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackage::OriginEndpoint" + "AWS::CodeBuild::SourceCredential" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaPackage::OriginEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html)" + "Resource Type definition for AWS::CodeBuild::SourceCredential \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackage-originendpoint.json" + "$ref": "resources/aws-codebuild-sourcecredential.json" } }, "required": [ @@ -9085,9 +9189,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_VirtualRouter": { + "AWS_ApiGateway_GatewayResponse": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualRouter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html)", + "markdownDescription": "The ``AWS::ApiGateway::GatewayResponse`` resource creates a gateway response for your API. When you delete a stack containing this resource, your custom gateway responses are reset. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html)", "allOf": [ { "type": "object", @@ -9095,14 +9199,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::VirtualRouter" + "AWS::ApiGateway::GatewayResponse" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::VirtualRouter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html)" + "The ``AWS::ApiGateway::GatewayResponse`` resource creates a gateway response for your API. When you delete a stack containing this resource, your custom gateway responses are reset. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-virtualrouter.json" + "$ref": "resources/aws-apigateway-gatewayresponse.json" } }, "required": [ @@ -9116,9 +9220,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_TagAssociation": { + "AWS_DirectoryService_MicrosoftAD": { "type": "object", - "markdownDescription": "A resource schema representing a Lake Formation Tag Association. While tag associations are not explicit Lake Formation resources, this CloudFormation resource can be used to associate tags with Lake Formation entities. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tagassociation.html)", + "markdownDescription": "Resource Type definition for AWS::DirectoryService::MicrosoftAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html)", "allOf": [ { "type": "object", @@ -9126,14 +9230,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::TagAssociation" + "AWS::DirectoryService::MicrosoftAD" ], "markdownEnumDescriptions": [ - "A resource schema representing a Lake Formation Tag Association. While tag associations are not explicit Lake Formation resources, this CloudFormation resource can be used to associate tags with Lake Formation entities. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tagassociation.html)" + "Resource Type definition for AWS::DirectoryService::MicrosoftAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-tagassociation.json" + "$ref": "resources/aws-directoryservice-microsoftad.json" } }, "required": [ @@ -9147,9 +9251,9 @@ ], "additionalProperties": false }, - "AWS_AppFlow_ConnectorProfile": { + "AWS_EC2_NetworkInsightsAccessScopeAnalysis": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppFlow::ConnectorProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html)", + "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscopeanalysis.html)", "allOf": [ { "type": "object", @@ -9157,14 +9261,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppFlow::ConnectorProfile" + "AWS::EC2::NetworkInsightsAccessScopeAnalysis" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppFlow::ConnectorProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html)" + "Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscopeanalysis.html)" ] }, "Properties": { - "$ref": "resources/aws-appflow-connectorprofile.json" + "$ref": "resources/aws-ec2-networkinsightsaccessscopeanalysis.json" } }, "required": [ @@ -9178,9 +9282,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_Listener": { + "AWS_IoTFleetWise_Fleet": { "type": "object", - "markdownDescription": "Specifies a listener for an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::Fleet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-fleet.html)", "allOf": [ { "type": "object", @@ -9188,14 +9292,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::Listener" + "AWS::IoTFleetWise::Fleet" ], "markdownEnumDescriptions": [ - "Specifies a listener for an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html)" + "Definition of AWS::IoTFleetWise::Fleet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-listener.json" + "$ref": "resources/aws-iotfleetwise-fleet.json" } }, "required": [ @@ -9209,9 +9313,9 @@ ], "additionalProperties": false }, - "AWS_SupportApp_SlackWorkspaceConfiguration": { + "AWS_ODB_CloudExadataInfrastructure": { "type": "object", - "markdownDescription": "An AWS Support App resource that creates, updates, lists, and deletes Slack workspace configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackworkspaceconfiguration.html)", + "markdownDescription": "The AWS::ODB::CloudExadataInfrastructure resource creates an Exadata Infrastructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudexadatainfrastructure.html)", "allOf": [ { "type": "object", @@ -9219,19 +9323,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SupportApp::SlackWorkspaceConfiguration" + "AWS::ODB::CloudExadataInfrastructure" ], "markdownEnumDescriptions": [ - "An AWS Support App resource that creates, updates, lists, and deletes Slack workspace configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackworkspaceconfiguration.html)" + "The AWS::ODB::CloudExadataInfrastructure resource creates an Exadata Infrastructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudexadatainfrastructure.html)" ] }, "Properties": { - "$ref": "resources/aws-supportapp-slackworkspaceconfiguration.json" + "$ref": "resources/aws-odb-cloudexadatainfrastructure.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -9240,9 +9343,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolGroup": { + "AWS_Batch_QuotaShare": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html)", + "markdownDescription": "Creates an AWS Batch quota share. Each quota share operates as a virtual queue with a configured compute capacity, resource sharing strategy, and borrow limits. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-quotashare.html)", "allOf": [ { "type": "object", @@ -9250,14 +9353,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolGroup" + "AWS::Batch::QuotaShare" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html)" + "Creates an AWS Batch quota share. Each quota share operates as a virtual queue with a configured compute capacity, resource sharing strategy, and borrow limits. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-quotashare.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpoolgroup.json" + "$ref": "resources/aws-batch-quotashare.json" } }, "required": [ @@ -9271,9 +9374,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_Macro": { + "AWS_S3Express_DirectoryBucket": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudFormation::Macro \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html)", + "markdownDescription": "Resource Type definition for AWS::S3Express::DirectoryBucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html)", "allOf": [ { "type": "object", @@ -9281,14 +9384,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::Macro" + "AWS::S3Express::DirectoryBucket" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudFormation::Macro \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html)" + "Resource Type definition for AWS::S3Express::DirectoryBucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-macro.json" + "$ref": "resources/aws-s3express-directorybucket.json" } }, "required": [ @@ -9302,9 +9405,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_EventSubscription": { + "AWS_IoT_Logging": { "type": "object", - "markdownDescription": "The `AWS::Redshift::EventSubscription` resource creates an Amazon Redshift Event Subscription. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html)", + "markdownDescription": "Logging Options enable you to configure your IoT V2 logging role and default logging level so that you can monitor progress events logs as it passes from your devices through Iot core service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html)", "allOf": [ { "type": "object", @@ -9312,14 +9415,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::EventSubscription" + "AWS::IoT::Logging" ], "markdownEnumDescriptions": [ - "The `AWS::Redshift::EventSubscription` resource creates an Amazon Redshift Event Subscription. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html)" + "Logging Options enable you to configure your IoT V2 logging role and default logging level so that you can monitor progress events logs as it passes from your devices through Iot core service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-eventsubscription.json" + "$ref": "resources/aws-iot-logging.json" } }, "required": [ @@ -9333,9 +9436,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SnapshotBlockPublicAccess": { + "AWS_EC2_TrafficMirrorTarget": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::SnapshotBlockPublicAccess \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html)", + "markdownDescription": "The description of the Traffic Mirror target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html)", "allOf": [ { "type": "object", @@ -9343,19 +9446,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SnapshotBlockPublicAccess" + "AWS::EC2::TrafficMirrorTarget" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::SnapshotBlockPublicAccess \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html)" + "The description of the Traffic Mirror target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-snapshotblockpublicaccess.json" + "$ref": "resources/aws-ec2-trafficmirrortarget.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -9364,9 +9466,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_Domain": { + "AWS_CloudFront_StreamingDistribution": { "type": "object", - "markdownDescription": "A domain is an organizing entity for connecting together assets, users, and their projects \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domain.html)", + "markdownDescription": "Resource Type definition for AWS::CloudFront::StreamingDistribution \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html)", "allOf": [ { "type": "object", @@ -9374,14 +9476,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::Domain" + "AWS::CloudFront::StreamingDistribution" ], "markdownEnumDescriptions": [ - "A domain is an organizing entity for connecting together assets, users, and their projects \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domain.html)" + "Resource Type definition for AWS::CloudFront::StreamingDistribution \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-domain.json" + "$ref": "resources/aws-cloudfront-streamingdistribution.json" } }, "required": [ @@ -9395,9 +9497,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VerifiedAccessGroup": { + "AWS_ECR_ReplicationConfiguration": { "type": "object", - "markdownDescription": "The AWS::EC2::VerifiedAccessGroup resource creates an AWS EC2 Verified Access Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html)", + "markdownDescription": "The ``AWS::ECR::ReplicationConfiguration`` resource creates or updates the replication configuration for a private registry. The first time a replication configuration is applied to a private registry, a service-linked IAM role is created in your account for the replication process. For more information, see [Using Service-Linked Roles for Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html) in the *Amazon Elastic Container Registry User Guide*.\n When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a private registry permissions policy. For more information, see ``AWS::ECR::RegistryPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-replicationconfiguration.html)", "allOf": [ { "type": "object", @@ -9405,14 +9507,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VerifiedAccessGroup" + "AWS::ECR::ReplicationConfiguration" ], "markdownEnumDescriptions": [ - "The AWS::EC2::VerifiedAccessGroup resource creates an AWS EC2 Verified Access Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html)" + "The ``AWS::ECR::ReplicationConfiguration`` resource creates or updates the replication configuration for a private registry. The first time a replication configuration is applied to a private registry, a service-linked IAM role is created in your account for the replication process. For more information, see [Using Service-Linked Roles for Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html) in the *Amazon Elastic Container Registry User Guide*.\n When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a private registry permissions policy. For more information, see ``AWS::ECR::RegistryPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-replicationconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-verifiedaccessgroup.json" + "$ref": "resources/aws-ecr-replicationconfiguration.json" } }, "required": [ @@ -9426,9 +9528,9 @@ ], "additionalProperties": false }, - "AWS_S3Tables_Table": { + "AWS_Rekognition_Project": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::S3Tables::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html)", + "markdownDescription": "The AWS::Rekognition::Project type creates an Amazon Rekognition CustomLabels Project. A project is a grouping of the resources needed to create and manage Dataset and ProjectVersions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-project.html)", "allOf": [ { "type": "object", @@ -9436,14 +9538,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Tables::Table" + "AWS::Rekognition::Project" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::S3Tables::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html)" + "The AWS::Rekognition::Project type creates an Amazon Rekognition CustomLabels Project. A project is a grouping of the resources needed to create and manage Dataset and ProjectVersions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-project.html)" ] }, "Properties": { - "$ref": "resources/aws-s3tables-table.json" + "$ref": "resources/aws-rekognition-project.json" } }, "required": [ @@ -9457,9 +9559,9 @@ ], "additionalProperties": false }, - "AWS_NetworkFirewall_Firewall": { + "AWS_LookoutEquipment_InferenceScheduler": { "type": "object", - "markdownDescription": "Resource type definition for AWS::NetworkFirewall::Firewall \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)", + "markdownDescription": "Resource schema for LookoutEquipment InferenceScheduler. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html)", "allOf": [ { "type": "object", @@ -9467,14 +9569,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkFirewall::Firewall" + "AWS::LookoutEquipment::InferenceScheduler" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::NetworkFirewall::Firewall \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)" + "Resource schema for LookoutEquipment InferenceScheduler. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html)" ] }, "Properties": { - "$ref": "resources/aws-networkfirewall-firewall.json" + "$ref": "resources/aws-lookoutequipment-inferencescheduler.json" } }, "required": [ @@ -9488,9 +9590,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_HookTypeConfig": { + "AWS_Pipes_Pipe": { "type": "object", - "markdownDescription": "Specifies the configuration data for a registered hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html)", + "markdownDescription": "Definition of AWS::Pipes::Pipe Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html)", "allOf": [ { "type": "object", @@ -9498,18 +9600,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::HookTypeConfig" + "AWS::Pipes::Pipe" ], "markdownEnumDescriptions": [ - "Specifies the configuration data for a registered hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html)" + "Definition of AWS::Pipes::Pipe Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-hooktypeconfig.json" + "$ref": "resources/aws-pipes-pipe.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -9549,9 +9652,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCEndpointServicePermissions": { + "AWS_ApiGateway_Account": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCEndpointServicePermissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html)", + "markdownDescription": "The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs. To avoid overwriting other roles, you should only have one ``AWS::ApiGateway::Account`` resource per region per account. \n When you delete a stack containing this resource, API Gateway can still assume the provided IAM role to write API logs to CloudWatch Logs. To deny API Gateway access to write API logs to CloudWatch logs, update the permissions policies or change the IAM role to deny access. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html)", "allOf": [ { "type": "object", @@ -9559,19 +9662,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::ApiGateway::Account" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCEndpointServicePermissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html)" + "The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs. To avoid overwriting other roles, you should only have one ``AWS::ApiGateway::Account`` resource per region per account. \n When you delete a stack containing this resource, API Gateway can still assume the provided IAM role to write API logs to CloudWatch Logs. To deny API Gateway access to write API logs to CloudWatch logs, update the permissions policies or change the IAM role to deny access. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcendpointservicepermissions.json" + "$ref": "resources/aws-apigateway-account.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -9580,9 +9682,9 @@ ], "additionalProperties": false }, - "AWS_DMS_EventSubscription": { + "AWS_BedrockAgentCore_OnlineEvaluationConfig": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DMS::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::OnlineEvaluationConfig - Creates an online evaluation configuration for continuous monitoring of agent performance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-onlineevaluationconfig.html)", "allOf": [ { "type": "object", @@ -9590,14 +9692,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::EventSubscription" + "AWS::BedrockAgentCore::OnlineEvaluationConfig" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DMS::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html)" + "Resource Type definition for AWS::BedrockAgentCore::OnlineEvaluationConfig - Creates an online evaluation configuration for continuous monitoring of agent performance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-onlineevaluationconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-eventsubscription.json" + "$ref": "resources/aws-bedrockagentcore-onlineevaluationconfig.json" } }, "required": [ @@ -9611,9 +9713,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayAttachment": { + "AWS_EC2_SecurityGroupVpcAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html)", + "markdownDescription": "Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupvpcassociation.html)", "allOf": [ { "type": "object", @@ -9621,14 +9723,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayAttachment" + "AWS::EC2::SecurityGroupVpcAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html)" + "Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupvpcassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayattachment.json" + "$ref": "resources/aws-ec2-securitygroupvpcassociation.json" } }, "required": [ @@ -9642,9 +9744,9 @@ ], "additionalProperties": false }, - "AWS_AppRunner_ObservabilityConfiguration": { + "AWS_RTBFabric_OutboundExternalLink": { "type": "object", - "markdownDescription": "The AWS::AppRunner::ObservabilityConfiguration resource is an AWS App Runner resource type that specifies an App Runner observability configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-observabilityconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::OutboundExternalLink Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-outboundexternallink.html)", "allOf": [ { "type": "object", @@ -9652,18 +9754,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AppRunner::ObservabilityConfiguration" + "AWS::RTBFabric::OutboundExternalLink" ], "markdownEnumDescriptions": [ - "The AWS::AppRunner::ObservabilityConfiguration resource is an AWS App Runner resource type that specifies an App Runner observability configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-observabilityconfiguration.html)" + "Resource Type definition for AWS::RTBFabric::OutboundExternalLink Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-outboundexternallink.html)" ] }, "Properties": { - "$ref": "resources/aws-apprunner-observabilityconfiguration.json" + "$ref": "resources/aws-rtbfabric-outboundexternallink.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -9672,9 +9775,9 @@ ], "additionalProperties": false }, - "AWS_CodePipeline_CustomActionType": { + "AWS_MediaConnect_RouterInput": { "type": "object", - "markdownDescription": "The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html)", + "markdownDescription": "Represents a router input in AWS Elemental MediaConnect that is used to ingest content to be transmitted to router outputs \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-routerinput.html)", "allOf": [ { "type": "object", @@ -9682,14 +9785,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodePipeline::CustomActionType" + "AWS::MediaConnect::RouterInput" ], "markdownEnumDescriptions": [ - "The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html)" + "Represents a router input in AWS Elemental MediaConnect that is used to ingest content to be transmitted to router outputs \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-routerinput.html)" ] }, "Properties": { - "$ref": "resources/aws-codepipeline-customactiontype.json" + "$ref": "resources/aws-mediaconnect-routerinput.json" } }, "required": [ @@ -9703,9 +9806,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayPeeringAttachment": { + "AWS_DevOpsGuru_NotificationChannel": { "type": "object", - "markdownDescription": "The AWS::EC2::TransitGatewayPeeringAttachment type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html)", + "markdownDescription": "This resource schema represents the NotificationChannel resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-notificationchannel.html)", "allOf": [ { "type": "object", @@ -9713,14 +9816,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayPeeringAttachment" + "AWS::DevOpsGuru::NotificationChannel" ], "markdownEnumDescriptions": [ - "The AWS::EC2::TransitGatewayPeeringAttachment type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html)" + "This resource schema represents the NotificationChannel resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-notificationchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewaypeeringattachment.json" + "$ref": "resources/aws-devopsguru-notificationchannel.json" } }, "required": [ @@ -9734,9 +9837,9 @@ ], "additionalProperties": false }, - "AWS_DMS_ReplicationInstance": { + "AWS_IoT_BillingGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DMS::ReplicationInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::BillingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html)", "allOf": [ { "type": "object", @@ -9744,19 +9847,18 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::ReplicationInstance" + "AWS::IoT::BillingGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DMS::ReplicationInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html)" + "Resource Type definition for AWS::IoT::BillingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-replicationinstance.json" + "$ref": "resources/aws-iot-billinggroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -9765,9 +9867,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_ConfigurationSet": { + "AWS_S3_MultiRegionAccessPointPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html)", + "markdownDescription": "The policy to be attached to a Multi Region Access Point \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html)", "allOf": [ { "type": "object", @@ -9775,18 +9877,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::ConfigurationSet" + "AWS::S3::MultiRegionAccessPointPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html)" + "The policy to be attached to a Multi Region Access Point \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-configurationset.json" + "$ref": "resources/aws-s3-multiregionaccesspointpolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -9795,9 +9898,9 @@ ], "additionalProperties": false }, - "AWS_IAM_GroupPolicy": { + "AWS_EC2_Volume": { "type": "object", - "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM group.\n A group can also have managed policies attached to it. To attach a managed policy to a group, use [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a group, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html)", + "markdownDescription": "Specifies an Amazon Elastic Block Store (Amazon EBS) volume. You can create an empty volume, a volume from a snapshot, or a volume copy from an existing source volume.\n + When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time. Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n + Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n \n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html)", "allOf": [ { "type": "object", @@ -9805,19 +9908,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::GroupPolicy" + "AWS::EC2::Volume" ], "markdownEnumDescriptions": [ - "Adds or updates an inline policy document that is embedded in the specified IAM group.\n A group can also have managed policies attached to it. To attach a managed policy to a group, use [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a group, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html)" + "Specifies an Amazon Elastic Block Store (Amazon EBS) volume. You can create an empty volume, a volume from a snapshot, or a volume copy from an existing source volume.\n + When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time. Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n + Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n \n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-grouppolicy.json" + "$ref": "resources/aws-ec2-volume.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -9826,9 +9928,9 @@ ], "additionalProperties": false }, - "AWS_Organizations_Account": { + "AWS_EC2_InstanceConnectEndpoint": { "type": "object", - "markdownDescription": "You can use AWS::Organizations::Account to manage accounts in organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-account.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::InstanceConnectEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html)", "allOf": [ { "type": "object", @@ -9836,14 +9938,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Organizations::Account" + "AWS::EC2::InstanceConnectEndpoint" ], "markdownEnumDescriptions": [ - "You can use AWS::Organizations::Account to manage accounts in organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-account.html)" + "Resource Type definition for AWS::EC2::InstanceConnectEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-organizations-account.json" + "$ref": "resources/aws-ec2-instanceconnectendpoint.json" } }, "required": [ @@ -9857,9 +9959,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_App": { + "AWS_RoboMaker_SimulationApplication": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html)", + "markdownDescription": "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html)", "allOf": [ { "type": "object", @@ -9867,14 +9969,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::App" + "AWS::RoboMaker::SimulationApplication" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html)" + "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-app.json" + "$ref": "resources/aws-robomaker-simulationapplication.json" } }, "required": [ @@ -9888,9 +9990,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_GuardrailVersion": { + "AWS_Cognito_UserPoolGroup": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::GuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrailversion.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html)", "allOf": [ { "type": "object", @@ -9898,14 +10000,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::GuardrailVersion" + "AWS::Cognito::UserPoolGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::GuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrailversion.html)" + "Resource Type definition for AWS::Cognito::UserPoolGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-guardrailversion.json" + "$ref": "resources/aws-cognito-userpoolgroup.json" } }, "required": [ @@ -9919,9 +10021,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_Detector": { + "AWS_SecretsManager_SecretTargetAttachment": { "type": "object", - "markdownDescription": "A resource schema for a Detector in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html)", + "markdownDescription": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html)", "allOf": [ { "type": "object", @@ -9929,14 +10031,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::Detector" + "AWS::SecretsManager::SecretTargetAttachment" ], "markdownEnumDescriptions": [ - "A resource schema for a Detector in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html)" + "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-detector.json" + "$ref": "resources/aws-secretsmanager-secrettargetattachment.json" } }, "required": [ @@ -9950,9 +10052,9 @@ ], "additionalProperties": false }, - "AWS_M2_Application": { + "AWS_Greengrass_CoreDefinitionVersion": { "type": "object", - "markdownDescription": "Represents an application that runs on an AWS Mainframe Modernization Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-application.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::CoreDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html)", "allOf": [ { "type": "object", @@ -9960,14 +10062,14 @@ "Type": { "type": "string", "enum": [ - "AWS::M2::Application" + "AWS::Greengrass::CoreDefinitionVersion" ], "markdownEnumDescriptions": [ - "Represents an application that runs on an AWS Mainframe Modernization Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-application.html)" + "Resource Type definition for AWS::Greengrass::CoreDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html)" ] }, "Properties": { - "$ref": "resources/aws-m2-application.json" + "$ref": "resources/aws-greengrass-coredefinitionversion.json" } }, "required": [ @@ -9981,9 +10083,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_CloudFormationProduct": { + "AWS_Deadline_Limit": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::CloudFormationProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::Limit \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-limit.html)", "allOf": [ { "type": "object", @@ -9991,14 +10093,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::CloudFormationProduct" + "AWS::Deadline::Limit" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::CloudFormationProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html)" + "Resource Type definition for AWS::Deadline::Limit \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-limit.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-cloudformationproduct.json" + "$ref": "resources/aws-deadline-limit.json" } }, "required": [ @@ -10012,9 +10114,9 @@ ], "additionalProperties": false }, - "AWS_VerifiedPermissions_IdentitySource": { + "AWS_BedrockAgentCore_WorkloadIdentity": { "type": "object", - "markdownDescription": "Definition of AWS::VerifiedPermissions::IdentitySource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html)", + "markdownDescription": "Definition of AWS::BedrockAgentCore::WorkloadIdentity Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-workloadidentity.html)", "allOf": [ { "type": "object", @@ -10022,14 +10124,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VerifiedPermissions::IdentitySource" + "AWS::BedrockAgentCore::WorkloadIdentity" ], "markdownEnumDescriptions": [ - "Definition of AWS::VerifiedPermissions::IdentitySource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html)" + "Definition of AWS::BedrockAgentCore::WorkloadIdentity Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-workloadidentity.html)" ] }, "Properties": { - "$ref": "resources/aws-verifiedpermissions-identitysource.json" + "$ref": "resources/aws-bedrockagentcore-workloadidentity.json" } }, "required": [ @@ -10043,9 +10145,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_Hub": { + "AWS_SecretsManager_Secret": { "type": "object", - "markdownDescription": "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 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html)", + "markdownDescription": "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html)", "allOf": [ { "type": "object", @@ -10053,14 +10155,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::Hub" + "AWS::SecretsManager::Secret" ], "markdownEnumDescriptions": [ - "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 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html)" + "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-hub.json" + "$ref": "resources/aws-secretsmanager-secret.json" } }, "required": [ @@ -10073,9 +10175,9 @@ ], "additionalProperties": false }, - "AWS_Logs_SubscriptionFilter": { + "AWS_ApiGateway_Stage": { "type": "object", - "markdownDescription": "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html)", + "markdownDescription": "The ``AWS::ApiGateway::Stage`` resource creates a stage for a deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html)", "allOf": [ { "type": "object", @@ -10083,14 +10185,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::SubscriptionFilter" + "AWS::ApiGateway::Stage" ], "markdownEnumDescriptions": [ - "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html)" + "The ``AWS::ApiGateway::Stage`` resource creates a stage for a deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-subscriptionfilter.json" + "$ref": "resources/aws-apigateway-stage.json" } }, "required": [ @@ -10104,9 +10206,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolRiskConfigurationAttachment": { + "AWS_IVSChat_LoggingConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html)", + "markdownDescription": "Resource type definition for AWS::IVSChat::LoggingConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-loggingconfiguration.html)", "allOf": [ { "type": "object", @@ -10114,14 +10216,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolRiskConfigurationAttachment" + "AWS::IVSChat::LoggingConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html)" + "Resource type definition for AWS::IVSChat::LoggingConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-loggingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpoolriskconfigurationattachment.json" + "$ref": "resources/aws-ivschat-loggingconfiguration.json" } }, "required": [ @@ -10135,9 +10237,9 @@ ], "additionalProperties": false }, - "AWS_Location_PlaceIndex": { + "AWS_Panorama_PackageVersion": { "type": "object", - "markdownDescription": "Definition of AWS::Location::PlaceIndex Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html)", + "markdownDescription": "Registers a package version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html)", "allOf": [ { "type": "object", @@ -10145,14 +10247,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Panorama::PackageVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::PlaceIndex Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html)" + "Registers a package version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html)" ] }, "Properties": { - "$ref": "resources/aws-location-placeindex.json" + "$ref": "resources/aws-panorama-packageversion.json" } }, "required": [ @@ -10166,9 +10268,9 @@ ], "additionalProperties": false }, - "AWS_Config_ConformancePack": { + "AWS_SageMaker_ModelCard": { "type": "object", - "markdownDescription": "A conformance pack is a collection of AWS Config rules and remediation actions that can be easily deployed as a single entity in an account and a region or across an entire AWS Organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelCard. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelcard.html)", "allOf": [ { "type": "object", @@ -10176,14 +10278,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::ConformancePack" + "AWS::SageMaker::ModelCard" ], "markdownEnumDescriptions": [ - "A conformance pack is a collection of AWS Config rules and remediation actions that can be easily deployed as a single entity in an account and a region or across an entire AWS Organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html)" + "Resource Type definition for AWS::SageMaker::ModelCard. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelcard.html)" ] }, "Properties": { - "$ref": "resources/aws-config-conformancepack.json" + "$ref": "resources/aws-sagemaker-modelcard.json" } }, "required": [ @@ -10197,9 +10299,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_ConfigurationProfile": { + "AWS_EntityResolution_MatchingWorkflow": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html)", + "markdownDescription": "MatchingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-matchingworkflow.html)", "allOf": [ { "type": "object", @@ -10207,14 +10309,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::ConfigurationProfile" + "AWS::EntityResolution::MatchingWorkflow" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html)" + "MatchingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-matchingworkflow.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-configurationprofile.json" + "$ref": "resources/aws-entityresolution-matchingworkflow.json" } }, "required": [ @@ -10228,9 +10330,9 @@ ], "additionalProperties": false }, - "AWS_AutoScaling_LifecycleHook": { + "AWS_VpcLattice_ServiceNetworkResourceAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AutoScaling::LifecycleHook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html)", + "markdownDescription": "VpcLattice ServiceNetworkResourceAssociation CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkresourceassociation.html)", "allOf": [ { "type": "object", @@ -10238,19 +10340,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScaling::LifecycleHook" + "AWS::VpcLattice::ServiceNetworkResourceAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AutoScaling::LifecycleHook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html)" + "VpcLattice ServiceNetworkResourceAssociation CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkresourceassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscaling-lifecyclehook.json" + "$ref": "resources/aws-vpclattice-servicenetworkresourceassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -10259,9 +10360,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAMResourceDiscovery": { + "AWS_Bedrock_IntelligentPromptRouter": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAMResourceDiscovery Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscovery.html)", + "markdownDescription": "Definition of AWS::Bedrock::IntelligentPromptRouter Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-intelligentpromptrouter.html)", "allOf": [ { "type": "object", @@ -10269,18 +10370,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAMResourceDiscovery" + "AWS::Bedrock::IntelligentPromptRouter" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAMResourceDiscovery Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscovery.html)" + "Definition of AWS::Bedrock::IntelligentPromptRouter Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-intelligentpromptrouter.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipamresourcediscovery.json" + "$ref": "resources/aws-bedrock-intelligentpromptrouter.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10289,9 +10391,9 @@ ], "additionalProperties": false }, - "AWS_Events_EventBus": { + "AWS_PCAConnectorAD_ServicePrincipalName": { "type": "object", - "markdownDescription": "Resource type definition for AWS::Events::EventBus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html)", + "markdownDescription": "Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-serviceprincipalname.html)", "allOf": [ { "type": "object", @@ -10299,19 +10401,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::EventBus" + "AWS::PCAConnectorAD::ServicePrincipalName" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::Events::EventBus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html)" + "Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-serviceprincipalname.html)" ] }, "Properties": { - "$ref": "resources/aws-events-eventbus.json" + "$ref": "resources/aws-pcaconnectorad-serviceprincipalname.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -10320,9 +10421,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayConnect": { + "AWS_ImageBuilder_InfrastructureConfiguration": { "type": "object", - "markdownDescription": "The AWS::EC2::TransitGatewayConnect type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::InfrastructureConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html)", "allOf": [ { "type": "object", @@ -10330,14 +10431,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayConnect" + "AWS::ImageBuilder::InfrastructureConfiguration" ], "markdownEnumDescriptions": [ - "The AWS::EC2::TransitGatewayConnect type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html)" + "Resource schema for AWS::ImageBuilder::InfrastructureConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayconnect.json" + "$ref": "resources/aws-imagebuilder-infrastructureconfiguration.json" } }, "required": [ @@ -10351,9 +10452,9 @@ ], "additionalProperties": false }, - "AWS_Config_OrganizationConformancePack": { + "AWS_ECS_Cluster": { "type": "object", - "markdownDescription": "Resource schema for AWS::Config::OrganizationConformancePack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html)", + "markdownDescription": "The ``AWS::ECS::Cluster`` resource creates an Amazon Elastic Container Service (Amazon ECS) cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html)", "allOf": [ { "type": "object", @@ -10361,19 +10462,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::OrganizationConformancePack" + "AWS::ECS::Cluster" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Config::OrganizationConformancePack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html)" + "The ``AWS::ECS::Cluster`` resource creates an Amazon Elastic Container Service (Amazon ECS) cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-config-organizationconformancepack.json" + "$ref": "resources/aws-ecs-cluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -10382,9 +10482,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_Route": { + "AWS_M2_Deployment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::Route \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html)", + "markdownDescription": "Represents a deployment resource of an AWS Mainframe Modernization (M2) application to a specified environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-deployment.html)", "allOf": [ { "type": "object", @@ -10392,14 +10492,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::Route" + "AWS::M2::Deployment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::Route \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html)" + "Represents a deployment resource of an AWS Mainframe Modernization (M2) application to a specified environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-deployment.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-route.json" + "$ref": "resources/aws-m2-deployment.json" } }, "required": [ @@ -10413,9 +10513,9 @@ ], "additionalProperties": false }, - "AWS_S3_MultiRegionAccessPoint": { + "AWS_Lambda_LayerVersionPermission": { "type": "object", - "markdownDescription": "AWS::S3::MultiRegionAccessPoint is an Amazon S3 resource type that dynamically routes S3 requests to easily satisfy geographic compliance requirements based on customer-defined routing policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html)", + "markdownDescription": "Schema for Lambda LayerVersionPermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html)", "allOf": [ { "type": "object", @@ -10423,14 +10523,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::MultiRegionAccessPoint" + "AWS::Lambda::LayerVersionPermission" ], "markdownEnumDescriptions": [ - "AWS::S3::MultiRegionAccessPoint is an Amazon S3 resource type that dynamically routes S3 requests to easily satisfy geographic compliance requirements based on customer-defined routing policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html)" + "Schema for Lambda LayerVersionPermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-multiregionaccesspoint.json" + "$ref": "resources/aws-lambda-layerversionpermission.json" } }, "required": [ @@ -10444,9 +10544,9 @@ ], "additionalProperties": false }, - "AWS_IoT_CustomMetric": { + "AWS_QuickSight_DataSource": { "type": "object", - "markdownDescription": "A custom metric published by your devices to Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html)", + "markdownDescription": "Definition of the AWS::QuickSight::DataSource Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-datasource.html)", "allOf": [ { "type": "object", @@ -10454,14 +10554,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::CustomMetric" + "AWS::QuickSight::DataSource" ], "markdownEnumDescriptions": [ - "A custom metric published by your devices to Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html)" + "Definition of the AWS::QuickSight::DataSource Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-datasource.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-custommetric.json" + "$ref": "resources/aws-quicksight-datasource.json" } }, "required": [ @@ -10475,9 +10575,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBCluster": { + "AWS_Route53Resolver_ResolverRuleAssociation": { "type": "object", - "markdownDescription": "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After 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 DB cluster 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, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)", + "markdownDescription": "In the response to an [AssociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html), [DisassociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html), or [ListResolverRuleAssociations](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html) request, provides information about an association between a resolver rule and a VPC. The association determines which DNS queries that originate in the VPC are forwarded to your network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html)", "allOf": [ { "type": "object", @@ -10485,18 +10585,19 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBCluster" + "AWS::Route53Resolver::ResolverRuleAssociation" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After 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 DB cluster 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, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)" + "In the response to an [AssociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html), [DisassociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html), or [ListResolverRuleAssociations](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html) request, provides information about an association between a resolver rule and a VPC. The association determines which DNS queries that originate in the VPC are forwarded to your network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbcluster.json" + "$ref": "resources/aws-route53resolver-resolverruleassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10505,9 +10606,9 @@ ], "additionalProperties": false }, - "AWS_Backup_BackupSelection": { + "AWS_Organizations_Organization": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Backup::BackupSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html)", + "markdownDescription": "Resource schema for AWS::Organizations::Organization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organization.html)", "allOf": [ { "type": "object", @@ -10515,19 +10616,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::BackupSelection" + "AWS::Organizations::Organization" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Backup::BackupSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html)" + "Resource schema for AWS::Organizations::Organization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organization.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-backupselection.json" + "$ref": "resources/aws-organizations-organization.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -10536,9 +10636,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_ChannelAssociation": { + "AWS_IoT_Thing": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Notifications::ChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-channelassociation.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::Thing \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html)", "allOf": [ { "type": "object", @@ -10546,19 +10646,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::ChannelAssociation" + "AWS::IoT::Thing" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Notifications::ChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-channelassociation.html)" + "Resource Type definition for AWS::IoT::Thing \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html)" ] }, "Properties": { - "$ref": "resources/aws-notifications-channelassociation.json" + "$ref": "resources/aws-iot-thing.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -10567,9 +10666,9 @@ ], "additionalProperties": false }, - "AWS_SSM_MaintenanceWindowTask": { + "AWS_FSx_S3AccessPointAttachment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSM::MaintenanceWindowTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html)", + "markdownDescription": "Resource type definition for AWS::FSx::S3AccessPointAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-s3accesspointattachment.html)", "allOf": [ { "type": "object", @@ -10577,14 +10676,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::MaintenanceWindowTask" + "AWS::FSx::S3AccessPointAttachment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSM::MaintenanceWindowTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html)" + "Resource type definition for AWS::FSx::S3AccessPointAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-s3accesspointattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-maintenancewindowtask.json" + "$ref": "resources/aws-fsx-s3accesspointattachment.json" } }, "required": [ @@ -10598,9 +10697,9 @@ ], "additionalProperties": false }, - "AWS_RoboMaker_Fleet": { + "AWS_SQS_QueuePolicy": { "type": "object", - "markdownDescription": "AWS::RoboMaker::Fleet resource creates an AWS RoboMaker fleet. Fleets contain robots and can receive deployments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html)", + "markdownDescription": "The ``AWS::SQS::QueuePolicy`` type applies a policy to SQS queues. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html)", "allOf": [ { "type": "object", @@ -10608,18 +10707,19 @@ "Type": { "type": "string", "enum": [ - "AWS::RoboMaker::Fleet" + "AWS::SQS::QueuePolicy" ], "markdownEnumDescriptions": [ - "AWS::RoboMaker::Fleet resource creates an AWS RoboMaker fleet. Fleets contain robots and can receive deployments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html)" + "The ``AWS::SQS::QueuePolicy`` type applies a policy to SQS queues. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-robomaker-fleet.json" + "$ref": "resources/aws-sqs-queuepolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10628,9 +10728,9 @@ ], "additionalProperties": false }, - "AWS_CloudWatch_MetricStream": { + "AWS_MediaLive_Network": { "type": "object", - "markdownDescription": "Resource Type definition for Metric Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html)", + "markdownDescription": "Resource schema for AWS::MediaLive::Network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-network.html)", "allOf": [ { "type": "object", @@ -10638,18 +10738,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudWatch::MetricStream" + "AWS::MediaLive::Network" ], "markdownEnumDescriptions": [ - "Resource Type definition for Metric Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html)" + "Resource schema for AWS::MediaLive::Network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-network.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudwatch-metricstream.json" + "$ref": "resources/aws-medialive-network.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10658,9 +10759,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AssistantAssociation": { + "AWS_DMS_ReplicationConfig": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AssistantAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html)", + "markdownDescription": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html)", "allOf": [ { "type": "object", @@ -10668,14 +10769,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AssistantAssociation" + "AWS::DMS::ReplicationConfig" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AssistantAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html)" + "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-assistantassociation.json" + "$ref": "resources/aws-dms-replicationconfig.json" } }, "required": [ @@ -10689,9 +10790,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBClusterParameterGroup": { + "AWS_CE_CostCategory": { "type": "object", - "markdownDescription": "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html)", + "markdownDescription": "Resource Type definition for AWS::CE::CostCategory. Cost Category enables you to map your cost and usage into meaningful categories. You can use Cost Category to organize your costs using a rule-based engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html)", "allOf": [ { "type": "object", @@ -10699,14 +10800,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBClusterParameterGroup" + "AWS::CE::CostCategory" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html)" + "Resource Type definition for AWS::CE::CostCategory. Cost Category enables you to map your cost and usage into meaningful categories. You can use Cost Category to organize your costs using a rule-based engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbclusterparametergroup.json" + "$ref": "resources/aws-ce-costcategory.json" } }, "required": [ @@ -10720,9 +10821,9 @@ ], "additionalProperties": false }, - "AWS_Connect_Instance": { + "AWS_Backup_TieringConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html)", + "markdownDescription": "Resource Type definition for AWS::Backup::TieringConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-tieringconfiguration.html)", "allOf": [ { "type": "object", @@ -10730,14 +10831,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::Instance" + "AWS::Backup::TieringConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html)" + "Resource Type definition for AWS::Backup::TieringConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-tieringconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-instance.json" + "$ref": "resources/aws-backup-tieringconfiguration.json" } }, "required": [ @@ -10751,9 +10852,9 @@ ], "additionalProperties": false }, - "AWS_SES_VdmAttributes": { + "AWS_MediaPackageV2_ChannelGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::VdmAttributes \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-vdmattributes.html)", + "markdownDescription": "

Represents a channel group that facilitates the grouping of multiple channels.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelgroup.html)", "allOf": [ { "type": "object", @@ -10761,18 +10862,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::VdmAttributes" + "AWS::MediaPackageV2::ChannelGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::VdmAttributes \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-vdmattributes.html)" + "

Represents a channel group that facilitates the grouping of multiple channels.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-vdmattributes.json" + "$ref": "resources/aws-mediapackagev2-channelgroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10781,9 +10883,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_Collection": { + "AWS_Bedrock_Flow": { "type": "object", - "markdownDescription": "Amazon OpenSearchServerless collection resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-collection.html)", + "markdownDescription": "Definition of AWS::Bedrock::Flow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flow.html)", "allOf": [ { "type": "object", @@ -10791,14 +10893,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::Collection" + "AWS::Bedrock::Flow" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchServerless collection resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-collection.html)" + "Definition of AWS::Bedrock::Flow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flow.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-collection.json" + "$ref": "resources/aws-bedrock-flow.json" } }, "required": [ @@ -10812,9 +10914,9 @@ ], "additionalProperties": false }, - "AWS_SES_ContactList": { + "AWS_AppSync_ApiKey": { "type": "object", - "markdownDescription": "Resource schema for AWS::SES::ContactList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-contactlist.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::ApiKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html)", "allOf": [ { "type": "object", @@ -10822,18 +10924,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::ContactList" + "AWS::AppSync::ApiKey" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::SES::ContactList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-contactlist.html)" + "Resource Type definition for AWS::AppSync::ApiKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-contactlist.json" + "$ref": "resources/aws-appsync-apikey.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10842,9 +10945,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_Blueprint": { + "AWS_AppMesh_Route": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::Blueprint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-blueprint.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::Route \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html)", "allOf": [ { "type": "object", @@ -10852,14 +10955,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::Blueprint" + "AWS::AppMesh::Route" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::Blueprint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-blueprint.html)" + "Resource Type definition for AWS::AppMesh::Route \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-blueprint.json" + "$ref": "resources/aws-appmesh-route.json" } }, "required": [ @@ -10873,9 +10976,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_UserGroup": { + "AWS_Lightsail_Instance": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::UserGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html)", "allOf": [ { "type": "object", @@ -10883,14 +10986,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::UserGroup" + "AWS::Lightsail::Instance" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::UserGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html)" + "Resource Type definition for AWS::Lightsail::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-usergroup.json" + "$ref": "resources/aws-lightsail-instance.json" } }, "required": [ @@ -10904,9 +11007,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverQueryLoggingConfigAssociation": { + "AWS_AppRunner_VpcConnector": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfigassociation.html)", + "markdownDescription": "The AWS::AppRunner::VpcConnector resource specifies an App Runner VpcConnector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html)", "allOf": [ { "type": "object", @@ -10914,18 +11017,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" + "AWS::AppRunner::VpcConnector" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfigassociation.html)" + "The AWS::AppRunner::VpcConnector resource specifies an App Runner VpcConnector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverqueryloggingconfigassociation.json" + "$ref": "resources/aws-apprunner-vpcconnector.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -10934,9 +11038,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_MatchmakingRuleSet": { + "AWS_AppConfig_Environment": { "type": "object", - "markdownDescription": "The AWS::GameLift::MatchmakingRuleSet resource creates an Amazon GameLift (GameLift) matchmaking rule set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html)", + "markdownDescription": "Resource Type definition for AWS::AppConfig::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html)", "allOf": [ { "type": "object", @@ -10944,14 +11048,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::MatchmakingRuleSet" + "AWS::AppConfig::Environment" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::MatchmakingRuleSet resource creates an Amazon GameLift (GameLift) matchmaking rule set. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html)" + "Resource Type definition for AWS::AppConfig::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-matchmakingruleset.json" + "$ref": "resources/aws-appconfig-environment.json" } }, "required": [ @@ -10965,9 +11069,9 @@ ], "additionalProperties": false }, - "AWS_RefactorSpaces_Route": { + "AWS_AmazonMQ_Broker": { "type": "object", - "markdownDescription": "Definition of AWS::RefactorSpaces::Route Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-route.html)", + "markdownDescription": "Resource type definition for AWS::AmazonMQ::Broker \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html)", "allOf": [ { "type": "object", @@ -10975,14 +11079,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RefactorSpaces::Route" + "AWS::AmazonMQ::Broker" ], "markdownEnumDescriptions": [ - "Definition of AWS::RefactorSpaces::Route Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-route.html)" + "Resource type definition for AWS::AmazonMQ::Broker \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html)" ] }, "Properties": { - "$ref": "resources/aws-refactorspaces-route.json" + "$ref": "resources/aws-amazonmq-broker.json" } }, "required": [ @@ -10996,9 +11100,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Connection": { + "AWS_DataSync_LocationFSxOpenZFS": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Connection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html)", + "markdownDescription": "Resource schema for AWS::DataSync::LocationFSxOpenZFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxopenzfs.html)", "allOf": [ { "type": "object", @@ -11006,14 +11110,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Connection" + "AWS::DataSync::LocationFSxOpenZFS" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Connection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html)" + "Resource schema for AWS::DataSync::LocationFSxOpenZFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxopenzfs.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-connection.json" + "$ref": "resources/aws-datasync-locationfsxopenzfs.json" } }, "required": [ @@ -11027,9 +11131,9 @@ ], "additionalProperties": false }, - "AWS_EC2_GatewayRouteTableAssociation": { + "AWS_Glue_Workflow": { "type": "object", - "markdownDescription": "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. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html)", "allOf": [ { "type": "object", @@ -11037,19 +11141,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::GatewayRouteTableAssociation" + "AWS::Glue::Workflow" ], "markdownEnumDescriptions": [ - "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. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html)" + "Resource Type definition for AWS::Glue::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-gatewayroutetableassociation.json" + "$ref": "resources/aws-glue-workflow.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -11058,9 +11161,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Policy": { + "AWS_Oam_Link": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::Policy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html)", + "markdownDescription": "Definition of AWS::Oam::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)", "allOf": [ { "type": "object", @@ -11068,14 +11171,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Policy" + "AWS::Oam::Link" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::Policy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html)" + "Definition of AWS::Oam::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-policy.json" + "$ref": "resources/aws-oam-link.json" } }, "required": [ @@ -11089,9 +11192,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Database": { + "AWS_MediaConnect_Gateway": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-gateway.html)", "allOf": [ { "type": "object", @@ -11099,14 +11202,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Database" + "AWS::MediaConnect::Gateway" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html)" + "Resource schema for AWS::MediaConnect::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-gateway.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-database.json" + "$ref": "resources/aws-mediaconnect-gateway.json" } }, "required": [ @@ -11120,9 +11223,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_FirewallRuleGroupAssociation": { + "AWS_WAFRegional_GeoMatchSet": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::FirewallRuleGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroupassociation.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::GeoMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html)", "allOf": [ { "type": "object", @@ -11130,14 +11233,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::FirewallRuleGroupAssociation" + "AWS::WAFRegional::GeoMatchSet" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::FirewallRuleGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroupassociation.html)" + "Resource Type definition for AWS::WAFRegional::GeoMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-firewallrulegroupassociation.json" + "$ref": "resources/aws-wafregional-geomatchset.json" } }, "required": [ @@ -11151,9 +11254,9 @@ ], "additionalProperties": false }, - "AWS_Organizations_ResourcePolicy": { + "AWS_S3Files_AccessPoint": { "type": "object", - "markdownDescription": "You can use AWS::Organizations::ResourcePolicy to delegate policy management for AWS Organizations to specified member accounts to perform policy actions that are by default available only to the management account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-resourcepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::S3Files::AccessPoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-accesspoint.html)", "allOf": [ { "type": "object", @@ -11161,14 +11264,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Organizations::ResourcePolicy" + "AWS::S3Files::AccessPoint" ], "markdownEnumDescriptions": [ - "You can use AWS::Organizations::ResourcePolicy to delegate policy management for AWS Organizations to specified member accounts to perform policy actions that are by default available only to the management account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-resourcepolicy.html)" + "Resource Type definition for AWS::S3Files::AccessPoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-accesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-organizations-resourcepolicy.json" + "$ref": "resources/aws-s3files-accesspoint.json" } }, "required": [ @@ -11182,9 +11285,9 @@ ], "additionalProperties": false }, - "AWS_WorkspacesInstances_Volume": { + "AWS_GameLift_Alias": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WorkspacesInstances::Volume - Manages WorkSpaces Volume resources \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volume.html)", + "markdownDescription": "The AWS::GameLift::Alias resource creates an alias for an Amazon GameLift (GameLift) fleet destination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html)", "allOf": [ { "type": "object", @@ -11192,14 +11295,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkspacesInstances::Volume" + "AWS::GameLift::Alias" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WorkspacesInstances::Volume - Manages WorkSpaces Volume resources \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volume.html)" + "The AWS::GameLift::Alias resource creates an alias for an Amazon GameLift (GameLift) fleet destination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesinstances-volume.json" + "$ref": "resources/aws-gamelift-alias.json" } }, "required": [ @@ -11213,9 +11316,9 @@ ], "additionalProperties": false }, - "AWS_Lex_BotVersion": { + "AWS_EC2_IPAMResourceDiscovery": { "type": "object", - "markdownDescription": "A version is a numbered snapshot of your work that you can publish for use in different parts of your workflow, such as development, beta deployment, and production. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botversion.html)", + "markdownDescription": "Resource Schema of AWS::EC2::IPAMResourceDiscovery Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscovery.html)", "allOf": [ { "type": "object", @@ -11223,19 +11326,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Lex::BotVersion" + "AWS::EC2::IPAMResourceDiscovery" ], "markdownEnumDescriptions": [ - "A version is a numbered snapshot of your work that you can publish for use in different parts of your workflow, such as development, beta deployment, and production. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botversion.html)" + "Resource Schema of AWS::EC2::IPAMResourceDiscovery Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscovery.html)" ] }, "Properties": { - "$ref": "resources/aws-lex-botversion.json" + "$ref": "resources/aws-ec2-ipamresourcediscovery.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -11244,9 +11346,9 @@ ], "additionalProperties": false }, - "AWS_EventSchemas_Discoverer": { + "AWS_MemoryDB_Cluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EventSchemas::Discoverer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html)", + "markdownDescription": "The AWS::MemoryDB::Cluster resource creates an Amazon MemoryDB Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html)", "allOf": [ { "type": "object", @@ -11254,14 +11356,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EventSchemas::Discoverer" + "AWS::MemoryDB::Cluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EventSchemas::Discoverer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html)" + "The AWS::MemoryDB::Cluster resource creates an Amazon MemoryDB Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-eventschemas-discoverer.json" + "$ref": "resources/aws-memorydb-cluster.json" } }, "required": [ @@ -11275,9 +11377,9 @@ ], "additionalProperties": false }, - "AWS_APS_Workspace": { + "AWS_Transfer_WebApp": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::APS::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html)", + "markdownDescription": "Resource Type definition for AWS::Transfer::WebApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-webapp.html)", "allOf": [ { "type": "object", @@ -11285,18 +11387,19 @@ "Type": { "type": "string", "enum": [ - "AWS::APS::Workspace" + "AWS::Transfer::WebApp" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::APS::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html)" + "Resource Type definition for AWS::Transfer::WebApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-webapp.html)" ] }, "Properties": { - "$ref": "resources/aws-aps-workspace.json" + "$ref": "resources/aws-transfer-webapp.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -11305,9 +11408,9 @@ ], "additionalProperties": false }, - "AWS_ECS_Service": { + "AWS_MediaLive_CloudWatchAlarmTemplate": { "type": "object", - "markdownDescription": "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. \n On June 12, 2025, Amazon ECS launched support for updating capacity provider configuration for ECS services. With this launch, ECS also aligned the CFN update behavior for ``CapacityProviderStrategy`` parameter with the standard practice. For more information, see [adds support for updating capacity provider configuration for ECS services](https://docs.aws.amazon.com/about-aws/whats-new/2025/05/amazon-ecs-capacity-provider-configuration-ecs/). Previously ECS ignored the ``CapacityProviderStrategy`` property if it was set to an empty list for example, ``[]`` in CFN, because updating capacity provider configuration was not supported. Now, with support for capacity provider updates, customers can remove capacity providers from a service by passing an empty list. When you specify an empty list (``[]``) for the ``CapacityProviderStrategy`` property in your CFN template, ECS will remove any capacity providers associated with the service, as follows:\n + For services created with a capacity provider strategy after the launch:\n + If there's a cluster default strategy set, the service will revert to using that default strategy.\n + If no cluster default strategy exists, you will receive the following error:\n No launch type to fall back to for empty capacity provider strategy. Your service was not created with a launch type.\n \n + For services created with a capacity provider strategy prior to the launch:\n + If ``CapacityProviderStrategy`` had ``FARGATE_SPOT`` or ``FARGATE`` capacity providers, the launch type will be updated to ``FARGATE`` and the capacity provider will be removed.\n + If the strategy included Auto Scaling group capacity providers, the service will revert to EC2 launch type, and the Auto Scaling group capacity providers will not be used.\n \n \n Recommended Actions\n If you are currently using ``CapacityProviderStrategy: []`` in your CFN templates, you should take one of the following actions:\n + If you do not intend to update the Capacity Provider Strategy:\n + Remove the ``CapacityProviderStrategy`` property entirely from your CFN template\n + Alternatively, use ``!Ref ::NoValue`` for the ``CapacityProviderStrategy`` property in your template\n \n + If you intend to maintain or update the Capacity Provider Strategy, specify the actual Capacity Provider Strategy for the service in your CFN template.\n \n If your CFN template had an empty list ([]) for ``CapacityProviderStrategy`` prior to the aforementioned launch on June 12, and you are using the same template with ``CapacityProviderStrategy: []``, you might encounter the following error:\n Invalid request provided: When switching from launch type to capacity provider strategy on an existing service, or making a change to a capacity provider strategy on a service that is already using one, you must force a new deployment. (Service: Ecs, Status Code: 400, Request ID: xxx) (SDK Attempt Count: 1)\" (RequestToken: xxx HandlerErrorCode: InvalidRequest) \n Note that CFN automatically initiates a new deployment when it detects a parameter change, but customers cannot choose to force a deployment through CFN. This is an invalid input scenario that requires one of the remediation actions listed above.\n If you are experiencing active production issues related to this change, contact AWS Support or your Technical Account Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html)", + "markdownDescription": "Definition of AWS::MediaLive::CloudWatchAlarmTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplate.html)", "allOf": [ { "type": "object", @@ -11315,18 +11418,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ECS::Service" + "AWS::MediaLive::CloudWatchAlarmTemplate" ], "markdownEnumDescriptions": [ - "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. \n On June 12, 2025, Amazon ECS launched support for updating capacity provider configuration for ECS services. With this launch, ECS also aligned the CFN update behavior for ``CapacityProviderStrategy`` parameter with the standard practice. For more information, see [adds support for updating capacity provider configuration for ECS services](https://docs.aws.amazon.com/about-aws/whats-new/2025/05/amazon-ecs-capacity-provider-configuration-ecs/). Previously ECS ignored the ``CapacityProviderStrategy`` property if it was set to an empty list for example, ``[]`` in CFN, because updating capacity provider configuration was not supported. Now, with support for capacity provider updates, customers can remove capacity providers from a service by passing an empty list. When you specify an empty list (``[]``) for the ``CapacityProviderStrategy`` property in your CFN template, ECS will remove any capacity providers associated with the service, as follows:\n + For services created with a capacity provider strategy after the launch:\n + If there's a cluster default strategy set, the service will revert to using that default strategy.\n + If no cluster default strategy exists, you will receive the following error:\n No launch type to fall back to for empty capacity provider strategy. Your service was not created with a launch type.\n \n + For services created with a capacity provider strategy prior to the launch:\n + If ``CapacityProviderStrategy`` had ``FARGATE_SPOT`` or ``FARGATE`` capacity providers, the launch type will be updated to ``FARGATE`` and the capacity provider will be removed.\n + If the strategy included Auto Scaling group capacity providers, the service will revert to EC2 launch type, and the Auto Scaling group capacity providers will not be used.\n \n \n Recommended Actions\n If you are currently using ``CapacityProviderStrategy: []`` in your CFN templates, you should take one of the following actions:\n + If you do not intend to update the Capacity Provider Strategy:\n + Remove the ``CapacityProviderStrategy`` property entirely from your CFN template\n + Alternatively, use ``!Ref ::NoValue`` for the ``CapacityProviderStrategy`` property in your template\n \n + If you intend to maintain or update the Capacity Provider Strategy, specify the actual Capacity Provider Strategy for the service in your CFN template.\n \n If your CFN template had an empty list ([]) for ``CapacityProviderStrategy`` prior to the aforementioned launch on June 12, and you are using the same template with ``CapacityProviderStrategy: []``, you might encounter the following error:\n Invalid request provided: When switching from launch type to capacity provider strategy on an existing service, or making a change to a capacity provider strategy on a service that is already using one, you must force a new deployment. (Service: Ecs, Status Code: 400, Request ID: xxx) (SDK Attempt Count: 1)\" (RequestToken: xxx HandlerErrorCode: InvalidRequest) \n Note that CFN automatically initiates a new deployment when it detects a parameter change, but customers cannot choose to force a deployment through CFN. This is an invalid input scenario that requires one of the remediation actions listed above.\n If you are experiencing active production issues related to this change, contact AWS Support or your Technical Account Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html)" + "Definition of AWS::MediaLive::CloudWatchAlarmTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-ecs-service.json" + "$ref": "resources/aws-medialive-cloudwatchalarmtemplate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -11335,9 +11439,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Api": { + "AWS_M2_Environment": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::Api`` resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html)", + "markdownDescription": "Represents a runtime environment that can run migrated mainframe applications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-environment.html)", "allOf": [ { "type": "object", @@ -11345,18 +11449,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Api" + "AWS::M2::Environment" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::Api`` resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html)" + "Represents a runtime environment that can run migrated mainframe applications. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-api.json" + "$ref": "resources/aws-m2-environment.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -11365,9 +11470,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_CoreNetwork": { + "AWS_OpenSearchService_Domain": { "type": "object", - "markdownDescription": "AWS::NetworkManager::CoreNetwork Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-corenetwork.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html)", "allOf": [ { "type": "object", @@ -11375,19 +11480,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::CoreNetwork" + "AWS::OpenSearchService::Domain" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::CoreNetwork Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-corenetwork.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-corenetwork.json" + "$ref": "resources/aws-opensearchservice-domain.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -11396,9 +11500,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_TransitGatewayPeering": { + "AWS_MediaLive_ChannelPlacementGroup": { "type": "object", - "markdownDescription": "AWS::NetworkManager::TransitGatewayPeering Resoruce Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewaypeering.html)", + "markdownDescription": "Definition of AWS::MediaLive::ChannelPlacementGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channelplacementgroup.html)", "allOf": [ { "type": "object", @@ -11406,19 +11510,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::TransitGatewayPeering" + "AWS::MediaLive::ChannelPlacementGroup" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::TransitGatewayPeering Resoruce Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewaypeering.html)" + "Definition of AWS::MediaLive::ChannelPlacementGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channelplacementgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-transitgatewaypeering.json" + "$ref": "resources/aws-medialive-channelplacementgroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -11427,9 +11530,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_PartnerAccount": { + "AWS_Billing_BillingView": { "type": "object", - "markdownDescription": "Create and manage partner account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html)", + "markdownDescription": "A billing view is a container of cost & usage metadata. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billing-billingview.html)", "allOf": [ { "type": "object", @@ -11437,18 +11540,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::PartnerAccount" + "AWS::Billing::BillingView" ], "markdownEnumDescriptions": [ - "Create and manage partner account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html)" + "A billing view is a container of cost & usage metadata. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billing-billingview.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-partneraccount.json" + "$ref": "resources/aws-billing-billingview.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -11457,9 +11561,9 @@ ], "additionalProperties": false }, - "AWS_QLDB_Stream": { + "AWS_DMS_Certificate": { "type": "object", - "markdownDescription": "Resource schema for AWS::QLDB::Stream. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html)", + "markdownDescription": "Resource Type definition for AWS::DMS::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html)", "allOf": [ { "type": "object", @@ -11467,19 +11571,18 @@ "Type": { "type": "string", "enum": [ - "AWS::QLDB::Stream" + "AWS::DMS::Certificate" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::QLDB::Stream. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html)" + "Resource Type definition for AWS::DMS::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html)" ] }, "Properties": { - "$ref": "resources/aws-qldb-stream.json" + "$ref": "resources/aws-dms-certificate.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -11488,9 +11591,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_Cluster": { + "AWS_MediaPackageV2_ChannelPolicy": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html)", + "markdownDescription": "

Represents a resource-based policy that allows or denies access to a channel.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelpolicy.html)", "allOf": [ { "type": "object", @@ -11498,14 +11601,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::Cluster" + "AWS::MediaPackageV2::ChannelPolicy" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html)" + "

Represents a resource-based policy that allows or denies access to a channel.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-cluster.json" + "$ref": "resources/aws-mediapackagev2-channelpolicy.json" } }, "required": [ @@ -11519,9 +11622,9 @@ ], "additionalProperties": false }, - "AWS_XRay_SamplingRule": { + "AWS_ObservabilityAdmin_TelemetryPipelines": { "type": "object", - "markdownDescription": "This schema provides construct and validation rules for AWS-XRay SamplingRule resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html)", + "markdownDescription": "Resource Type definition for AWS::ObservabilityAdmin::TelemetryPipelines \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetrypipelines.html)", "allOf": [ { "type": "object", @@ -11529,18 +11632,19 @@ "Type": { "type": "string", "enum": [ - "AWS::XRay::SamplingRule" + "AWS::ObservabilityAdmin::TelemetryPipelines" ], "markdownEnumDescriptions": [ - "This schema provides construct and validation rules for AWS-XRay SamplingRule resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html)" + "Resource Type definition for AWS::ObservabilityAdmin::TelemetryPipelines \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetrypipelines.html)" ] }, "Properties": { - "$ref": "resources/aws-xray-samplingrule.json" + "$ref": "resources/aws-observabilityadmin-telemetrypipelines.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -11549,9 +11653,9 @@ ], "additionalProperties": false }, - "AWS_IAM_OIDCProvider": { + "AWS_ResourceExplorer2_DefaultViewAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::OIDCProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html)", + "markdownDescription": "Definition of AWS::ResourceExplorer2::DefaultViewAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-defaultviewassociation.html)", "allOf": [ { "type": "object", @@ -11559,18 +11663,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::OIDCProvider" + "AWS::ResourceExplorer2::DefaultViewAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::OIDCProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html)" + "Definition of AWS::ResourceExplorer2::DefaultViewAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-defaultviewassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-oidcprovider.json" + "$ref": "resources/aws-resourceexplorer2-defaultviewassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -11579,9 +11684,9 @@ ], "additionalProperties": false }, - "AWS_CloudWatch_CompositeAlarm": { + "AWS_ARCZonalShift_AutoshiftObserverNotificationStatus": { "type": "object", - "markdownDescription": "The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html)", + "markdownDescription": "Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-autoshiftobservernotificationstatus.html)", "allOf": [ { "type": "object", @@ -11589,14 +11694,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudWatch::CompositeAlarm" + "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" ], "markdownEnumDescriptions": [ - "The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html)" + "Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-autoshiftobservernotificationstatus.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudwatch-compositealarm.json" + "$ref": "resources/aws-arczonalshift-autoshiftobservernotificationstatus.json" } }, "required": [ @@ -11610,9 +11715,9 @@ ], "additionalProperties": false }, - "AWS_SES_ReceiptFilter": { + "AWS_RedshiftServerless_Workgroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::ReceiptFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html)", + "markdownDescription": "Definition of AWS::RedshiftServerless::Workgroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html)", "allOf": [ { "type": "object", @@ -11620,14 +11725,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::ReceiptFilter" + "AWS::RedshiftServerless::Workgroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::ReceiptFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html)" + "Definition of AWS::RedshiftServerless::Workgroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-receiptfilter.json" + "$ref": "resources/aws-redshiftserverless-workgroup.json" } }, "required": [ @@ -11641,9 +11746,9 @@ ], "additionalProperties": false }, - "AWS_Connect_RoutingProfile": { + "AWS_WorkSpaces_ConnectionAlias": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::RoutingProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html)", + "markdownDescription": "Resource Type definition for AWS::WorkSpaces::ConnectionAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-connectionalias.html)", "allOf": [ { "type": "object", @@ -11651,14 +11756,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::RoutingProfile" + "AWS::WorkSpaces::ConnectionAlias" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::RoutingProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html)" + "Resource Type definition for AWS::WorkSpaces::ConnectionAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-connectionalias.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-routingprofile.json" + "$ref": "resources/aws-workspaces-connectionalias.json" } }, "required": [ @@ -11672,9 +11777,9 @@ ], "additionalProperties": false }, - "AWS_FMS_Policy": { + "AWS_Config_OrganizationConformancePack": { "type": "object", - "markdownDescription": "Creates an AWS Firewall Manager policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html)", + "markdownDescription": "Resource Type definition for AWS::Config::OrganizationConformancePack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html)", "allOf": [ { "type": "object", @@ -11682,14 +11787,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FMS::Policy" + "AWS::Config::OrganizationConformancePack" ], "markdownEnumDescriptions": [ - "Creates an AWS Firewall Manager policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html)" + "Resource Type definition for AWS::Config::OrganizationConformancePack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html)" ] }, "Properties": { - "$ref": "resources/aws-fms-policy.json" + "$ref": "resources/aws-config-organizationconformancepack.json" } }, "required": [ @@ -11703,9 +11808,9 @@ ], "additionalProperties": false }, - "AWS_Oam_Link": { + "AWS_Redshift_ClusterSecurityGroupIngress": { "type": "object", - "markdownDescription": "Definition of AWS::Oam::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)", + "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html)", "allOf": [ { "type": "object", @@ -11713,14 +11818,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Oam::Link" + "AWS::Redshift::ClusterSecurityGroupIngress" ], "markdownEnumDescriptions": [ - "Definition of AWS::Oam::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)" + "Resource Type definition for AWS::Redshift::ClusterSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html)" ] }, "Properties": { - "$ref": "resources/aws-oam-link.json" + "$ref": "resources/aws-redshift-clustersecuritygroupingress.json" } }, "required": [ @@ -11734,9 +11839,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_ResponseHeadersPolicy": { + "AWS_SSM_MaintenanceWindow": { "type": "object", - "markdownDescription": "A response headers policy.\n A response headers policy contains information about a set of HTTP response headers.\n After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.\n For more information, see [Adding or removing HTTP headers in CloudFront responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html)", + "markdownDescription": "Resource type definition for AWS::SSM::MaintenanceWindow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html)", "allOf": [ { "type": "object", @@ -11744,14 +11849,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::ResponseHeadersPolicy" + "AWS::SSM::MaintenanceWindow" ], "markdownEnumDescriptions": [ - "A response headers policy.\n A response headers policy contains information about a set of HTTP response headers.\n After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.\n For more information, see [Adding or removing HTTP headers in CloudFront responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html)" + "Resource type definition for AWS::SSM::MaintenanceWindow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-responseheaderspolicy.json" + "$ref": "resources/aws-ssm-maintenancewindow.json" } }, "required": [ @@ -11765,9 +11870,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_LoadBalancerTlsCertificate": { + "AWS_EC2_TransitGatewayMulticastGroupMember": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancertlscertificate.html)", + "markdownDescription": "The AWS::EC2::TransitGatewayMulticastGroupMember registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html)", "allOf": [ { "type": "object", @@ -11775,14 +11880,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::LoadBalancerTlsCertificate" + "AWS::EC2::TransitGatewayMulticastGroupMember" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancertlscertificate.html)" + "The AWS::EC2::TransitGatewayMulticastGroupMember registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-loadbalancertlscertificate.json" + "$ref": "resources/aws-ec2-transitgatewaymulticastgroupmember.json" } }, "required": [ @@ -11796,9 +11901,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_QuickResponse": { + "AWS_DataBrew_Project": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::QuickResponse Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-quickresponse.html)", + "markdownDescription": "Resource schema for AWS::DataBrew::Project. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html)", "allOf": [ { "type": "object", @@ -11806,14 +11911,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::QuickResponse" + "AWS::DataBrew::Project" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::QuickResponse Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-quickresponse.html)" + "Resource schema for AWS::DataBrew::Project. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-quickresponse.json" + "$ref": "resources/aws-databrew-project.json" } }, "required": [ @@ -11827,9 +11932,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerIngressPoint": { + "AWS_Cases_Domain": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerIngressPoint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageringresspoint.html)", + "markdownDescription": "A domain, which is a container for all case data, such as cases, fields, templates and layouts. Each Amazon Connect instance can be associated with only one Cases domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-domain.html)", "allOf": [ { "type": "object", @@ -11837,14 +11942,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerIngressPoint" + "AWS::Cases::Domain" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerIngressPoint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageringresspoint.html)" + "A domain, which is a container for all case data, such as cases, fields, templates and layouts. Each Amazon Connect instance can be associated with only one Cases domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanageringresspoint.json" + "$ref": "resources/aws-cases-domain.json" } }, "required": [ @@ -11858,9 +11963,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_UserProfile": { + "AWS_QBusiness_DataAccessor": { "type": "object", - "markdownDescription": "A user profile represents Amazon DataZone users. Amazon DataZone supports both IAM roles and SSO identities to interact with the Amazon DataZone Management Console and the data portal for different purposes. Domain administrators use IAM roles to perform the initial administrative domain-related work in the Amazon DataZone Management Console, including creating new Amazon DataZone domains, configuring metadata form types, and implementing policies. Data workers use their SSO corporate identities via Identity Center to log into the Amazon DataZone Data Portal and access projects where they have memberships. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-userprofile.html)", + "markdownDescription": "Definition of AWS::QBusiness::DataAccessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-dataaccessor.html)", "allOf": [ { "type": "object", @@ -11868,14 +11973,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::UserProfile" + "AWS::QBusiness::DataAccessor" ], "markdownEnumDescriptions": [ - "A user profile represents Amazon DataZone users. Amazon DataZone supports both IAM roles and SSO identities to interact with the Amazon DataZone Management Console and the data portal for different purposes. Domain administrators use IAM roles to perform the initial administrative domain-related work in the Amazon DataZone Management Console, including creating new Amazon DataZone domains, configuring metadata form types, and implementing policies. Data workers use their SSO corporate identities via Identity Center to log into the Amazon DataZone Data Portal and access projects where they have memberships. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-userprofile.html)" + "Definition of AWS::QBusiness::DataAccessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-dataaccessor.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-userprofile.json" + "$ref": "resources/aws-qbusiness-dataaccessor.json" } }, "required": [ @@ -11889,9 +11994,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_APNSSandboxChannel": { + "AWS_CodeDeploy_DeploymentConfig": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnssandboxchannel.html)", + "markdownDescription": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html)", "allOf": [ { "type": "object", @@ -11899,19 +12004,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::APNSSandboxChannel" + "AWS::CodeDeploy::DeploymentConfig" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::APNSSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnssandboxchannel.html)" + "Resource Type definition for AWS::CodeDeploy::DeploymentConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-apnssandboxchannel.json" + "$ref": "resources/aws-codedeploy-deploymentconfig.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -11920,9 +12024,9 @@ ], "additionalProperties": false }, - "AWS_KMS_ReplicaKey": { + "AWS_WAFv2_RuleGroup": { "type": "object", - "markdownDescription": "The AWS::KMS::ReplicaKey resource specifies a multi-region replica AWS KMS key in AWS Key Management Service (AWS KMS). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)", + "markdownDescription": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)", "allOf": [ { "type": "object", @@ -11930,14 +12034,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KMS::ReplicaKey" + "AWS::WAFv2::RuleGroup" ], "markdownEnumDescriptions": [ - "The AWS::KMS::ReplicaKey resource specifies a multi-region replica AWS KMS key in AWS Key Management Service (AWS KMS). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)" + "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-kms-replicakey.json" + "$ref": "resources/aws-wafv2-rulegroup.json" } }, "required": [ @@ -11951,9 +12055,9 @@ ], "additionalProperties": false }, - "AWS_SSO_Application": { + "AWS_ResilienceHub_ResiliencyPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for Identity Center (SSO) Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-application.html)", + "markdownDescription": "Resource Type Definition for Resiliency Policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-resiliencypolicy.html)", "allOf": [ { "type": "object", @@ -11961,14 +12065,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSO::Application" + "AWS::ResilienceHub::ResiliencyPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for Identity Center (SSO) Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-application.html)" + "Resource Type Definition for Resiliency Policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-resiliencypolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-sso-application.json" + "$ref": "resources/aws-resiliencehub-resiliencypolicy.json" } }, "required": [ @@ -11982,9 +12086,9 @@ ], "additionalProperties": false }, - "AWS_ECS_PrimaryTaskSet": { + "AWS_DataBrew_Job": { "type": "object", - "markdownDescription": "A pseudo-resource that manages which of your ECS task sets is primary. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html)", + "markdownDescription": "Resource schema for AWS::DataBrew::Job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html)", "allOf": [ { "type": "object", @@ -11992,14 +12096,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ECS::PrimaryTaskSet" + "AWS::DataBrew::Job" ], "markdownEnumDescriptions": [ - "A pseudo-resource that manages which of your ECS task sets is primary. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html)" + "Resource schema for AWS::DataBrew::Job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html)" ] }, "Properties": { - "$ref": "resources/aws-ecs-primarytaskset.json" + "$ref": "resources/aws-databrew-job.json" } }, "required": [ @@ -12013,9 +12117,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_AccessLogSubscription": { + "AWS_AppSync_GraphQLApi": { "type": "object", - "markdownDescription": "Enables access logs to be sent to Amazon CloudWatch, Amazon S3, and Amazon Kinesis Data Firehose. The service network owner can use the access logs to audit the services in the network. The service network owner will only see access logs from clients and services that are associated with their service network. Access log entries represent traffic originated from VPCs associated with that network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-accesslogsubscription.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::GraphQLApi \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html)", "allOf": [ { "type": "object", @@ -12023,14 +12127,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::AccessLogSubscription" + "AWS::AppSync::GraphQLApi" ], "markdownEnumDescriptions": [ - "Enables access logs to be sent to Amazon CloudWatch, Amazon S3, and Amazon Kinesis Data Firehose. The service network owner can use the access logs to audit the services in the network. The service network owner will only see access logs from clients and services that are associated with their service network. Access log entries represent traffic originated from VPCs associated with that network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-accesslogsubscription.html)" + "Resource Type definition for AWS::AppSync::GraphQLApi \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-accesslogsubscription.json" + "$ref": "resources/aws-appsync-graphqlapi.json" } }, "required": [ @@ -12044,9 +12148,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_TransitGatewayRouteTableAttachment": { + "AWS_CodeDeploy_Application": { "type": "object", - "markdownDescription": "AWS::NetworkManager::TransitGatewayRouteTableAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayroutetableattachment.html)", + "markdownDescription": "The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)", "allOf": [ { "type": "object", @@ -12054,19 +12158,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::TransitGatewayRouteTableAttachment" + "AWS::CodeDeploy::Application" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::TransitGatewayRouteTableAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayroutetableattachment.html)" + "The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-transitgatewayroutetableattachment.json" + "$ref": "resources/aws-codedeploy-application.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -12075,9 +12178,9 @@ ], "additionalProperties": false }, - "AWS_APS_RuleGroupsNamespace": { + "AWS_PCAConnectorAD_Connector": { "type": "object", - "markdownDescription": "RuleGroupsNamespace schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html)", + "markdownDescription": "Represents a Connector that connects AWS PrivateCA and your directory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-connector.html)", "allOf": [ { "type": "object", @@ -12085,14 +12188,14 @@ "Type": { "type": "string", "enum": [ - "AWS::APS::RuleGroupsNamespace" + "AWS::PCAConnectorAD::Connector" ], "markdownEnumDescriptions": [ - "RuleGroupsNamespace schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html)" + "Represents a Connector that connects AWS PrivateCA and your directory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-connector.html)" ] }, "Properties": { - "$ref": "resources/aws-aps-rulegroupsnamespace.json" + "$ref": "resources/aws-pcaconnectorad-connector.json" } }, "required": [ @@ -12106,9 +12209,9 @@ ], "additionalProperties": false }, - "AWS_SQS_QueuePolicy": { + "AWS_Transfer_Server": { "type": "object", - "markdownDescription": "The ``AWS::SQS::QueuePolicy`` type applies a policy to SQS queues. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html)", + "markdownDescription": "Definition of AWS::Transfer::Server Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html)", "allOf": [ { "type": "object", @@ -12116,19 +12219,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SQS::QueuePolicy" + "AWS::Transfer::Server" ], "markdownEnumDescriptions": [ - "The ``AWS::SQS::QueuePolicy`` type applies a policy to SQS queues. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html)" + "Definition of AWS::Transfer::Server Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html)" ] }, "Properties": { - "$ref": "resources/aws-sqs-queuepolicy.json" + "$ref": "resources/aws-transfer-server.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -12137,9 +12239,9 @@ ], "additionalProperties": false }, - "AWS_RedshiftServerless_Snapshot": { + "AWS_GuardDuty_PublishingDestination": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::RedshiftServerless::Snapshot Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-snapshot.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::PublishingDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-publishingdestination.html)", "allOf": [ { "type": "object", @@ -12147,14 +12249,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RedshiftServerless::Snapshot" + "AWS::GuardDuty::PublishingDestination" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::RedshiftServerless::Snapshot Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-snapshot.html)" + "Resource Type definition for AWS::GuardDuty::PublishingDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-publishingdestination.html)" ] }, "Properties": { - "$ref": "resources/aws-redshiftserverless-snapshot.json" + "$ref": "resources/aws-guardduty-publishingdestination.json" } }, "required": [ @@ -12168,9 +12270,9 @@ ], "additionalProperties": false }, - "AWS_Panorama_Package": { + "AWS_MediaConnect_BridgeSource": { "type": "object", - "markdownDescription": "Creates a package and storage location in an Amazon S3 access point. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::BridgeSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgesource.html)", "allOf": [ { "type": "object", @@ -12178,14 +12280,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Panorama::Package" + "AWS::MediaConnect::BridgeSource" ], "markdownEnumDescriptions": [ - "Creates a package and storage location in an Amazon S3 access point. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html)" + "Resource schema for AWS::MediaConnect::BridgeSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgesource.html)" ] }, "Properties": { - "$ref": "resources/aws-panorama-package.json" + "$ref": "resources/aws-mediaconnect-bridgesource.json" } }, "required": [ @@ -12199,9 +12301,9 @@ ], "additionalProperties": false }, - "AWS_Neptune_EventSubscription": { + "AWS_ARCRegionSwitch_Plan": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Neptune::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-eventsubscription.html)", + "markdownDescription": "Represents a plan that specifies Regions, IAM roles, and workflows of logic required to perform the desired change to your multi-Region application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arcregionswitch-plan.html)", "allOf": [ { "type": "object", @@ -12209,18 +12311,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Neptune::EventSubscription" + "AWS::ARCRegionSwitch::Plan" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Neptune::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-eventsubscription.html)" + "Represents a plan that specifies Regions, IAM roles, and workflows of logic required to perform the desired change to your multi-Region application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arcregionswitch-plan.html)" ] }, "Properties": { - "$ref": "resources/aws-neptune-eventsubscription.json" + "$ref": "resources/aws-arcregionswitch-plan.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -12229,9 +12332,9 @@ ], "additionalProperties": false }, - "AWS_PCS_Queue": { + "AWS_Events_Connection": { "type": "object", - "markdownDescription": "AWS::PCS::Queue resource creates an AWS PCS queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html)", + "markdownDescription": "Resource Type definition for AWS::Events::Connection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html)", "allOf": [ { "type": "object", @@ -12239,19 +12342,18 @@ "Type": { "type": "string", "enum": [ - "AWS::PCS::Queue" + "AWS::Events::Connection" ], "markdownEnumDescriptions": [ - "AWS::PCS::Queue resource creates an AWS PCS queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html)" + "Resource Type definition for AWS::Events::Connection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html)" ] }, "Properties": { - "$ref": "resources/aws-pcs-queue.json" + "$ref": "resources/aws-events-connection.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -12260,9 +12362,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_InferenceExperiment": { + "AWS_SES_ReceiptRuleSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::InferenceExperiment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferenceexperiment.html)", + "markdownDescription": "Resource Type definition for AWS::SES::ReceiptRuleSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html)", "allOf": [ { "type": "object", @@ -12270,19 +12372,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::InferenceExperiment" + "AWS::SES::ReceiptRuleSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::InferenceExperiment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferenceexperiment.html)" + "Resource Type definition for AWS::SES::ReceiptRuleSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-inferenceexperiment.json" + "$ref": "resources/aws-ses-receiptruleset.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -12291,9 +12392,9 @@ ], "additionalProperties": false }, - "AWS_XRay_Group": { + "AWS_Redshift_EndpointAccess": { "type": "object", - "markdownDescription": "This schema provides construct and validation rules for AWS-XRay Group resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-group.html)", + "markdownDescription": "Resource schema for a Redshift-managed VPC endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html)", "allOf": [ { "type": "object", @@ -12301,14 +12402,14 @@ "Type": { "type": "string", "enum": [ - "AWS::XRay::Group" + "AWS::Redshift::EndpointAccess" ], "markdownEnumDescriptions": [ - "This schema provides construct and validation rules for AWS-XRay Group resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-group.html)" + "Resource schema for a Redshift-managed VPC endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html)" ] }, "Properties": { - "$ref": "resources/aws-xray-group.json" + "$ref": "resources/aws-redshift-endpointaccess.json" } }, "required": [ @@ -12322,9 +12423,9 @@ ], "additionalProperties": false }, - "AWS_SupportApp_SlackChannelConfiguration": { + "AWS_BCMDataExports_Export": { "type": "object", - "markdownDescription": "An AWS Support App resource that creates, updates, lists and deletes Slack channel configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html)", + "markdownDescription": "Definition of AWS::BCMDataExports::Export Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html)", "allOf": [ { "type": "object", @@ -12332,14 +12433,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SupportApp::SlackChannelConfiguration" + "AWS::BCMDataExports::Export" ], "markdownEnumDescriptions": [ - "An AWS Support App resource that creates, updates, lists and deletes Slack channel configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html)" + "Definition of AWS::BCMDataExports::Export Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html)" ] }, "Properties": { - "$ref": "resources/aws-supportapp-slackchannelconfiguration.json" + "$ref": "resources/aws-bcmdataexports-export.json" } }, "required": [ @@ -12353,9 +12454,9 @@ ], "additionalProperties": false }, - "AWS_VerifiedPermissions_PolicyTemplate": { + "AWS_SecretsManager_RotationSchedule": { "type": "object", - "markdownDescription": "Definition of AWS::VerifiedPermissions::PolicyTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policytemplate.html)", + "markdownDescription": "Resource Type definition for AWS::SecretsManager::RotationSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html)", "allOf": [ { "type": "object", @@ -12363,14 +12464,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VerifiedPermissions::PolicyTemplate" + "AWS::SecretsManager::RotationSchedule" ], "markdownEnumDescriptions": [ - "Definition of AWS::VerifiedPermissions::PolicyTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policytemplate.html)" + "Resource Type definition for AWS::SecretsManager::RotationSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html)" ] }, "Properties": { - "$ref": "resources/aws-verifiedpermissions-policytemplate.json" + "$ref": "resources/aws-secretsmanager-rotationschedule.json" } }, "required": [ @@ -12384,9 +12485,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverEndpoint": { + "AWS_Route53Resolver_ResolverConfig": { "type": "object", - "markdownDescription": "Resource type definition for AWS::Route53Resolver::ResolverEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html)", "allOf": [ { "type": "object", @@ -12394,14 +12495,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverEndpoint" + "AWS::Route53Resolver::ResolverConfig" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::Route53Resolver::ResolverEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html)" + "Resource schema for AWS::Route53Resolver::ResolverConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverendpoint.json" + "$ref": "resources/aws-route53resolver-resolverconfig.json" } }, "required": [ @@ -12415,9 +12516,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_InstanceSnapshot": { + "AWS_EC2_VPCEndpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::InstanceSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instancesnapshot.html)", + "markdownDescription": "Specifies a VPC endpoint. A VPC endpoint provides a private connection between your VPC and an endpoint service. You can use an endpoint service provided by AWS, an MKT Partner, or another AWS accounts in your organization. For more information, see the [User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/).\n An endpoint of type ``Interface`` establishes connections between the subnets in your VPC and an AWS-service, your own service, or a service hosted by another AWS-account. With an interface VPC endpoint, you specify the subnets in which to create the endpoint and the security groups to associate with the endpoint network interfaces.\n An endpoint of type ``gateway`` serves as a target for a route in your route table for traffic destined for S3 or DDB. You can specify an endpoint policy for the endpoint, which controls access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. For more information about connectivity to S3, see [Why can't I connect to an S3 bucket using a gateway VPC endpoint?](https://docs.aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint)\n An endpoint of type ``GatewayLoadBalancer`` provides private connectivity between your VPC and virtual appliances from a service provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html)", "allOf": [ { "type": "object", @@ -12425,14 +12526,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::InstanceSnapshot" + "AWS::EC2::VPCEndpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::InstanceSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instancesnapshot.html)" + "Specifies a VPC endpoint. A VPC endpoint provides a private connection between your VPC and an endpoint service. You can use an endpoint service provided by AWS, an MKT Partner, or another AWS accounts in your organization. For more information, see the [User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/).\n An endpoint of type ``Interface`` establishes connections between the subnets in your VPC and an AWS-service, your own service, or a service hosted by another AWS-account. With an interface VPC endpoint, you specify the subnets in which to create the endpoint and the security groups to associate with the endpoint network interfaces.\n An endpoint of type ``gateway`` serves as a target for a route in your route table for traffic destined for S3 or DDB. You can specify an endpoint policy for the endpoint, which controls access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. For more information about connectivity to S3, see [Why can't I connect to an S3 bucket using a gateway VPC endpoint?](https://docs.aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint)\n An endpoint of type ``GatewayLoadBalancer`` provides private connectivity between your VPC and virtual appliances from a service provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-instancesnapshot.json" + "$ref": "resources/aws-ec2-vpcendpoint.json" } }, "required": [ @@ -12446,9 +12547,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ImageVersion": { + "AWS_Signer_ProfilePermission": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ImageVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html)", "allOf": [ { "type": "object", @@ -12456,14 +12557,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ImageVersion" + "AWS::Signer::ProfilePermission" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ImageVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-imageversion.json" + "$ref": "resources/aws-signer-profilepermission.json" } }, "required": [ @@ -12477,9 +12578,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_StackSetConstraint": { + "AWS_Redshift_ScheduledAction": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::StackSetConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html)", + "markdownDescription": "The `AWS::Redshift::ScheduledAction` resource creates an Amazon Redshift Scheduled Action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html)", "allOf": [ { "type": "object", @@ -12487,14 +12588,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::StackSetConstraint" + "AWS::Redshift::ScheduledAction" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::StackSetConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html)" + "The `AWS::Redshift::ScheduledAction` resource creates an Amazon Redshift Scheduled Action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-stacksetconstraint.json" + "$ref": "resources/aws-redshift-scheduledaction.json" } }, "required": [ @@ -12508,9 +12609,9 @@ ], "additionalProperties": false }, - "AWS_SSO_PermissionSet": { + "AWS_Route53GlobalResolver_GlobalResolver": { "type": "object", - "markdownDescription": "Resource Type definition for SSO PermissionSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-permissionset.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::GlobalResolver \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-globalresolver.html)", "allOf": [ { "type": "object", @@ -12518,14 +12619,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSO::PermissionSet" + "AWS::Route53GlobalResolver::GlobalResolver" ], "markdownEnumDescriptions": [ - "Resource Type definition for SSO PermissionSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-permissionset.html)" + "Resource schema for AWS::Route53GlobalResolver::GlobalResolver \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-globalresolver.html)" ] }, "Properties": { - "$ref": "resources/aws-sso-permissionset.json" + "$ref": "resources/aws-route53globalresolver-globalresolver.json" } }, "required": [ @@ -12539,9 +12640,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Domain": { + "AWS_QuickSight_ActionConnector": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-domain.html)", + "markdownDescription": "Definition of the AWS::QuickSight::ActionConnector Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-actionconnector.html)", "allOf": [ { "type": "object", @@ -12549,14 +12650,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Domain" + "AWS::QuickSight::ActionConnector" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-domain.html)" + "Definition of the AWS::QuickSight::ActionConnector Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-actionconnector.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-domain.json" + "$ref": "resources/aws-quicksight-actionconnector.json" } }, "required": [ @@ -12570,9 +12671,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_DataAutomationProject": { + "AWS_Braket_SpendingLimit": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::DataAutomationProject Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-dataautomationproject.html)", + "markdownDescription": "Creates a spending limit for a specified quantum device. Spending limits help you control costs by setting maximum amounts that can be spent on quantum computing tasks within a specified time period. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html)", "allOf": [ { "type": "object", @@ -12580,14 +12681,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::DataAutomationProject" + "AWS::Braket::SpendingLimit" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::DataAutomationProject Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-dataautomationproject.html)" + "Creates a spending limit for a specified quantum device. Spending limits help you control costs by setting maximum amounts that can be spent on quantum computing tasks within a specified time period. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-dataautomationproject.json" + "$ref": "resources/aws-braket-spendinglimit.json" } }, "required": [ @@ -12601,9 +12702,9 @@ ], "additionalProperties": false }, - "AWS_Rbin_Rule": { + "AWS_ApplicationSignals_Discovery": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Rbin::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rbin-rule.html)", + "markdownDescription": "Resource Type definition for AWS::ApplicationSignals::Discovery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-discovery.html)", "allOf": [ { "type": "object", @@ -12611,19 +12712,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Rbin::Rule" + "AWS::ApplicationSignals::Discovery" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Rbin::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rbin-rule.html)" + "Resource Type definition for AWS::ApplicationSignals::Discovery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-discovery.html)" ] }, "Properties": { - "$ref": "resources/aws-rbin-rule.json" + "$ref": "resources/aws-applicationsignals-discovery.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -12632,9 +12732,9 @@ ], "additionalProperties": false }, - "AWS_EntityResolution_MatchingWorkflow": { + "AWS_DMS_MigrationProject": { "type": "object", - "markdownDescription": "MatchingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-matchingworkflow.html)", + "markdownDescription": "Resource schema for AWS::DMS::MigrationProject \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html)", "allOf": [ { "type": "object", @@ -12642,19 +12742,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EntityResolution::MatchingWorkflow" + "AWS::DMS::MigrationProject" ], "markdownEnumDescriptions": [ - "MatchingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-matchingworkflow.html)" + "Resource schema for AWS::DMS::MigrationProject \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-migrationproject.html)" ] }, "Properties": { - "$ref": "resources/aws-entityresolution-matchingworkflow.json" + "$ref": "resources/aws-dms-migrationproject.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -12663,9 +12762,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_ClientCertificate": { + "AWS_PinpointEmail_ConfigurationSet": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::ClientCertificate`` resource creates a client certificate that API Gateway uses to configure client-side SSL authentication for sending requests to the integration endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html)", + "markdownDescription": "Resource Type definition for AWS::PinpointEmail::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html)", "allOf": [ { "type": "object", @@ -12673,18 +12772,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::ClientCertificate" + "AWS::PinpointEmail::ConfigurationSet" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::ClientCertificate`` resource creates a client certificate that API Gateway uses to configure client-side SSL authentication for sending requests to the integration endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html)" + "Resource Type definition for AWS::PinpointEmail::ConfigurationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-clientcertificate.json" + "$ref": "resources/aws-pinpointemail-configurationset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -12693,9 +12793,9 @@ ], "additionalProperties": false }, - "AWS_CodePipeline_Pipeline": { + "AWS_RDS_DBProxyEndpoint": { "type": "object", - "markdownDescription": "The AWS::CodePipeline::Pipeline resource creates a CodePipeline pipeline that describes how software changes go through a release process. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)", + "markdownDescription": "Resource schema for AWS::RDS::DBProxyEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxyendpoint.html)", "allOf": [ { "type": "object", @@ -12703,14 +12803,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodePipeline::Pipeline" + "AWS::RDS::DBProxyEndpoint" ], "markdownEnumDescriptions": [ - "The AWS::CodePipeline::Pipeline resource creates a CodePipeline pipeline that describes how software changes go through a release process. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)" + "Resource schema for AWS::RDS::DBProxyEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxyendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-codepipeline-pipeline.json" + "$ref": "resources/aws-rds-dbproxyendpoint.json" } }, "required": [ @@ -12724,9 +12824,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayRouteTableAssociation": { + "AWS_OpsWorks_Volume": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)", "allOf": [ { "type": "object", @@ -12734,14 +12834,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" + "AWS::OpsWorks::Volume" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html)" + "Resource Type definition for AWS::OpsWorks::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayroutetableassociation.json" + "$ref": "resources/aws-opsworks-volume.json" } }, "required": [ @@ -12755,9 +12855,9 @@ ], "additionalProperties": false }, - "AWS_Glue_DataCatalogEncryptionSettings": { + "AWS_Logs_ResourcePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html)", + "markdownDescription": "The resource schema for AWSLogs ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -12765,14 +12865,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::DataCatalogEncryptionSettings" + "AWS::Logs::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html)" + "The resource schema for AWSLogs ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-datacatalogencryptionsettings.json" + "$ref": "resources/aws-logs-resourcepolicy.json" } }, "required": [ @@ -12786,9 +12886,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_ParameterGroup": { + "AWS_EC2_LocalGatewayVirtualInterface": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html)", + "markdownDescription": "Resource Type definition for Local Gateway Virtual Interface which describes a virtual interface for AWS Outposts local gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html)", "allOf": [ { "type": "object", @@ -12796,14 +12896,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::ParameterGroup" + "AWS::EC2::LocalGatewayVirtualInterface" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html)" + "Resource Type definition for Local Gateway Virtual Interface which describes a virtual interface for AWS Outposts local gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-parametergroup.json" + "$ref": "resources/aws-ec2-localgatewayvirtualinterface.json" } }, "required": [ @@ -12817,9 +12917,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_GuardHook": { + "AWS_Glue_SchemaVersion": { "type": "object", - "markdownDescription": "This is a CloudFormation resource for activating the first-party AWS::Hooks::GuardHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html)", + "markdownDescription": "This resource represents an individual schema version of a schema defined in Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html)", "allOf": [ { "type": "object", @@ -12827,14 +12927,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::GuardHook" + "AWS::Glue::SchemaVersion" ], "markdownEnumDescriptions": [ - "This is a CloudFormation resource for activating the first-party AWS::Hooks::GuardHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html)" + "This resource represents an individual schema version of a schema defined in Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-guardhook.json" + "$ref": "resources/aws-glue-schemaversion.json" } }, "required": [ @@ -12848,9 +12948,9 @@ ], "additionalProperties": false }, - "AWS_Shield_ProactiveEngagement": { + "AWS_ElasticLoadBalancing_LoadBalancer": { "type": "object", - "markdownDescription": "Authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html)", + "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html)", "allOf": [ { "type": "object", @@ -12858,14 +12958,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Shield::ProactiveEngagement" + "AWS::ElasticLoadBalancing::LoadBalancer" ], "markdownEnumDescriptions": [ - "Authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html)" + "Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html)" ] }, "Properties": { - "$ref": "resources/aws-shield-proactiveengagement.json" + "$ref": "resources/aws-elasticloadbalancing-loadbalancer.json" } }, "required": [ @@ -12879,9 +12979,9 @@ ], "additionalProperties": false }, - "AWS_Omics_AnnotationStore": { + "AWS_Logs_DeliveryDestination": { "type": "object", - "markdownDescription": "Definition of AWS::Omics::AnnotationStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-annotationstore.html)", + "markdownDescription": "This structure contains information about one delivery destination in your account.\n\nA delivery destination is an AWS resource that represents an AWS service that logs can be sent to CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)", "allOf": [ { "type": "object", @@ -12889,14 +12989,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::AnnotationStore" + "AWS::Logs::DeliveryDestination" ], "markdownEnumDescriptions": [ - "Definition of AWS::Omics::AnnotationStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-annotationstore.html)" + "This structure contains information about one delivery destination in your account.\n\nA delivery destination is an AWS resource that represents an AWS service that logs can be sent to CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-annotationstore.json" + "$ref": "resources/aws-logs-deliverydestination.json" } }, "required": [ @@ -12910,9 +13010,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_Integration": { + "AWS_IoT_ThingPrincipalAttachment": { "type": "object", - "markdownDescription": "The resource schema for creating an Amazon Connect Customer Profiles Integration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html)", "allOf": [ { "type": "object", @@ -12920,14 +13020,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::Integration" + "AWS::IoT::ThingPrincipalAttachment" ], "markdownEnumDescriptions": [ - "The resource schema for creating an Amazon Connect Customer Profiles Integration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html)" + "Resource Type definition for AWS::IoT::ThingPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-integration.json" + "$ref": "resources/aws-iot-thingprincipalattachment.json" } }, "required": [ @@ -12941,9 +13041,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorSCEP_Connector": { + "AWS_Glue_Table": { "type": "object", - "markdownDescription": "Represents a Connector that allows certificate issuance through Simple Certificate Enrollment Protocol (SCEP) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-connector.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html)", "allOf": [ { "type": "object", @@ -12951,14 +13051,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorSCEP::Connector" + "AWS::Glue::Table" ], "markdownEnumDescriptions": [ - "Represents a Connector that allows certificate issuance through Simple Certificate Enrollment Protocol (SCEP) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-connector.html)" + "Resource Type definition for AWS::Glue::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorscep-connector.json" + "$ref": "resources/aws-glue-table.json" } }, "required": [ @@ -12972,9 +13072,9 @@ ], "additionalProperties": false }, - "AWS_IVSChat_Room": { + "AWS_NetworkManager_TransitGatewayRouteTableAttachment": { "type": "object", - "markdownDescription": "Resource type definition for AWS::IVSChat::Room. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-room.html)", + "markdownDescription": "AWS::NetworkManager::TransitGatewayRouteTableAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayroutetableattachment.html)", "allOf": [ { "type": "object", @@ -12982,18 +13082,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVSChat::Room" + "AWS::NetworkManager::TransitGatewayRouteTableAttachment" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::IVSChat::Room. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-room.html)" + "AWS::NetworkManager::TransitGatewayRouteTableAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayroutetableattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-ivschat-room.json" + "$ref": "resources/aws-networkmanager-transitgatewayroutetableattachment.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -13002,9 +13103,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation": { + "AWS_Config_AggregationAuthorization": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroupassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Config::AggregationAuthorization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html)", "allOf": [ { "type": "object", @@ -13012,14 +13113,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + "AWS::Config::AggregationAuthorization" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroupassociation.html)" + "Resource Type definition for AWS::Config::AggregationAuthorization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalogappregistry-attributegroupassociation.json" + "$ref": "resources/aws-config-aggregationauthorization.json" } }, "required": [ @@ -13033,9 +13134,9 @@ ], "additionalProperties": false }, - "AWS_Amplify_App": { + "AWS_EC2_EIP": { "type": "object", - "markdownDescription": "The AWS::Amplify::App resource creates Apps in the Amplify Console. An App is a collection of branches. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html)", + "markdownDescription": "Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance.\n You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide*.\n For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html)", "allOf": [ { "type": "object", @@ -13043,19 +13144,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Amplify::App" + "AWS::EC2::EIP" ], "markdownEnumDescriptions": [ - "The AWS::Amplify::App resource creates Apps in the Amplify Console. An App is a collection of branches. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html)" + "Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance.\n You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide*.\n For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html)" ] }, "Properties": { - "$ref": "resources/aws-amplify-app.json" + "$ref": "resources/aws-ec2-eip.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -13064,9 +13164,9 @@ ], "additionalProperties": false }, - "AWS_Connect_HoursOfOperation": { + "AWS_FraudDetector_List": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::HoursOfOperation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html)", + "markdownDescription": "A resource schema for a List in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-list.html)", "allOf": [ { "type": "object", @@ -13074,14 +13174,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::HoursOfOperation" + "AWS::FraudDetector::List" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::HoursOfOperation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html)" + "A resource schema for a List in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-list.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-hoursofoperation.json" + "$ref": "resources/aws-frauddetector-list.json" } }, "required": [ @@ -13095,9 +13195,9 @@ ], "additionalProperties": false }, - "AWS_AuditManager_Assessment": { + "AWS_Lightsail_Alarm": { "type": "object", - "markdownDescription": "An entity that defines the scope of audit evidence collected by AWS Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Alarm \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-alarm.html)", "allOf": [ { "type": "object", @@ -13105,18 +13205,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AuditManager::Assessment" + "AWS::Lightsail::Alarm" ], "markdownEnumDescriptions": [ - "An entity that defines the scope of audit evidence collected by AWS Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html)" + "Resource Type definition for AWS::Lightsail::Alarm \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-alarm.html)" ] }, "Properties": { - "$ref": "resources/aws-auditmanager-assessment.json" + "$ref": "resources/aws-lightsail-alarm.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -13125,9 +13226,9 @@ ], "additionalProperties": false }, - "AWS_Kendra_Faq": { + "AWS_EC2_IPAM": { "type": "object", - "markdownDescription": "A Kendra FAQ resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html)", + "markdownDescription": "Resource Schema of AWS::EC2::IPAM Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html)", "allOf": [ { "type": "object", @@ -13135,19 +13236,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Kendra::Faq" + "AWS::EC2::IPAM" ], "markdownEnumDescriptions": [ - "A Kendra FAQ resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html)" + "Resource Schema of AWS::EC2::IPAM Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html)" ] }, "Properties": { - "$ref": "resources/aws-kendra-faq.json" + "$ref": "resources/aws-ec2-ipam.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -13156,9 +13256,9 @@ ], "additionalProperties": false }, - "AWS_Chatbot_CustomAction": { + "AWS_DAX_ParameterGroup": { "type": "object", - "markdownDescription": "Definition of AWS::Chatbot::CustomAction Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-customaction.html)", + "markdownDescription": "Resource Type definition for AWS::DAX::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html)", "allOf": [ { "type": "object", @@ -13166,19 +13266,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Chatbot::CustomAction" + "AWS::DAX::ParameterGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::Chatbot::CustomAction Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-customaction.html)" + "Resource Type definition for AWS::DAX::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-chatbot-customaction.json" + "$ref": "resources/aws-dax-parametergroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -13187,9 +13286,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_DeviceDefinitionVersion": { + "AWS_Bedrock_Agent": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::DeviceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html)", + "markdownDescription": "Definition of AWS::Bedrock::Agent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html)", "allOf": [ { "type": "object", @@ -13197,14 +13296,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::DeviceDefinitionVersion" + "AWS::Bedrock::Agent" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::DeviceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html)" + "Definition of AWS::Bedrock::Agent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-devicedefinitionversion.json" + "$ref": "resources/aws-bedrock-agent.json" } }, "required": [ @@ -13218,9 +13317,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Domain": { + "AWS_AutoScaling_LaunchConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html)", + "markdownDescription": "The AWS::AutoScaling::LaunchConfiguration resource specifies the launch configuration that can be used by an Auto Scaling group to configure Amazon EC2 instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)", "allOf": [ { "type": "object", @@ -13228,14 +13327,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Domain" + "AWS::AutoScaling::LaunchConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html)" + "The AWS::AutoScaling::LaunchConfiguration resource specifies the launch configuration that can be used by an Auto Scaling group to configure Amazon EC2 instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-domain.json" + "$ref": "resources/aws-autoscaling-launchconfiguration.json" } }, "required": [ @@ -13249,9 +13348,9 @@ ], "additionalProperties": false }, - "AWS_Shield_Protection": { + "AWS_WAFRegional_RegexPatternSet": { "type": "object", - "markdownDescription": "Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, AWS Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protection.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::RegexPatternSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html)", "allOf": [ { "type": "object", @@ -13259,14 +13358,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Shield::Protection" + "AWS::WAFRegional::RegexPatternSet" ], "markdownEnumDescriptions": [ - "Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, AWS Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protection.html)" + "Resource Type definition for AWS::WAFRegional::RegexPatternSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html)" ] }, "Properties": { - "$ref": "resources/aws-shield-protection.json" + "$ref": "resources/aws-wafregional-regexpatternset.json" } }, "required": [ @@ -13280,9 +13379,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_RestApi": { + "AWS_EC2_LocalGatewayRouteTable": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)", + "markdownDescription": "Resource Type definition for Local Gateway Route Table which describes a route table for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetable.html)", "allOf": [ { "type": "object", @@ -13290,18 +13389,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::RestApi" + "AWS::EC2::LocalGatewayRouteTable" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)" + "Resource Type definition for Local Gateway Route Table which describes a route table for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetable.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-restapi.json" + "$ref": "resources/aws-ec2-localgatewayroutetable.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -13310,9 +13410,9 @@ ], "additionalProperties": false }, - "AWS_DMS_Endpoint": { + "AWS_Glue_IntegrationResourceProperty": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DMS::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::IntegrationResourceProperty \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-integrationresourceproperty.html)", "allOf": [ { "type": "object", @@ -13320,14 +13420,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::Endpoint" + "AWS::Glue::IntegrationResourceProperty" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DMS::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html)" + "Resource Type definition for AWS::Glue::IntegrationResourceProperty \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-integrationresourceproperty.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-endpoint.json" + "$ref": "resources/aws-glue-integrationresourceproperty.json" } }, "required": [ @@ -13341,9 +13441,9 @@ ], "additionalProperties": false }, - "AWS_MSK_VpcConnection": { + "AWS_VpcLattice_TargetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::VpcConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-vpcconnection.html)", + "markdownDescription": "A target group is a collection of targets, or compute resources, that run your application or service. A target group can only be used by a single service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-targetgroup.html)", "allOf": [ { "type": "object", @@ -13351,14 +13451,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::VpcConnection" + "AWS::VpcLattice::TargetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::VpcConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-vpcconnection.html)" + "A target group is a collection of targets, or compute resources, that run your application or service. A target group can only be used by a single service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-targetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-vpcconnection.json" + "$ref": "resources/aws-vpclattice-targetgroup.json" } }, "required": [ @@ -13372,9 +13472,9 @@ ], "additionalProperties": false }, - "AWS_ApplicationSignals_ServiceLevelObjective": { + "AWS_HealthImaging_Datastore": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApplicationSignals::ServiceLevelObjective \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html)", + "markdownDescription": "Definition of AWS::HealthImaging::Datastore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthimaging-datastore.html)", "allOf": [ { "type": "object", @@ -13382,19 +13482,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ApplicationSignals::ServiceLevelObjective" + "AWS::HealthImaging::Datastore" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApplicationSignals::ServiceLevelObjective \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html)" + "Definition of AWS::HealthImaging::Datastore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthimaging-datastore.html)" ] }, "Properties": { - "$ref": "resources/aws-applicationsignals-servicelevelobjective.json" + "$ref": "resources/aws-healthimaging-datastore.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -13403,9 +13502,9 @@ ], "additionalProperties": false }, - "AWS_Glue_SchemaVersion": { + "AWS_Route53GlobalResolver_AccessSource": { "type": "object", - "markdownDescription": "This resource represents an individual schema version of a schema defined in Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::AccessSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-accesssource.html)", "allOf": [ { "type": "object", @@ -13413,14 +13512,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::SchemaVersion" + "AWS::Route53GlobalResolver::AccessSource" ], "markdownEnumDescriptions": [ - "This resource represents an individual schema version of a schema defined in Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html)" + "Resource schema for AWS::Route53GlobalResolver::AccessSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-accesssource.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-schemaversion.json" + "$ref": "resources/aws-route53globalresolver-accesssource.json" } }, "required": [ @@ -13434,9 +13533,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryControl_Cluster": { + "AWS_S3Express_AccessPoint": { "type": "object", - "markdownDescription": "AWS Route53 Recovery Control Cluster resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-cluster.html)", + "markdownDescription": "The AWS::S3Express::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-accesspoint.html)", "allOf": [ { "type": "object", @@ -13444,14 +13543,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryControl::Cluster" + "AWS::S3Express::AccessPoint" ], "markdownEnumDescriptions": [ - "AWS Route53 Recovery Control Cluster resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-cluster.html)" + "The AWS::S3Express::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-accesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoverycontrol-cluster.json" + "$ref": "resources/aws-s3express-accesspoint.json" } }, "required": [ @@ -13465,9 +13564,9 @@ ], "additionalProperties": false }, - "AWS_KMS_Alias": { + "AWS_Lex_ResourcePolicy": { "type": "object", - "markdownDescription": "The ``AWS::KMS::Alias`` resource specifies a display name for a [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). You can use an alias to identify a KMS key in the KMS console, in the [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) operation, and in [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), such as [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) and [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html).\n Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*.\n Using an alias to refer to a KMS key can help you simplify key management. For example, an alias in your code can be associated with different KMS keys in different AWS-Regions. For more information, see [Using aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) in the *Developer Guide*.\n When specifying an alias, observe the following rules.\n + Each alias is associated with one KMS key, but multiple aliases can be associated with the same KMS key.\n + The alias and its associated KMS key must be in the same AWS-account and Region.\n + The alias name must be unique in the AWS-account and Region. However, you can create aliases with the same name in different AWS-Regions. For example, you can have an ``alias/projectKey`` in multiple Regions, each of which is associated with a KMS key in its Region.\n + Each alias name must begin with ``alias/`` followed by a name, such as ``alias/exampleKey``. The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with ``alias/aws/``. That alias name prefix is reserved for [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).\n \n *Regions* \n KMS CloudFormation resources are available in all AWS-Regions in which KMS and CFN are supported. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html)", + "markdownDescription": "Resource Type definition for a resource policy with specified policy statements that attaches to a Lex bot or bot alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -13475,14 +13574,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KMS::Alias" + "AWS::Lex::ResourcePolicy" ], "markdownEnumDescriptions": [ - "The ``AWS::KMS::Alias`` resource specifies a display name for a [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). You can use an alias to identify a KMS key in the KMS console, in the [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) operation, and in [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), such as [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) and [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html).\n Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*.\n Using an alias to refer to a KMS key can help you simplify key management. For example, an alias in your code can be associated with different KMS keys in different AWS-Regions. For more information, see [Using aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) in the *Developer Guide*.\n When specifying an alias, observe the following rules.\n + Each alias is associated with one KMS key, but multiple aliases can be associated with the same KMS key.\n + The alias and its associated KMS key must be in the same AWS-account and Region.\n + The alias name must be unique in the AWS-account and Region. However, you can create aliases with the same name in different AWS-Regions. For example, you can have an ``alias/projectKey`` in multiple Regions, each of which is associated with a KMS key in its Region.\n + Each alias name must begin with ``alias/`` followed by a name, such as ``alias/exampleKey``. The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with ``alias/aws/``. That alias name prefix is reserved for [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).\n \n *Regions* \n KMS CloudFormation resources are available in all AWS-Regions in which KMS and CFN are supported. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html)" + "Resource Type definition for a resource policy with specified policy statements that attaches to a Lex bot or bot alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-kms-alias.json" + "$ref": "resources/aws-lex-resourcepolicy.json" } }, "required": [ @@ -13496,9 +13595,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_ApiMapping": { + "AWS_ApiGatewayV2_Deployment": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::ApiMapping`` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::Deployment`` resource creates a deployment for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html)", "allOf": [ { "type": "object", @@ -13506,14 +13605,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::ApiMapping" + "AWS::ApiGatewayV2::Deployment" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::ApiMapping`` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html)" + "The ``AWS::ApiGatewayV2::Deployment`` resource creates a deployment for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-apimapping.json" + "$ref": "resources/aws-apigatewayv2-deployment.json" } }, "required": [ @@ -13527,9 +13626,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_DomainNameAccessAssociation": { + "AWS_EC2_GatewayRouteTableAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApiGateway::DomainNameAccessAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html)", + "markdownDescription": "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. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html)", "allOf": [ { "type": "object", @@ -13537,14 +13636,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::DomainNameAccessAssociation" + "AWS::EC2::GatewayRouteTableAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApiGateway::DomainNameAccessAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html)" + "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. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-domainnameaccessassociation.json" + "$ref": "resources/aws-ec2-gatewayroutetableassociation.json" } }, "required": [ @@ -13558,9 +13657,9 @@ ], "additionalProperties": false }, - "AWS_IoTCoreDeviceAdvisor_SuiteDefinition": { + "AWS_AmazonMQ_ConfigurationAssociation": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html)", + "markdownDescription": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html)", "allOf": [ { "type": "object", @@ -13568,14 +13667,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" + "AWS::AmazonMQ::ConfigurationAssociation" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html)" + "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-iotcoredeviceadvisor-suitedefinition.json" + "$ref": "resources/aws-amazonmq-configurationassociation.json" } }, "required": [ @@ -13589,9 +13688,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkAcl": { + "AWS_AppStream_StackUserAssociation": { "type": "object", - "markdownDescription": "Specifies a network ACL for your VPC.\n To add a network ACL entry, see [AWS::EC2::NetworkAclEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::StackUserAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html)", "allOf": [ { "type": "object", @@ -13599,14 +13698,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkAcl" + "AWS::AppStream::StackUserAssociation" ], "markdownEnumDescriptions": [ - "Specifies a network ACL for your VPC.\n To add a network ACL entry, see [AWS::EC2::NetworkAclEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html)" + "Resource Type definition for AWS::AppStream::StackUserAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkacl.json" + "$ref": "resources/aws-appstream-stackuserassociation.json" } }, "required": [ @@ -13620,9 +13719,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_DomainName": { + "AWS_StepFunctions_StateMachineAlias": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::DomainName`` resource specifies a custom domain name for your API in API Gateway.\n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html)", + "markdownDescription": "Resource schema for StateMachineAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html)", "allOf": [ { "type": "object", @@ -13630,14 +13729,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::DomainName" + "AWS::StepFunctions::StateMachineAlias" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::DomainName`` resource specifies a custom domain name for your API in API Gateway.\n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html)" + "Resource schema for StateMachineAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-domainname.json" + "$ref": "resources/aws-stepfunctions-statemachinealias.json" } }, "required": [ @@ -13650,9 +13749,9 @@ ], "additionalProperties": false }, - "AWS_IoT_EncryptionConfiguration": { + "AWS_Neptune_DBSubnetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::EncryptionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-encryptionconfiguration.html)", + "markdownDescription": "The AWS::Neptune::DBSubnetGroup type creates an Amazon Neptune DB subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same AWS Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html)", "allOf": [ { "type": "object", @@ -13660,14 +13759,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::EncryptionConfiguration" + "AWS::Neptune::DBSubnetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::EncryptionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-encryptionconfiguration.html)" + "The AWS::Neptune::DBSubnetGroup type creates an Amazon Neptune DB subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same AWS Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-encryptionconfiguration.json" + "$ref": "resources/aws-neptune-dbsubnetgroup.json" } }, "required": [ @@ -13681,9 +13780,9 @@ ], "additionalProperties": false }, - "AWS_SSO_InstanceAccessControlAttributeConfiguration": { + "AWS_CodePipeline_Pipeline": { "type": "object", - "markdownDescription": "Resource Type definition for SSO InstanceAccessControlAttributeConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html)", + "markdownDescription": "The AWS::CodePipeline::Pipeline resource creates a CodePipeline pipeline that describes how software changes go through a release process. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)", "allOf": [ { "type": "object", @@ -13691,14 +13790,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSO::InstanceAccessControlAttributeConfiguration" + "AWS::CodePipeline::Pipeline" ], "markdownEnumDescriptions": [ - "Resource Type definition for SSO InstanceAccessControlAttributeConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html)" + "The AWS::CodePipeline::Pipeline resource creates a CodePipeline pipeline that describes how software changes go through a release process. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)" ] }, "Properties": { - "$ref": "resources/aws-sso-instanceaccesscontrolattributeconfiguration.json" + "$ref": "resources/aws-codepipeline-pipeline.json" } }, "required": [ @@ -13712,9 +13811,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_DomainNameApiAssociation": { + "AWS_Notifications_OrganizationalUnitAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::DomainNameApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Notifications::OrganizationalUnitAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-organizationalunitassociation.html)", "allOf": [ { "type": "object", @@ -13722,14 +13821,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::DomainNameApiAssociation" + "AWS::Notifications::OrganizationalUnitAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::DomainNameApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)" + "Resource Type definition for AWS::Notifications::OrganizationalUnitAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-organizationalunitassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-domainnameapiassociation.json" + "$ref": "resources/aws-notifications-organizationalunitassociation.json" } }, "required": [ @@ -13743,9 +13842,9 @@ ], "additionalProperties": false }, - "AWS_RefactorSpaces_Service": { + "AWS_S3Tables_Namespace": { "type": "object", - "markdownDescription": "Definition of AWS::RefactorSpaces::Service Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-service.html)", + "markdownDescription": "Resource Type definition for AWS::S3Tables::Namespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html)", "allOf": [ { "type": "object", @@ -13753,14 +13852,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RefactorSpaces::Service" + "AWS::S3Tables::Namespace" ], "markdownEnumDescriptions": [ - "Definition of AWS::RefactorSpaces::Service Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-service.html)" + "Resource Type definition for AWS::S3Tables::Namespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html)" ] }, "Properties": { - "$ref": "resources/aws-refactorspaces-service.json" + "$ref": "resources/aws-s3tables-namespace.json" } }, "required": [ @@ -13774,9 +13873,9 @@ ], "additionalProperties": false }, - "AWS_GreengrassV2_Deployment": { + "AWS_DataZone_DomainUnit": { "type": "object", - "markdownDescription": "Resource for Greengrass V2 deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html)", + "markdownDescription": "A domain unit enables you to easily organize your assets and other domain entities under specific business units and teams. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domainunit.html)", "allOf": [ { "type": "object", @@ -13784,14 +13883,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GreengrassV2::Deployment" + "AWS::DataZone::DomainUnit" ], "markdownEnumDescriptions": [ - "Resource for Greengrass V2 deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html)" + "A domain unit enables you to easily organize your assets and other domain entities under specific business units and teams. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domainunit.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrassv2-deployment.json" + "$ref": "resources/aws-datazone-domainunit.json" } }, "required": [ @@ -13805,9 +13904,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_ClusterParameterGroup": { + "AWS_StepFunctions_Activity": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html)", + "markdownDescription": "Resource schema for Activity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html)", "allOf": [ { "type": "object", @@ -13815,14 +13914,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::ClusterParameterGroup" + "AWS::StepFunctions::Activity" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Redshift::ClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html)" + "Resource schema for Activity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-clusterparametergroup.json" + "$ref": "resources/aws-stepfunctions-activity.json" } }, "required": [ @@ -13836,9 +13935,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_MonitoringSubscription": { + "AWS_APS_Scraper": { "type": "object", - "markdownDescription": "A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-monitoringsubscription.html)", + "markdownDescription": "Resource Type definition for AWS::APS::Scraper \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html)", "allOf": [ { "type": "object", @@ -13846,14 +13945,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::MonitoringSubscription" + "AWS::APS::Scraper" ], "markdownEnumDescriptions": [ - "A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-monitoringsubscription.html)" + "Resource Type definition for AWS::APS::Scraper \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-monitoringsubscription.json" + "$ref": "resources/aws-aps-scraper.json" } }, "required": [ @@ -13867,9 +13966,9 @@ ], "additionalProperties": false }, - "AWS_MediaTailor_Channel": { + "AWS_DataZone_Connection": { "type": "object", - "markdownDescription": "Definition of AWS::MediaTailor::Channel Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html)", + "markdownDescription": "Connections enables users to connect their DataZone resources (domains, projects, and environments) to external resources/services (data, compute, etc) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-connection.html)", "allOf": [ { "type": "object", @@ -13877,14 +13976,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaTailor::Channel" + "AWS::DataZone::Connection" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaTailor::Channel Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html)" + "Connections enables users to connect their DataZone resources (domains, projects, and environments) to external resources/services (data, compute, etc) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-connection.html)" ] }, "Properties": { - "$ref": "resources/aws-mediatailor-channel.json" + "$ref": "resources/aws-datazone-connection.json" } }, "required": [ @@ -13898,9 +13997,9 @@ ], "additionalProperties": false }, - "AWS_Logs_Delivery": { + "AWS_WorkSpaces_WorkspacesPool": { "type": "object", - "markdownDescription": "This structure contains information about one delivery in your account.\n\nA delivery is a connection between a logical delivery source and a logical delivery destination.\n\nFor more information, see [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)", + "markdownDescription": "Resource Type definition for AWS::WorkSpaces::WorkspacesPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html)", "allOf": [ { "type": "object", @@ -13908,14 +14007,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::Delivery" + "AWS::WorkSpaces::WorkspacesPool" ], "markdownEnumDescriptions": [ - "This structure contains information about one delivery in your account.\n\nA delivery is a connection between a logical delivery source and a logical delivery destination.\n\nFor more information, see [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)" + "Resource Type definition for AWS::WorkSpaces::WorkspacesPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-delivery.json" + "$ref": "resources/aws-workspaces-workspacespool.json" } }, "required": [ @@ -13929,9 +14028,9 @@ ], "additionalProperties": false }, - "AWS_PCS_ComputeNodeGroup": { + "AWS_SNS_Topic": { "type": "object", - "markdownDescription": "AWS::PCS::ComputeNodeGroup resource creates an AWS PCS compute node group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html)", + "markdownDescription": "The ``AWS::SNS::Topic`` resource creates a topic to which notifications can be published.\n One account can create a maximum of 100,000 standard topics and 1,000 FIFO topics. For more information, see [endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sns.html) in the *General Reference*.\n The structure of ``AUTHPARAMS`` depends on the .signature of the API request. For more information, see [Examples of the complete Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)", "allOf": [ { "type": "object", @@ -13939,19 +14038,18 @@ "Type": { "type": "string", "enum": [ - "AWS::PCS::ComputeNodeGroup" + "AWS::SNS::Topic" ], "markdownEnumDescriptions": [ - "AWS::PCS::ComputeNodeGroup resource creates an AWS PCS compute node group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html)" + "The ``AWS::SNS::Topic`` resource creates a topic to which notifications can be published.\n One account can create a maximum of 100,000 standard topics and 1,000 FIFO topics. For more information, see [endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sns.html) in the *General Reference*.\n The structure of ``AUTHPARAMS`` depends on the .signature of the API request. For more information, see [Examples of the complete Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)" ] }, "Properties": { - "$ref": "resources/aws-pcs-computenodegroup.json" + "$ref": "resources/aws-sns-topic.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -13960,9 +14058,9 @@ ], "additionalProperties": false }, - "AWS_GlobalAccelerator_Listener": { + "AWS_AppConfig_HostedConfigurationVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::Listener \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html)", + "markdownDescription": "Resource Type definition for AWS::AppConfig::HostedConfigurationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html)", "allOf": [ { "type": "object", @@ -13970,14 +14068,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GlobalAccelerator::Listener" + "AWS::AppConfig::HostedConfigurationVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GlobalAccelerator::Listener \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html)" + "Resource Type definition for AWS::AppConfig::HostedConfigurationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html)" ] }, "Properties": { - "$ref": "resources/aws-globalaccelerator-listener.json" + "$ref": "resources/aws-appconfig-hostedconfigurationversion.json" } }, "required": [ @@ -13991,9 +14089,9 @@ ], "additionalProperties": false }, - "AWS_Logs_QueryDefinition": { + "AWS_IAM_Group": { "type": "object", - "markdownDescription": "The resource schema for AWSLogs QueryDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html)", + "markdownDescription": "Creates a new group.\n For information about the number of groups you can create, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html)", "allOf": [ { "type": "object", @@ -14001,19 +14099,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::QueryDefinition" + "AWS::IAM::Group" ], "markdownEnumDescriptions": [ - "The resource schema for AWSLogs QueryDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html)" + "Creates a new group.\n For information about the number of groups you can create, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-querydefinition.json" + "$ref": "resources/aws-iam-group.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -14022,9 +14119,9 @@ ], "additionalProperties": false }, - "AWS_DLM_LifecyclePolicy": { + "AWS_Connect_UserHierarchyGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DLM::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::UserHierarchyGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html)", "allOf": [ { "type": "object", @@ -14032,18 +14129,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DLM::LifecyclePolicy" + "AWS::Connect::UserHierarchyGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DLM::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html)" + "Resource Type definition for AWS::Connect::UserHierarchyGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-dlm-lifecyclepolicy.json" + "$ref": "resources/aws-connect-userhierarchygroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -14052,9 +14150,9 @@ ], "additionalProperties": false }, - "AWS_Lex_ResourcePolicy": { + "AWS_Cases_Layout": { "type": "object", - "markdownDescription": "A resource policy with specified policy statements that attaches to a Lex bot or bot alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-resourcepolicy.html)", + "markdownDescription": "A layout in the Cases domain. Layouts define the following configuration in the top section and More Info tab of the Cases user interface: Fields to display to the users and Field ordering. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-layout.html)", "allOf": [ { "type": "object", @@ -14062,14 +14160,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lex::ResourcePolicy" + "AWS::Cases::Layout" ], "markdownEnumDescriptions": [ - "A resource policy with specified policy statements that attaches to a Lex bot or bot alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-resourcepolicy.html)" + "A layout in the Cases domain. Layouts define the following configuration in the top section and More Info tab of the Cases user interface: Fields to display to the users and Field ordering. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-layout.html)" ] }, "Properties": { - "$ref": "resources/aws-lex-resourcepolicy.json" + "$ref": "resources/aws-cases-layout.json" } }, "required": [ @@ -14083,9 +14181,9 @@ ], "additionalProperties": false }, - "AWS_M2_Deployment": { + "AWS_EC2_PrefixList": { "type": "object", - "markdownDescription": "Represents a deployment resource of an AWS Mainframe Modernization (M2) application to a specified environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-deployment.html)", + "markdownDescription": "Resource schema of AWS::EC2::PrefixList Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html)", "allOf": [ { "type": "object", @@ -14093,14 +14191,14 @@ "Type": { "type": "string", "enum": [ - "AWS::M2::Deployment" + "AWS::EC2::PrefixList" ], "markdownEnumDescriptions": [ - "Represents a deployment resource of an AWS Mainframe Modernization (M2) application to a specified environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-deployment.html)" + "Resource schema of AWS::EC2::PrefixList Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html)" ] }, "Properties": { - "$ref": "resources/aws-m2-deployment.json" + "$ref": "resources/aws-ec2-prefixlist.json" } }, "required": [ @@ -14114,9 +14212,9 @@ ], "additionalProperties": false }, - "AWS_FSx_Snapshot": { + "AWS_AppIntegrations_DataIntegration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::FSx::Snapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-snapshot.html)", + "markdownDescription": "Resource Type definition for AWS::AppIntegrations::DataIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-dataintegration.html)", "allOf": [ { "type": "object", @@ -14124,14 +14222,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FSx::Snapshot" + "AWS::AppIntegrations::DataIntegration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::FSx::Snapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-snapshot.html)" + "Resource Type definition for AWS::AppIntegrations::DataIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-dataintegration.html)" ] }, "Properties": { - "$ref": "resources/aws-fsx-snapshot.json" + "$ref": "resources/aws-appintegrations-dataintegration.json" } }, "required": [ @@ -14145,9 +14243,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_ByteMatchSet": { + "AWS_Route53RecoveryControl_RoutingControl": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html)", + "markdownDescription": "AWS Route53 Recovery Control Routing Control resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-routingcontrol.html)", "allOf": [ { "type": "object", @@ -14155,14 +14253,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::ByteMatchSet" + "AWS::Route53RecoveryControl::RoutingControl" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html)" + "AWS Route53 Recovery Control Routing Control resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-routingcontrol.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-bytematchset.json" + "$ref": "resources/aws-route53recoverycontrol-routingcontrol.json" } }, "required": [ @@ -14176,9 +14274,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInsightsAccessScopeAnalysis": { + "AWS_S3_MultiRegionAccessPoint": { "type": "object", - "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscopeanalysis.html)", + "markdownDescription": "AWS::S3::MultiRegionAccessPoint is an Amazon S3 resource type that dynamically routes S3 requests to easily satisfy geographic compliance requirements based on customer-defined routing policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html)", "allOf": [ { "type": "object", @@ -14186,14 +14284,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInsightsAccessScopeAnalysis" + "AWS::S3::MultiRegionAccessPoint" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscopeanalysis.html)" + "AWS::S3::MultiRegionAccessPoint is an Amazon S3 resource type that dynamically routes S3 requests to easily satisfy geographic compliance requirements based on customer-defined routing policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinsightsaccessscopeanalysis.json" + "$ref": "resources/aws-s3-multiregionaccesspoint.json" } }, "required": [ @@ -14207,9 +14305,9 @@ ], "additionalProperties": false }, - "AWS_Panorama_PackageVersion": { + "AWS_SecurityHub_AutomationRuleV2": { "type": "object", - "markdownDescription": "Registers a package version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html)", + "markdownDescription": "Resource schema for AWS::SecurityHub::AutomationRuleV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html)", "allOf": [ { "type": "object", @@ -14217,14 +14315,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Panorama::PackageVersion" + "AWS::SecurityHub::AutomationRuleV2" ], "markdownEnumDescriptions": [ - "Registers a package version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html)" + "Resource schema for AWS::SecurityHub::AutomationRuleV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html)" ] }, "Properties": { - "$ref": "resources/aws-panorama-packageversion.json" + "$ref": "resources/aws-securityhub-automationrulev2.json" } }, "required": [ @@ -14238,9 +14336,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_FlowAlias": { + "AWS_RefactorSpaces_Application": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::FlowAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowalias.html)", + "markdownDescription": "Definition of AWS::RefactorSpaces::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-application.html)", "allOf": [ { "type": "object", @@ -14248,14 +14346,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::FlowAlias" + "AWS::RefactorSpaces::Application" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::FlowAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowalias.html)" + "Definition of AWS::RefactorSpaces::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-application.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-flowalias.json" + "$ref": "resources/aws-refactorspaces-application.json" } }, "required": [ @@ -14269,9 +14367,9 @@ ], "additionalProperties": false }, - "AWS_Logs_DeliverySource": { + "AWS_AmplifyUIBuilder_Component": { "type": "object", - "markdownDescription": " A delivery source is an AWS resource that sends logs to an AWS destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.\n\nOnly some AWS services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from AWS services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)", + "markdownDescription": "Definition of AWS::AmplifyUIBuilder::Component Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html)", "allOf": [ { "type": "object", @@ -14279,19 +14377,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::DeliverySource" + "AWS::AmplifyUIBuilder::Component" ], "markdownEnumDescriptions": [ - " A delivery source is an AWS resource that sends logs to an AWS destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.\n\nOnly some AWS services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from AWS services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)" + "Definition of AWS::AmplifyUIBuilder::Component Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-deliverysource.json" + "$ref": "resources/aws-amplifyuibuilder-component.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -14300,9 +14397,9 @@ ], "additionalProperties": false }, - "AWS_EC2_EIP": { + "AWS_Route53RecoveryControl_ControlPanel": { "type": "object", - "markdownDescription": "Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance.\n You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide*.\n For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html)", + "markdownDescription": "AWS Route53 Recovery Control Control Panel resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-controlpanel.html)", "allOf": [ { "type": "object", @@ -14310,18 +14407,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::EIP" + "AWS::Route53RecoveryControl::ControlPanel" ], "markdownEnumDescriptions": [ - "Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance.\n You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide*.\n For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html)" + "AWS Route53 Recovery Control Control Panel resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-controlpanel.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-eip.json" + "$ref": "resources/aws-route53recoverycontrol-controlpanel.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -14330,9 +14428,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationFSxWindows": { + "AWS_NetworkManager_LinkAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationFSxWindows. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html)", + "markdownDescription": "The AWS::NetworkManager::LinkAssociation type associates a link to a device. The device and link must be in the same global network and the same site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html)", "allOf": [ { "type": "object", @@ -14340,14 +14438,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationFSxWindows" + "AWS::NetworkManager::LinkAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationFSxWindows. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html)" + "The AWS::NetworkManager::LinkAssociation type associates a link to a device. The device and link must be in the same global network and the same site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationfsxwindows.json" + "$ref": "resources/aws-networkmanager-linkassociation.json" } }, "required": [ @@ -14361,9 +14459,9 @@ ], "additionalProperties": false }, - "AWS_ECS_ClusterCapacityProviderAssociations": { + "AWS_KinesisFirehose_DeliveryStream": { "type": "object", - "markdownDescription": "Associate a set of ECS Capacity Providers with a specified ECS Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisFirehose::DeliveryStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html)", "allOf": [ { "type": "object", @@ -14371,19 +14469,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ECS::ClusterCapacityProviderAssociations" + "AWS::KinesisFirehose::DeliveryStream" ], "markdownEnumDescriptions": [ - "Associate a set of ECS Capacity Providers with a specified ECS Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html)" + "Resource Type definition for AWS::KinesisFirehose::DeliveryStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html)" ] }, "Properties": { - "$ref": "resources/aws-ecs-clustercapacityproviderassociations.json" + "$ref": "resources/aws-kinesisfirehose-deliverystream.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -14392,9 +14489,9 @@ ], "additionalProperties": false }, - "AWS_DocDB_DBClusterParameterGroup": { + "AWS_Glue_DevEndpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DocDB::DBClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::DevEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html)", "allOf": [ { "type": "object", @@ -14402,14 +14499,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DocDB::DBClusterParameterGroup" + "AWS::Glue::DevEndpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DocDB::DBClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html)" + "Resource Type definition for AWS::Glue::DevEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-docdb-dbclusterparametergroup.json" + "$ref": "resources/aws-glue-devendpoint.json" } }, "required": [ @@ -14423,9 +14520,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_ApiGatewayManagedOverrides": { + "AWS_DataZone_ProjectProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApiGatewayV2::ApiGatewayManagedOverrides \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html)", + "markdownDescription": "Definition of AWS::DataZone::ProjectProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectprofile.html)", "allOf": [ { "type": "object", @@ -14433,14 +14530,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides" + "AWS::DataZone::ProjectProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApiGatewayV2::ApiGatewayManagedOverrides \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html)" + "Definition of AWS::DataZone::ProjectProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-apigatewaymanagedoverrides.json" + "$ref": "resources/aws-datazone-projectprofile.json" } }, "required": [ @@ -14454,9 +14551,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_Segment": { + "AWS_Lex_Bot": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-segment.html)", + "markdownDescription": "Resource Type definition for an Amazon Lex conversational bot performing automated tasks such as ordering a pizza, booking a hotel, and so on. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-bot.html)", "allOf": [ { "type": "object", @@ -14464,14 +14561,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::Segment" + "AWS::Lex::Bot" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-segment.html)" + "Resource Type definition for an Amazon Lex conversational bot performing automated tasks such as ordering a pizza, booking a hotel, and so on. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-bot.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-segment.json" + "$ref": "resources/aws-lex-bot.json" } }, "required": [ @@ -14485,9 +14582,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolIdentityProvider": { + "AWS_ACMPCA_Permission": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolIdentityProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html)", + "markdownDescription": "Permission set on private certificate authority \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html)", "allOf": [ { "type": "object", @@ -14495,14 +14592,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolIdentityProvider" + "AWS::ACMPCA::Permission" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolIdentityProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html)" + "Permission set on private certificate authority \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpoolidentityprovider.json" + "$ref": "resources/aws-acmpca-permission.json" } }, "required": [ @@ -14516,9 +14613,9 @@ ], "additionalProperties": false }, - "AWS_AutoScaling_WarmPool": { + "AWS_EC2_TransitGatewayMeteringPolicyEntry": { "type": "object", - "markdownDescription": "Resource schema for AWS::AutoScaling::WarmPool. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html)", + "markdownDescription": "AWS::EC2::TransitGatewayMeteringPolicyEntry Resource Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicyentry.html)", "allOf": [ { "type": "object", @@ -14526,14 +14623,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScaling::WarmPool" + "AWS::EC2::TransitGatewayMeteringPolicyEntry" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::AutoScaling::WarmPool. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html)" + "AWS::EC2::TransitGatewayMeteringPolicyEntry Resource Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicyentry.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscaling-warmpool.json" + "$ref": "resources/aws-ec2-transitgatewaymeteringpolicyentry.json" } }, "required": [ @@ -14547,9 +14644,9 @@ ], "additionalProperties": false }, - "AWS_Location_Map": { + "AWS_Lightsail_Disk": { "type": "object", - "markdownDescription": "Definition of AWS::Location::Map Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Disk \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html)", "allOf": [ { "type": "object", @@ -14557,14 +14654,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::Map" + "AWS::Lightsail::Disk" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::Map Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html)" + "Resource Type definition for AWS::Lightsail::Disk \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html)" ] }, "Properties": { - "$ref": "resources/aws-location-map.json" + "$ref": "resources/aws-lightsail-disk.json" } }, "required": [ @@ -14578,9 +14675,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInterface": { + "AWS_Lightsail_Bucket": { "type": "object", - "markdownDescription": "The AWS::EC2::NetworkInterface resource creates network interface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-bucket.html)", "allOf": [ { "type": "object", @@ -14588,14 +14685,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInterface" + "AWS::Lightsail::Bucket" ], "markdownEnumDescriptions": [ - "The AWS::EC2::NetworkInterface resource creates network interface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html)" + "Resource Type definition for AWS::Lightsail::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-bucket.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinterface.json" + "$ref": "resources/aws-lightsail-bucket.json" } }, "required": [ @@ -14609,9 +14706,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LocalGatewayVirtualInterface": { + "AWS_SageMaker_ModelExplainabilityJobDefinition": { "type": "object", - "markdownDescription": "Resource Type definition for Local Gateway Virtual Interface which describes a virtual interface for AWS Outposts local gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelExplainabilityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelexplainabilityjobdefinition.html)", "allOf": [ { "type": "object", @@ -14619,14 +14716,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LocalGatewayVirtualInterface" + "AWS::SageMaker::ModelExplainabilityJobDefinition" ], "markdownEnumDescriptions": [ - "Resource Type definition for Local Gateway Virtual Interface which describes a virtual interface for AWS Outposts local gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html)" + "Resource Type definition for AWS::SageMaker::ModelExplainabilityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelexplainabilityjobdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-localgatewayvirtualinterface.json" + "$ref": "resources/aws-sagemaker-modelexplainabilityjobdefinition.json" } }, "required": [ @@ -14640,9 +14737,9 @@ ], "additionalProperties": false }, - "AWS_Connect_PhoneNumber": { + "AWS_ServiceCatalog_Portfolio": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-phonenumber.html)", + "markdownDescription": "Resource type definition for AWS::ServiceCatalog::Portfolio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html)", "allOf": [ { "type": "object", @@ -14650,14 +14747,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::PhoneNumber" + "AWS::ServiceCatalog::Portfolio" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-phonenumber.html)" + "Resource type definition for AWS::ServiceCatalog::Portfolio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-phonenumber.json" + "$ref": "resources/aws-servicecatalog-portfolio.json" } }, "required": [ @@ -14671,9 +14768,9 @@ ], "additionalProperties": false }, - "AWS_ResilienceHub_App": { + "AWS_ServiceCatalog_PortfolioProductAssociation": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::ResilienceHub::App. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-app.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html)", "allOf": [ { "type": "object", @@ -14681,19 +14778,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ResilienceHub::App" + "AWS::ServiceCatalog::PortfolioProductAssociation" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::ResilienceHub::App. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-app.html)" + "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-resiliencehub-app.json" + "$ref": "resources/aws-servicecatalog-portfolioproductassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -14702,9 +14798,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_ListenerRule": { + "AWS_BedrockAgentCore_Runtime": { "type": "object", - "markdownDescription": "Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.\n For more information, see [Quotas for your Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) in the *User Guide for Application Load Balancers*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::Runtime \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtime.html)", "allOf": [ { "type": "object", @@ -14712,14 +14808,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerRule" + "AWS::BedrockAgentCore::Runtime" ], "markdownEnumDescriptions": [ - "Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.\n For more information, see [Quotas for your Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) in the *User Guide for Application Load Balancers*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)" + "Resource Type definition for AWS::BedrockAgentCore::Runtime \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtime.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-listenerrule.json" + "$ref": "resources/aws-bedrockagentcore-runtime.json" } }, "required": [ @@ -14733,9 +14829,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_Vehicle": { + "AWS_IoTTwinMaker_ComponentType": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::Vehicle Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-vehicle.html)", + "markdownDescription": "Resource schema for AWS::IoTTwinMaker::ComponentType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-componenttype.html)", "allOf": [ { "type": "object", @@ -14743,14 +14839,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::Vehicle" + "AWS::IoTTwinMaker::ComponentType" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::Vehicle Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-vehicle.html)" + "Resource schema for AWS::IoTTwinMaker::ComponentType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-componenttype.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-vehicle.json" + "$ref": "resources/aws-iottwinmaker-componenttype.json" } }, "required": [ @@ -14764,9 +14860,9 @@ ], "additionalProperties": false }, - "AWS_EC2_ClientVpnAuthorizationRule": { + "AWS_DirectConnect_DirectConnectGatewayAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnAuthorizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::DirectConnectGatewayAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-directconnectgatewayassociation.html)", "allOf": [ { "type": "object", @@ -14774,14 +14870,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::ClientVpnAuthorizationRule" + "AWS::DirectConnect::DirectConnectGatewayAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::ClientVpnAuthorizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html)" + "Resource Type definition for AWS::DirectConnect::DirectConnectGatewayAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-directconnectgatewayassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-clientvpnauthorizationrule.json" + "$ref": "resources/aws-directconnect-directconnectgatewayassociation.json" } }, "required": [ @@ -14795,9 +14891,9 @@ ], "additionalProperties": false }, - "AWS_Personalize_Solution": { + "AWS_ResourceExplorer2_View": { "type": "object", - "markdownDescription": "Resource schema for AWS::Personalize::Solution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-solution.html)", + "markdownDescription": "Definition of AWS::ResourceExplorer2::View Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-view.html)", "allOf": [ { "type": "object", @@ -14805,14 +14901,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Personalize::Solution" + "AWS::ResourceExplorer2::View" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Personalize::Solution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-solution.html)" + "Definition of AWS::ResourceExplorer2::View Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-view.html)" ] }, "Properties": { - "$ref": "resources/aws-personalize-solution.json" + "$ref": "resources/aws-resourceexplorer2-view.json" } }, "required": [ @@ -14826,9 +14922,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_Dashboard": { + "AWS_CodeArtifact_Domain": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html)", + "markdownDescription": "The resource schema to create a CodeArtifact domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html)", "allOf": [ { "type": "object", @@ -14836,14 +14932,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::Dashboard" + "AWS::CodeArtifact::Domain" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html)" + "The resource schema to create a CodeArtifact domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-dashboard.json" + "$ref": "resources/aws-codeartifact-domain.json" } }, "required": [ @@ -14857,9 +14953,9 @@ ], "additionalProperties": false }, - "AWS_AutoScaling_ScheduledAction": { + "AWS_ElastiCache_ParameterGroup": { "type": "object", - "markdownDescription": "The AWS::AutoScaling::ScheduledAction resource specifies an Amazon EC2 Auto Scaling scheduled action so that the Auto Scaling group can change the number of instances available for your application in response to predictable load changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scheduledaction.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html)", "allOf": [ { "type": "object", @@ -14867,14 +14963,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScaling::ScheduledAction" + "AWS::ElastiCache::ParameterGroup" ], "markdownEnumDescriptions": [ - "The AWS::AutoScaling::ScheduledAction resource specifies an Amazon EC2 Auto Scaling scheduled action so that the Auto Scaling group can change the number of instances available for your application in response to predictable load changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scheduledaction.html)" + "Resource Type definition for AWS::ElastiCache::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscaling-scheduledaction.json" + "$ref": "resources/aws-elasticache-parametergroup.json" } }, "required": [ @@ -14888,9 +14984,9 @@ ], "additionalProperties": false }, - "AWS_ACMPCA_Certificate": { + "AWS_EC2_VPC": { "type": "object", - "markdownDescription": "The ``AWS::ACMPCA::Certificate`` resource is used to issue a certificate using your private certificate authority. For more information, see the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html)", + "markdownDescription": "Specifies a virtual private cloud (VPC).\n To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html)", "allOf": [ { "type": "object", @@ -14898,19 +14994,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ACMPCA::Certificate" + "AWS::EC2::VPC" ], "markdownEnumDescriptions": [ - "The ``AWS::ACMPCA::Certificate`` resource is used to issue a certificate using your private certificate authority. For more information, see the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html)" + "Specifies a virtual private cloud (VPC).\n To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html)" ] }, "Properties": { - "$ref": "resources/aws-acmpca-certificate.json" + "$ref": "resources/aws-ec2-vpc.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -14919,9 +15014,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_ContainerGroupDefinition": { + "AWS_IoTSiteWise_Dataset": { "type": "object", - "markdownDescription": "The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dataset.html)", "allOf": [ { "type": "object", @@ -14929,14 +15024,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::ContainerGroupDefinition" + "AWS::IoTSiteWise::Dataset" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html)" + "Resource schema for AWS::IoTSiteWise::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dataset.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-containergroupdefinition.json" + "$ref": "resources/aws-iotsitewise-dataset.json" } }, "required": [ @@ -14950,9 +15045,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_UsagePlanKey": { + "AWS_AppStream_AppBlockBuilder": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::UsagePlanKey`` resource associates an API key with a usage plan. This association determines which users the usage plan is applied to. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::AppBlockBuilder. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblockbuilder.html)", "allOf": [ { "type": "object", @@ -14960,14 +15055,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::UsagePlanKey" + "AWS::AppStream::AppBlockBuilder" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::UsagePlanKey`` resource associates an API key with a usage plan. This association determines which users the usage plan is applied to. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html)" + "Resource Type definition for AWS::AppStream::AppBlockBuilder. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblockbuilder.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-usageplankey.json" + "$ref": "resources/aws-appstream-appblockbuilder.json" } }, "required": [ @@ -14981,9 +15076,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_Permission": { + "AWS_IoT_PolicyPrincipalAttachment": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::Permission Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-permission.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html)", "allOf": [ { "type": "object", @@ -14991,14 +15086,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::Permission" + "AWS::IoT::PolicyPrincipalAttachment" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::Permission Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-permission.html)" + "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-permission.json" + "$ref": "resources/aws-iot-policyprincipalattachment.json" } }, "required": [ @@ -15012,9 +15107,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_WaitCondition": { + "AWS_Shield_ProactiveEngagement": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudFormation::WaitCondition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitcondition.html)", + "markdownDescription": "Authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html)", "allOf": [ { "type": "object", @@ -15022,18 +15117,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::WaitCondition" + "AWS::Shield::ProactiveEngagement" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudFormation::WaitCondition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitcondition.html)" + "Authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-waitcondition.json" + "$ref": "resources/aws-shield-proactiveengagement.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -15042,9 +15138,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_DocumentationVersion": { + "AWS_WAFRegional_ByteMatchSet": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::DocumentationVersion`` resource creates a snapshot of the documentation for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html)", "allOf": [ { "type": "object", @@ -15052,14 +15148,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::DocumentationVersion" + "AWS::WAFRegional::ByteMatchSet" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::DocumentationVersion`` resource creates a snapshot of the documentation for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html)" + "Resource Type definition for AWS::WAFRegional::ByteMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-documentationversion.json" + "$ref": "resources/aws-wafregional-bytematchset.json" } }, "required": [ @@ -15073,9 +15169,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SubnetNetworkAclAssociation": { + "AWS_EVS_Environment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetnetworkaclassociation.html)", + "markdownDescription": "An environment created within the EVS service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evs-environment.html)", "allOf": [ { "type": "object", @@ -15083,14 +15179,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SubnetNetworkAclAssociation" + "AWS::EVS::Environment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetnetworkaclassociation.html)" + "An environment created within the EVS service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evs-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-subnetnetworkaclassociation.json" + "$ref": "resources/aws-evs-environment.json" } }, "required": [ @@ -15104,9 +15200,9 @@ ], "additionalProperties": false }, - "AWS_SSMContacts_ContactChannel": { + "AWS_IoT_ProvisioningTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSMContacts::ContactChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contactchannel.html)", + "markdownDescription": "Creates a fleet provisioning template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html)", "allOf": [ { "type": "object", @@ -15114,18 +15210,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMContacts::ContactChannel" + "AWS::IoT::ProvisioningTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSMContacts::ContactChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contactchannel.html)" + "Creates a fleet provisioning template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmcontacts-contactchannel.json" + "$ref": "resources/aws-iot-provisioningtemplate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -15134,9 +15231,9 @@ ], "additionalProperties": false }, - "AWS_Connect_EvaluationForm": { + "AWS_PCS_Queue": { "type": "object", - "markdownDescription": "Creates an evaluation form for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-evaluationform.html)", + "markdownDescription": "AWS::PCS::Queue resource creates an AWS PCS queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html)", "allOf": [ { "type": "object", @@ -15144,14 +15241,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::EvaluationForm" + "AWS::PCS::Queue" ], "markdownEnumDescriptions": [ - "Creates an evaluation form for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-evaluationform.html)" + "AWS::PCS::Queue resource creates an AWS PCS queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-evaluationform.json" + "$ref": "resources/aws-pcs-queue.json" } }, "required": [ @@ -15165,9 +15262,9 @@ ], "additionalProperties": false }, - "AWS_Backup_ReportPlan": { + "AWS_Deadline_QueueLimitAssociation": { "type": "object", - "markdownDescription": "Contains detailed information about a report plan in AWS Backup Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::QueueLimitAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html)", "allOf": [ { "type": "object", @@ -15175,14 +15272,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::ReportPlan" + "AWS::Deadline::QueueLimitAssociation" ], "markdownEnumDescriptions": [ - "Contains detailed information about a report plan in AWS Backup Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html)" + "Resource Type definition for AWS::Deadline::QueueLimitAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-reportplan.json" + "$ref": "resources/aws-deadline-queuelimitassociation.json" } }, "required": [ @@ -15196,9 +15293,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationAzureBlob": { + "AWS_RDS_DBProxyTargetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DataSync::LocationAzureBlob. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html)", + "markdownDescription": "Resource schema for AWS::RDS::DBProxyTargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html)", "allOf": [ { "type": "object", @@ -15206,14 +15303,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationAzureBlob" + "AWS::RDS::DBProxyTargetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DataSync::LocationAzureBlob. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html)" + "Resource schema for AWS::RDS::DBProxyTargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationazureblob.json" + "$ref": "resources/aws-rds-dbproxytargetgroup.json" } }, "required": [ @@ -15227,9 +15324,9 @@ ], "additionalProperties": false }, - "AWS_Organizations_Policy": { + "AWS_Batch_ComputeEnvironment": { "type": "object", - "markdownDescription": "Policies in AWS Organizations enable you to manage different features of the AWS accounts in your organization. You can use policies when all features are enabled in your organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-policy.html)", + "markdownDescription": "Resource Type definition for AWS::Batch::ComputeEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html)", "allOf": [ { "type": "object", @@ -15237,14 +15334,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Organizations::Policy" + "AWS::Batch::ComputeEnvironment" ], "markdownEnumDescriptions": [ - "Policies in AWS Organizations enable you to manage different features of the AWS accounts in your organization. You can use policies when all features are enabled in your organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-policy.html)" + "Resource Type definition for AWS::Batch::ComputeEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html)" ] }, "Properties": { - "$ref": "resources/aws-organizations-policy.json" + "$ref": "resources/aws-batch-computeenvironment.json" } }, "required": [ @@ -15258,9 +15355,9 @@ ], "additionalProperties": false }, - "AWS_Connect_View": { + "AWS_Wisdom_QuickResponse": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::View \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-view.html)", + "markdownDescription": "Definition of AWS::Wisdom::QuickResponse Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-quickresponse.html)", "allOf": [ { "type": "object", @@ -15268,14 +15365,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::View" + "AWS::Wisdom::QuickResponse" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::View \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-view.html)" + "Definition of AWS::Wisdom::QuickResponse Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-quickresponse.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-view.json" + "$ref": "resources/aws-wisdom-quickresponse.json" } }, "required": [ @@ -15289,9 +15386,9 @@ ], "additionalProperties": false }, - "AWS_SystemsManagerSAP_Application": { + "AWS_GuardDuty_Filter": { "type": "object", - "markdownDescription": "Resource schema for AWS::SystemsManagerSAP::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-systemsmanagersap-application.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::Filter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html)", "allOf": [ { "type": "object", @@ -15299,14 +15396,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SystemsManagerSAP::Application" + "AWS::GuardDuty::Filter" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::SystemsManagerSAP::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-systemsmanagersap-application.html)" + "Resource Type definition for AWS::GuardDuty::Filter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html)" ] }, "Properties": { - "$ref": "resources/aws-systemsmanagersap-application.json" + "$ref": "resources/aws-guardduty-filter.json" } }, "required": [ @@ -15320,9 +15417,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_ElasticLoadBalancerAttachment": { + "AWS_NotificationsContacts_EmailContact": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::ElasticLoadBalancerAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elasticloadbalancerattachment.html)", + "markdownDescription": "Definition of AWS::NotificationsContacts::EmailContact Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notificationscontacts-emailcontact.html)", "allOf": [ { "type": "object", @@ -15330,14 +15427,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::ElasticLoadBalancerAttachment" + "AWS::NotificationsContacts::EmailContact" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::ElasticLoadBalancerAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elasticloadbalancerattachment.html)" + "Definition of AWS::NotificationsContacts::EmailContact Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notificationscontacts-emailcontact.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-elasticloadbalancerattachment.json" + "$ref": "resources/aws-notificationscontacts-emailcontact.json" } }, "required": [ @@ -15351,9 +15448,9 @@ ], "additionalProperties": false }, - "AWS_BillingConductor_BillingGroup": { + "AWS_EC2_VerifiedAccessEndpoint": { "type": "object", - "markdownDescription": "A billing group is a set of linked account which belong to the same end customer. It can be seen as a virtual consolidated billing family. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html)", + "markdownDescription": "The AWS::EC2::VerifiedAccessEndpoint resource creates an AWS EC2 Verified Access Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html)", "allOf": [ { "type": "object", @@ -15361,14 +15458,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BillingConductor::BillingGroup" + "AWS::EC2::VerifiedAccessEndpoint" ], "markdownEnumDescriptions": [ - "A billing group is a set of linked account which belong to the same end customer. It can be seen as a virtual consolidated billing family. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html)" + "The AWS::EC2::VerifiedAccessEndpoint resource creates an AWS EC2 Verified Access Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-billingconductor-billinggroup.json" + "$ref": "resources/aws-ec2-verifiedaccessendpoint.json" } }, "required": [ @@ -15382,9 +15479,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_Label": { + "AWS_SageMaker_App": { "type": "object", - "markdownDescription": "An label for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html)", "allOf": [ { "type": "object", @@ -15392,14 +15489,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::Label" + "AWS::SageMaker::App" ], "markdownEnumDescriptions": [ - "An label for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html)" + "Resource Type definition for AWS::SageMaker::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-label.json" + "$ref": "resources/aws-sagemaker-app.json" } }, "required": [ @@ -15413,9 +15510,9 @@ ], "additionalProperties": false }, - "AWS_IoTAnalytics_Datastore": { + "AWS_MediaConvert_JobTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html)", + "markdownDescription": "Resource Type definition for AWS::MediaConvert::JobTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html)", "allOf": [ { "type": "object", @@ -15423,18 +15520,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTAnalytics::Datastore" + "AWS::MediaConvert::JobTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoTAnalytics::Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html)" + "Resource Type definition for AWS::MediaConvert::JobTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-iotanalytics-datastore.json" + "$ref": "resources/aws-mediaconvert-jobtemplate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -15443,9 +15541,9 @@ ], "additionalProperties": false }, - "AWS_Logs_Destination": { + "AWS_EC2_TransitGatewayRoute": { "type": "object", - "markdownDescription": "The AWS::Logs::Destination resource specifies a CloudWatch Logs destination. A destination encapsulates a physical resource (such as an Amazon Kinesis data stream) and enables you to subscribe that resource to a stream of log events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html)", "allOf": [ { "type": "object", @@ -15453,14 +15551,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::Destination" + "AWS::EC2::TransitGatewayRoute" ], "markdownEnumDescriptions": [ - "The AWS::Logs::Destination resource specifies a CloudWatch Logs destination. A destination encapsulates a physical resource (such as an Amazon Kinesis data stream) and enables you to subscribe that resource to a stream of log events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html)" + "Resource Type definition for AWS::EC2::TransitGatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-destination.json" + "$ref": "resources/aws-ec2-transitgatewayroute.json" } }, "required": [ @@ -15474,9 +15572,9 @@ ], "additionalProperties": false }, - "AWS_EC2_RouteServerPeer": { + "AWS_Wisdom_AIAgentVersion": { "type": "object", - "markdownDescription": "VPC Route Server Peer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html)", + "markdownDescription": "Definition of AWS::Wisdom::AIAgentVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagentversion.html)", "allOf": [ { "type": "object", @@ -15484,14 +15582,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::RouteServerPeer" + "AWS::Wisdom::AIAgentVersion" ], "markdownEnumDescriptions": [ - "VPC Route Server Peer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html)" + "Definition of AWS::Wisdom::AIAgentVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagentversion.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-routeserverpeer.json" + "$ref": "resources/aws-wisdom-aiagentversion.json" } }, "required": [ @@ -15505,9 +15603,9 @@ ], "additionalProperties": false }, - "AWS_Backup_RestoreTestingPlan": { + "AWS_SMSVOICE_ResourcePolicy": { "type": "object", - "markdownDescription": "Definition of AWS::Backup::RestoreTestingPlan Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -15515,14 +15613,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::RestoreTestingPlan" + "AWS::SMSVOICE::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Definition of AWS::Backup::RestoreTestingPlan Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html)" + "Resource Type definition for AWS::SMSVOICE::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-restoretestingplan.json" + "$ref": "resources/aws-smsvoice-resourcepolicy.json" } }, "required": [ @@ -15536,9 +15634,9 @@ ], "additionalProperties": false }, - "AWS_EMR_Cluster": { + "AWS_Connect_HoursOfOperation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EMR::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::HoursOfOperation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html)", "allOf": [ { "type": "object", @@ -15546,14 +15644,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::Cluster" + "AWS::Connect::HoursOfOperation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EMR::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html)" + "Resource Type definition for AWS::Connect::HoursOfOperation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-cluster.json" + "$ref": "resources/aws-connect-hoursofoperation.json" } }, "required": [ @@ -15567,9 +15665,9 @@ ], "additionalProperties": false }, - "AWS_IVSChat_LoggingConfiguration": { + "AWS_ECS_ClusterCapacityProviderAssociations": { "type": "object", - "markdownDescription": "Resource type definition for AWS::IVSChat::LoggingConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-loggingconfiguration.html)", + "markdownDescription": "Associate a set of ECS Capacity Providers with a specified ECS Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html)", "allOf": [ { "type": "object", @@ -15577,14 +15675,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IVSChat::LoggingConfiguration" + "AWS::ECS::ClusterCapacityProviderAssociations" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::IVSChat::LoggingConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-loggingconfiguration.html)" + "Associate a set of ECS Capacity Providers with a specified ECS Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html)" ] }, "Properties": { - "$ref": "resources/aws-ivschat-loggingconfiguration.json" + "$ref": "resources/aws-ecs-clustercapacityproviderassociations.json" } }, "required": [ @@ -15598,9 +15696,9 @@ ], "additionalProperties": false }, - "AWS_DocDB_DBSubnetGroup": { + "AWS_BedrockAgentCore_Evaluator": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DocDB::DBSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::Evaluator - Creates a custom evaluator for agent quality assessment using LLM-as-a-Judge configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-evaluator.html)", "allOf": [ { "type": "object", @@ -15608,14 +15706,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DocDB::DBSubnetGroup" + "AWS::BedrockAgentCore::Evaluator" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DocDB::DBSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html)" + "Resource Type definition for AWS::BedrockAgentCore::Evaluator - Creates a custom evaluator for agent quality assessment using LLM-as-a-Judge configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-evaluator.html)" ] }, "Properties": { - "$ref": "resources/aws-docdb-dbsubnetgroup.json" + "$ref": "resources/aws-bedrockagentcore-evaluator.json" } }, "required": [ @@ -15629,9 +15727,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Device": { + "AWS_NetworkManager_TransitGatewayRegistration": { "type": "object", - "markdownDescription": "Resource schema for AWS::SageMaker::Device \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-device.html)", + "markdownDescription": "The AWS::NetworkManager::TransitGatewayRegistration type registers a transit gateway in your global network. The transit gateway can be in any AWS Region, but it must be owned by the same AWS account that owns the global network. You cannot register a transit gateway in more than one global network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html)", "allOf": [ { "type": "object", @@ -15639,14 +15737,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Device" + "AWS::NetworkManager::TransitGatewayRegistration" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::SageMaker::Device \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-device.html)" + "The AWS::NetworkManager::TransitGatewayRegistration type registers a transit gateway in your global network. The transit gateway can be in any AWS Region, but it must be owned by the same AWS account that owns the global network. You cannot register a transit gateway in more than one global network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-device.json" + "$ref": "resources/aws-networkmanager-transitgatewayregistration.json" } }, "required": [ @@ -15660,9 +15758,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_OrganizationConfiguration": { + "AWS_AppTest_TestCase": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::OrganizationConfiguration resource represents the configuration of your organization in Security Hub. Only the Security Hub administrator account can create Organization Configuration resource in each region and can opt-in to Central Configuration only in the aggregation region of FindingAggregator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-organizationconfiguration.html)", + "markdownDescription": "Represents a Test Case that can be captured and executed \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apptest-testcase.html)", "allOf": [ { "type": "object", @@ -15670,14 +15768,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::OrganizationConfiguration" + "AWS::AppTest::TestCase" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::OrganizationConfiguration resource represents the configuration of your organization in Security Hub. Only the Security Hub administrator account can create Organization Configuration resource in each region and can opt-in to Central Configuration only in the aggregation region of FindingAggregator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-organizationconfiguration.html)" + "Represents a Test Case that can be captured and executed \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apptest-testcase.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-organizationconfiguration.json" + "$ref": "resources/aws-apptest-testcase.json" } }, "required": [ @@ -15691,9 +15789,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_DistributionTenant": { + "AWS_DataZone_Owner": { "type": "object", - "markdownDescription": "The distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html)", + "markdownDescription": "A owner can set up authorization permissions on their resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-owner.html)", "allOf": [ { "type": "object", @@ -15701,14 +15799,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::DistributionTenant" + "AWS::DataZone::Owner" ], "markdownEnumDescriptions": [ - "The distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html)" + "A owner can set up authorization permissions on their resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-owner.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-distributiontenant.json" + "$ref": "resources/aws-datazone-owner.json" } }, "required": [ @@ -15722,9 +15820,9 @@ ], "additionalProperties": false }, - "AWS_Invoicing_InvoiceUnit": { + "AWS_IoT_ScheduledAudit": { "type": "object", - "markdownDescription": "An invoice unit is a set of mutually exclusive accounts that correspond to your business entity. Invoice units allow you to separate AWS account costs and configures your invoice for each business entity. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-invoicing-invoiceunit.html)", + "markdownDescription": "Scheduled audits can be used to specify the checks you want to perform during an audit and how often the audit should be run. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html)", "allOf": [ { "type": "object", @@ -15732,14 +15830,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Invoicing::InvoiceUnit" + "AWS::IoT::ScheduledAudit" ], "markdownEnumDescriptions": [ - "An invoice unit is a set of mutually exclusive accounts that correspond to your business entity. Invoice units allow you to separate AWS account costs and configures your invoice for each business entity. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-invoicing-invoiceunit.html)" + "Scheduled audits can be used to specify the checks you want to perform during an audit and how often the audit should be run. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html)" ] }, "Properties": { - "$ref": "resources/aws-invoicing-invoiceunit.json" + "$ref": "resources/aws-iot-scheduledaudit.json" } }, "required": [ @@ -15753,9 +15851,9 @@ ], "additionalProperties": false }, - "AWS_EC2_ClientVpnTargetNetworkAssociation": { + "AWS_SNS_Subscription": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnTargetNetworkAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html)", + "markdownDescription": "Resource Type definition for AWS::SNS::Subscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html)", "allOf": [ { "type": "object", @@ -15763,14 +15861,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::ClientVpnTargetNetworkAssociation" + "AWS::SNS::Subscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::ClientVpnTargetNetworkAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html)" + "Resource Type definition for AWS::SNS::Subscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-clientvpntargetnetworkassociation.json" + "$ref": "resources/aws-sns-subscription.json" } }, "required": [ @@ -15784,9 +15882,9 @@ ], "additionalProperties": false }, - "AWS_RDS_GlobalCluster": { + "AWS_ECS_Daemon": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::RDS::GlobalCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)", + "markdownDescription": "Information about a daemon resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-daemon.html)", "allOf": [ { "type": "object", @@ -15794,14 +15892,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::GlobalCluster" + "AWS::ECS::Daemon" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::RDS::GlobalCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)" + "Information about a daemon resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-daemon.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-globalcluster.json" + "$ref": "resources/aws-ecs-daemon.json" } }, "required": [ @@ -15814,9 +15912,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AIGuardrail": { + "AWS_VpcLattice_Listener": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AIGuardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrail.html)", + "markdownDescription": "Creates a listener for a service. Before you start using your Amazon VPC Lattice service, you must add one or more listeners. A listener is a process that checks for connection requests to your services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-listener.html)", "allOf": [ { "type": "object", @@ -15824,14 +15922,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AIGuardrail" + "AWS::VpcLattice::Listener" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AIGuardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrail.html)" + "Creates a listener for a service. Before you start using your Amazon VPC Lattice service, you must add one or more listeners. A listener is a process that checks for connection requests to your services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-listener.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-aiguardrail.json" + "$ref": "resources/aws-vpclattice-listener.json" } }, "required": [ @@ -15845,9 +15943,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesThinClient_Environment": { + "AWS_Pinpoint_InAppTemplate": { "type": "object", - "markdownDescription": "Resource type definition for AWS::WorkSpacesThinClient::Environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::InAppTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html)", "allOf": [ { "type": "object", @@ -15855,14 +15953,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesThinClient::Environment" + "AWS::Pinpoint::InAppTemplate" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::WorkSpacesThinClient::Environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html)" + "Resource Type definition for AWS::Pinpoint::InAppTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesthinclient-environment.json" + "$ref": "resources/aws-pinpoint-inapptemplate.json" } }, "required": [ @@ -15876,9 +15974,9 @@ ], "additionalProperties": false }, - "AWS_WorkspacesInstances_WorkspaceInstance": { + "AWS_Logs_LogAnomalyDetector": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WorkspacesInstances::WorkspaceInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-workspaceinstance.html)", + "markdownDescription": "The AWS::Logs::LogAnomalyDetector resource specifies a CloudWatch Logs LogAnomalyDetector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loganomalydetector.html)", "allOf": [ { "type": "object", @@ -15886,14 +15984,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkspacesInstances::WorkspaceInstance" + "AWS::Logs::LogAnomalyDetector" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WorkspacesInstances::WorkspaceInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-workspaceinstance.html)" + "The AWS::Logs::LogAnomalyDetector resource specifies a CloudWatch Logs LogAnomalyDetector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loganomalydetector.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesinstances-workspaceinstance.json" + "$ref": "resources/aws-logs-loganomalydetector.json" } }, "required": [ @@ -15906,9 +16004,9 @@ ], "additionalProperties": false }, - "AWS_ECS_TaskSet": { + "AWS_IoTWireless_MulticastGroup": { "type": "object", - "markdownDescription": "Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html)", + "markdownDescription": "Create and manage Multicast groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html)", "allOf": [ { "type": "object", @@ -15916,14 +16014,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ECS::TaskSet" + "AWS::IoTWireless::MulticastGroup" ], "markdownEnumDescriptions": [ - "Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html)" + "Create and manage Multicast groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ecs-taskset.json" + "$ref": "resources/aws-iotwireless-multicastgroup.json" } }, "required": [ @@ -15937,9 +16035,9 @@ ], "additionalProperties": false }, - "AWS_Location_TrackerConsumer": { + "AWS_ServiceCatalog_PortfolioPrincipalAssociation": { "type": "object", - "markdownDescription": "Definition of AWS::Location::TrackerConsumer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html)", "allOf": [ { "type": "object", @@ -15947,14 +16045,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::ServiceCatalog::PortfolioPrincipalAssociation" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::TrackerConsumer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html)" + "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-location-trackerconsumer.json" + "$ref": "resources/aws-servicecatalog-portfolioprincipalassociation.json" } }, "required": [ @@ -15968,9 +16066,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_DataSet": { + "AWS_DataZone_Project": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::DataSet Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dataset.html)", + "markdownDescription": "Amazon DataZone projects are business use case\u2013based groupings of people, assets (data), and tools used to simplify access to the AWS analytics. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-project.html)", "allOf": [ { "type": "object", @@ -15978,18 +16076,19 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::DataSet" + "AWS::DataZone::Project" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::DataSet Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dataset.html)" + "Amazon DataZone projects are business use case\u2013based groupings of people, assets (data), and tools used to simplify access to the AWS analytics. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-project.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-dataset.json" + "$ref": "resources/aws-datazone-project.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -15998,9 +16097,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_LifecyclePolicy": { + "AWS_IoT_CustomMetric": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-lifecyclepolicy.html)", + "markdownDescription": "A custom metric published by your devices to Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html)", "allOf": [ { "type": "object", @@ -16008,14 +16107,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::LifecyclePolicy" + "AWS::IoT::CustomMetric" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-lifecyclepolicy.html)" + "A custom metric published by your devices to Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-lifecyclepolicy.json" + "$ref": "resources/aws-iot-custommetric.json" } }, "required": [ @@ -16029,9 +16128,9 @@ ], "additionalProperties": false }, - "AWS_GroundStation_DataflowEndpointGroup": { + "AWS_Omics_Workflow": { "type": "object", - "markdownDescription": "AWS Ground Station DataflowEndpointGroup schema for CloudFormation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html)", + "markdownDescription": "Definition of AWS::Omics::Workflow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflow.html)", "allOf": [ { "type": "object", @@ -16039,19 +16138,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GroundStation::DataflowEndpointGroup" + "AWS::Omics::Workflow" ], "markdownEnumDescriptions": [ - "AWS Ground Station DataflowEndpointGroup schema for CloudFormation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html)" + "Definition of AWS::Omics::Workflow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflow.html)" ] }, "Properties": { - "$ref": "resources/aws-groundstation-dataflowendpointgroup.json" + "$ref": "resources/aws-omics-workflow.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -16060,9 +16158,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_CloudFrontOriginAccessIdentity": { + "AWS_BedrockAgentCore_PolicyEngine": { "type": "object", - "markdownDescription": "The request to create a new origin access identity (OAI). An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content. For more information, see [Restricting Access to Amazon S3 Content by Using an Origin Access Identity](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::PolicyEngine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-policyengine.html)", "allOf": [ { "type": "object", @@ -16070,14 +16168,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::CloudFrontOriginAccessIdentity" + "AWS::BedrockAgentCore::PolicyEngine" ], "markdownEnumDescriptions": [ - "The request to create a new origin access identity (OAI). An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content. For more information, see [Restricting Access to Amazon S3 Content by Using an Origin Access Identity](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html)" + "Resource Type definition for AWS::BedrockAgentCore::PolicyEngine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-policyengine.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-cloudfrontoriginaccessidentity.json" + "$ref": "resources/aws-bedrockagentcore-policyengine.json" } }, "required": [ @@ -16091,9 +16189,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_MulticastGroup": { + "AWS_Omics_SequenceStore": { "type": "object", - "markdownDescription": "Create and manage Multicast groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Omics::SequenceStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-sequencestore.html)", "allOf": [ { "type": "object", @@ -16101,14 +16199,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::MulticastGroup" + "AWS::Omics::SequenceStore" ], "markdownEnumDescriptions": [ - "Create and manage Multicast groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html)" + "Resource Type definition for AWS::Omics::SequenceStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-sequencestore.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-multicastgroup.json" + "$ref": "resources/aws-omics-sequencestore.json" } }, "required": [ @@ -16122,9 +16220,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SubnetRouteTableAssociation": { + "AWS_Events_EventBusPolicy": { "type": "object", - "markdownDescription": "Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Events::EventBusPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)", "allOf": [ { "type": "object", @@ -16132,14 +16230,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SubnetRouteTableAssociation" + "AWS::Events::EventBusPolicy" ], "markdownEnumDescriptions": [ - "Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html)" + "Resource Type definition for AWS::Events::EventBusPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-subnetroutetableassociation.json" + "$ref": "resources/aws-events-eventbuspolicy.json" } }, "required": [ @@ -16153,9 +16251,9 @@ ], "additionalProperties": false }, - "AWS_AppIntegrations_EventIntegration": { + "AWS_OpsWorks_Stack": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppIntegrations::EventIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html)", "allOf": [ { "type": "object", @@ -16163,14 +16261,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppIntegrations::EventIntegration" + "AWS::OpsWorks::Stack" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppIntegrations::EventIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html)" + "Resource Type definition for AWS::OpsWorks::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html)" ] }, "Properties": { - "$ref": "resources/aws-appintegrations-eventintegration.json" + "$ref": "resources/aws-opsworks-stack.json" } }, "required": [ @@ -16184,9 +16282,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_DelegatedAdmin": { + "AWS_DirectConnect_TransitVirtualInterface": { "type": "object", - "markdownDescription": "The ``AWS::SecurityHub::DelegatedAdmin`` resource designates the delegated ASHlong administrator account for an organization. You must enable the integration between ASH and AOlong before you can designate a delegated ASH administrator. Only the management account for an organization can designate the delegated ASH administrator account. For more information, see [Designating the delegated administrator](https://docs.aws.amazon.com/securityhub/latest/userguide/designate-orgs-admin-account.html#designate-admin-instructions) in the *User Guide*.\n To change the delegated administrator account, remove the current delegated administrator account, and then designate the new account.\n To designate multiple delegated administrators in different organizations and AWS-Regions, we recommend using [mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html).\n Tags aren't supported for this resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::TransitVirtualInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-transitvirtualinterface.html)", "allOf": [ { "type": "object", @@ -16194,14 +16292,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::DelegatedAdmin" + "AWS::DirectConnect::TransitVirtualInterface" ], "markdownEnumDescriptions": [ - "The ``AWS::SecurityHub::DelegatedAdmin`` resource designates the delegated ASHlong administrator account for an organization. You must enable the integration between ASH and AOlong before you can designate a delegated ASH administrator. Only the management account for an organization can designate the delegated ASH administrator account. For more information, see [Designating the delegated administrator](https://docs.aws.amazon.com/securityhub/latest/userguide/designate-orgs-admin-account.html#designate-admin-instructions) in the *User Guide*.\n To change the delegated administrator account, remove the current delegated administrator account, and then designate the new account.\n To designate multiple delegated administrators in different organizations and AWS-Regions, we recommend using [mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html).\n Tags aren't supported for this resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html)" + "Resource Type definition for AWS::DirectConnect::TransitVirtualInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-transitvirtualinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-delegatedadmin.json" + "$ref": "resources/aws-directconnect-transitvirtualinterface.json" } }, "required": [ @@ -16215,9 +16313,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_DataSource": { + "AWS_EC2_SubnetNetworkAclAssociation": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetnetworkaclassociation.html)", "allOf": [ { "type": "object", @@ -16225,14 +16323,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::DataSource" + "AWS::EC2::SubnetNetworkAclAssociation" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html)" + "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetnetworkaclassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-datasource.json" + "$ref": "resources/aws-ec2-subnetnetworkaclassociation.json" } }, "required": [ @@ -16246,9 +16344,9 @@ ], "additionalProperties": false }, - "AWS_AmplifyUIBuilder_Form": { + "AWS_EMRContainers_SecurityConfiguration": { "type": "object", - "markdownDescription": "Definition of AWS::AmplifyUIBuilder::Form Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-form.html)", + "markdownDescription": "Resource Schema of AWS::EMRContainers::SecurityConfiguration Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html)", "allOf": [ { "type": "object", @@ -16256,18 +16354,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AmplifyUIBuilder::Form" + "AWS::EMRContainers::SecurityConfiguration" ], "markdownEnumDescriptions": [ - "Definition of AWS::AmplifyUIBuilder::Form Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-form.html)" + "Resource Schema of AWS::EMRContainers::SecurityConfiguration Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-amplifyuibuilder-form.json" + "$ref": "resources/aws-emrcontainers-securityconfiguration.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -16276,9 +16375,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_VpcLink": { + "AWS_Backup_BackupPlan": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::VpcLink`` resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from ``PENDING`` to ``AVAILABLE`` to successfully create a VPC link, which can take up to 10 minutes. To learn more, see [Working with VPC Links for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html)", + "markdownDescription": "Resource Type definition for AWS::Backup::BackupPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html)", "allOf": [ { "type": "object", @@ -16286,14 +16385,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::VpcLink" + "AWS::Backup::BackupPlan" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::VpcLink`` resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from ``PENDING`` to ``AVAILABLE`` to successfully create a VPC link, which can take up to 10 minutes. To learn more, see [Working with VPC Links for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html)" + "Resource Type definition for AWS::Backup::BackupPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-vpclink.json" + "$ref": "resources/aws-backup-backupplan.json" } }, "required": [ @@ -16307,9 +16406,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_DataAccessor": { + "AWS_ApiGateway_DocumentationVersion": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::DataAccessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-dataaccessor.html)", + "markdownDescription": "The ``AWS::ApiGateway::DocumentationVersion`` resource creates a snapshot of the documentation for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html)", "allOf": [ { "type": "object", @@ -16317,14 +16416,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::DataAccessor" + "AWS::ApiGateway::DocumentationVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::DataAccessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-dataaccessor.html)" + "The ``AWS::ApiGateway::DocumentationVersion`` resource creates a snapshot of the documentation for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-dataaccessor.json" + "$ref": "resources/aws-apigateway-documentationversion.json" } }, "required": [ @@ -16338,9 +16437,9 @@ ], "additionalProperties": false }, - "AWS_Evidently_Launch": { + "AWS_EC2_TransitGatewayConnectPeer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Evidently::Launch. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayConnectPeer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnectpeer.html)", "allOf": [ { "type": "object", @@ -16348,14 +16447,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Evidently::Launch" + "AWS::EC2::TransitGatewayConnectPeer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Evidently::Launch. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html)" + "Resource Type definition for AWS::EC2::TransitGatewayConnectPeer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnectpeer.html)" ] }, "Properties": { - "$ref": "resources/aws-evidently-launch.json" + "$ref": "resources/aws-ec2-transitgatewayconnectpeer.json" } }, "required": [ @@ -16369,9 +16468,9 @@ ], "additionalProperties": false }, - "AWS_B2BI_Transformer": { + "AWS_S3Tables_TableBucket": { "type": "object", - "markdownDescription": "Definition of AWS::B2BI::Transformer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html)", + "markdownDescription": "Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html)", "allOf": [ { "type": "object", @@ -16379,14 +16478,14 @@ "Type": { "type": "string", "enum": [ - "AWS::B2BI::Transformer" + "AWS::S3Tables::TableBucket" ], "markdownEnumDescriptions": [ - "Definition of AWS::B2BI::Transformer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html)" + "Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html)" ] }, "Properties": { - "$ref": "resources/aws-b2bi-transformer.json" + "$ref": "resources/aws-s3tables-tablebucket.json" } }, "required": [ @@ -16400,9 +16499,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolResourceServer": { + "AWS_MediaLive_Channel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolResourceServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html)", + "markdownDescription": "Resource Type definition for AWS::MediaLive::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html)", "allOf": [ { "type": "object", @@ -16410,19 +16509,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolResourceServer" + "AWS::MediaLive::Channel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolResourceServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html)" + "Resource Type definition for AWS::MediaLive::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpoolresourceserver.json" + "$ref": "resources/aws-medialive-channel.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -16431,9 +16529,9 @@ ], "additionalProperties": false }, - "AWS_S3Express_DirectoryBucket": { + "AWS_IoTFleetWise_StateTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::S3Express::DirectoryBucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::StateTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-statetemplate.html)", "allOf": [ { "type": "object", @@ -16441,14 +16539,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Express::DirectoryBucket" + "AWS::IoTFleetWise::StateTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::S3Express::DirectoryBucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html)" + "Definition of AWS::IoTFleetWise::StateTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-statetemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-s3express-directorybucket.json" + "$ref": "resources/aws-iotfleetwise-statetemplate.json" } }, "required": [ @@ -16462,9 +16560,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_LoggerDefinition": { + "AWS_OpenSearchServerless_VpcEndpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::LoggerDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html)", + "markdownDescription": "Amazon OpenSearchServerless vpc endpoint resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-vpcendpoint.html)", "allOf": [ { "type": "object", @@ -16472,14 +16570,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::LoggerDefinition" + "AWS::OpenSearchServerless::VpcEndpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::LoggerDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html)" + "Amazon OpenSearchServerless vpc endpoint resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-vpcendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-loggerdefinition.json" + "$ref": "resources/aws-opensearchserverless-vpcendpoint.json" } }, "required": [ @@ -16493,9 +16591,9 @@ ], "additionalProperties": false }, - "AWS_MSK_Configuration": { + "AWS_InspectorV2_Filter": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html)", + "markdownDescription": "Inspector Filter resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-filter.html)", "allOf": [ { "type": "object", @@ -16503,14 +16601,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::Configuration" + "AWS::InspectorV2::Filter" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html)" + "Inspector Filter resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-filter.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-configuration.json" + "$ref": "resources/aws-inspectorv2-filter.json" } }, "required": [ @@ -16524,9 +16622,9 @@ ], "additionalProperties": false }, - "AWS_EC2_Host": { + "AWS_AppStream_ApplicationEntitlementAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::Host \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationentitlementassociation.html)", "allOf": [ { "type": "object", @@ -16534,14 +16632,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::Host" + "AWS::AppStream::ApplicationEntitlementAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::Host \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html)" + "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationentitlementassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-host.json" + "$ref": "resources/aws-appstream-applicationentitlementassociation.json" } }, "required": [ @@ -16555,9 +16653,9 @@ ], "additionalProperties": false }, - "AWS_KendraRanking_ExecutionPlan": { + "AWS_Route53Resolver_ResolverQueryLoggingConfigAssociation": { "type": "object", - "markdownDescription": "A KendraRanking Rescore execution plan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendraranking-executionplan.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfigassociation.html)", "allOf": [ { "type": "object", @@ -16565,19 +16663,18 @@ "Type": { "type": "string", "enum": [ - "AWS::KendraRanking::ExecutionPlan" + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" ], "markdownEnumDescriptions": [ - "A KendraRanking Rescore execution plan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendraranking-executionplan.html)" + "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfigassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-kendraranking-executionplan.json" + "$ref": "resources/aws-route53resolver-resolverqueryloggingconfigassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -16586,9 +16683,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_Folder": { + "AWS_NetworkFirewall_FirewallPolicy": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::Folder Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-folder.html)", + "markdownDescription": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)", "allOf": [ { "type": "object", @@ -16596,18 +16693,19 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::Folder" + "AWS::NetworkFirewall::FirewallPolicy" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::Folder Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-folder.html)" + "Resource type definition for AWS::NetworkFirewall::FirewallPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-folder.json" + "$ref": "resources/aws-networkfirewall-firewallpolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -16616,9 +16714,9 @@ ], "additionalProperties": false }, - "AWS_Athena_WorkGroup": { + "AWS_OpenSearchServerless_Index": { "type": "object", - "markdownDescription": "Resource schema for AWS::Athena::WorkGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html)", + "markdownDescription": "An OpenSearch Serverless index resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-index.html)", "allOf": [ { "type": "object", @@ -16626,14 +16724,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Athena::WorkGroup" + "AWS::OpenSearchServerless::Index" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Athena::WorkGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html)" + "An OpenSearch Serverless index resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-index.html)" ] }, "Properties": { - "$ref": "resources/aws-athena-workgroup.json" + "$ref": "resources/aws-opensearchserverless-index.json" } }, "required": [ @@ -16647,9 +16745,9 @@ ], "additionalProperties": false }, - "AWS_MWAA_Environment": { + "AWS_ECS_Service": { "type": "object", - "markdownDescription": "Resource schema for AWS::MWAA::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html)", + "markdownDescription": "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. \n On June 12, 2025, Amazon ECS launched support for updating capacity provider configuration for ECS services. With this launch, ECS also aligned the CFN update behavior for ``CapacityProviderStrategy`` parameter with the standard practice. For more information, see [adds support for updating capacity provider configuration for ECS services](https://docs.aws.amazon.com/about-aws/whats-new/2025/05/amazon-ecs-capacity-provider-configuration-ecs/). Previously ECS ignored the ``CapacityProviderStrategy`` property if it was set to an empty list for example, ``[]`` in CFN, because updating capacity provider configuration was not supported. Now, with support for capacity provider updates, customers can remove capacity providers from a service by passing an empty list. When you specify an empty list (``[]``) for the ``CapacityProviderStrategy`` property in your CFN template, ECS will remove any capacity providers associated with the service, as follows:\n + For services created with a capacity provider strategy after the launch:\n + If there's a cluster default strategy set, the service will revert to using that default strategy.\n + If no cluster default strategy exists, you will receive the following error:\n No launch type to fall back to for empty capacity provider strategy. Your service was not created with a launch type.\n \n + For services created with a capacity provider strategy prior to the launch:\n + If ``CapacityProviderStrategy`` had ``FARGATE_SPOT`` or ``FARGATE`` capacity providers, the launch type will be updated to ``FARGATE`` and the capacity provider will be removed.\n + If the strategy included Auto Scaling group capacity providers, the service will revert to EC2 launch type, and the Auto Scaling group capacity providers will not be used.\n \n \n Recommended Actions\n If you are currently using ``CapacityProviderStrategy: []`` in your CFN templates, you should take one of the following actions:\n + If you do not intend to update the Capacity Provider Strategy:\n + Remove the ``CapacityProviderStrategy`` property entirely from your CFN template\n + Alternatively, use ``!Ref ::NoValue`` for the ``CapacityProviderStrategy`` property in your template\n \n + If you intend to maintain or update the Capacity Provider Strategy, specify the actual Capacity Provider Strategy for the service in your CFN template.\n \n If your CFN template had an empty list ([]) for ``CapacityProviderStrategy`` prior to the aforementioned launch on June 12, and you are using the same template with ``CapacityProviderStrategy: []``, you might encounter the following error:\n Invalid request provided: When switching from launch type to capacity provider strategy on an existing service, or making a change to a capacity provider strategy on a service that is already using one, you must force a new deployment. (Service: Ecs, Status Code: 400, Request ID: xxx) (SDK Attempt Count: 1)\" (RequestToken: xxx HandlerErrorCode: InvalidRequest) \n Note that CFN automatically initiates a new deployment when it detects a parameter change, but customers cannot choose to force a deployment through CFN. This is an invalid input scenario that requires one of the remediation actions listed above.\n If you are experiencing active production issues related to this change, contact AWS Support or your Technical Account Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html)", "allOf": [ { "type": "object", @@ -16657,19 +16755,18 @@ "Type": { "type": "string", "enum": [ - "AWS::MWAA::Environment" + "AWS::ECS::Service" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MWAA::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html)" + "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. \n On June 12, 2025, Amazon ECS launched support for updating capacity provider configuration for ECS services. With this launch, ECS also aligned the CFN update behavior for ``CapacityProviderStrategy`` parameter with the standard practice. For more information, see [adds support for updating capacity provider configuration for ECS services](https://docs.aws.amazon.com/about-aws/whats-new/2025/05/amazon-ecs-capacity-provider-configuration-ecs/). Previously ECS ignored the ``CapacityProviderStrategy`` property if it was set to an empty list for example, ``[]`` in CFN, because updating capacity provider configuration was not supported. Now, with support for capacity provider updates, customers can remove capacity providers from a service by passing an empty list. When you specify an empty list (``[]``) for the ``CapacityProviderStrategy`` property in your CFN template, ECS will remove any capacity providers associated with the service, as follows:\n + For services created with a capacity provider strategy after the launch:\n + If there's a cluster default strategy set, the service will revert to using that default strategy.\n + If no cluster default strategy exists, you will receive the following error:\n No launch type to fall back to for empty capacity provider strategy. Your service was not created with a launch type.\n \n + For services created with a capacity provider strategy prior to the launch:\n + If ``CapacityProviderStrategy`` had ``FARGATE_SPOT`` or ``FARGATE`` capacity providers, the launch type will be updated to ``FARGATE`` and the capacity provider will be removed.\n + If the strategy included Auto Scaling group capacity providers, the service will revert to EC2 launch type, and the Auto Scaling group capacity providers will not be used.\n \n \n Recommended Actions\n If you are currently using ``CapacityProviderStrategy: []`` in your CFN templates, you should take one of the following actions:\n + If you do not intend to update the Capacity Provider Strategy:\n + Remove the ``CapacityProviderStrategy`` property entirely from your CFN template\n + Alternatively, use ``!Ref ::NoValue`` for the ``CapacityProviderStrategy`` property in your template\n \n + If you intend to maintain or update the Capacity Provider Strategy, specify the actual Capacity Provider Strategy for the service in your CFN template.\n \n If your CFN template had an empty list ([]) for ``CapacityProviderStrategy`` prior to the aforementioned launch on June 12, and you are using the same template with ``CapacityProviderStrategy: []``, you might encounter the following error:\n Invalid request provided: When switching from launch type to capacity provider strategy on an existing service, or making a change to a capacity provider strategy on a service that is already using one, you must force a new deployment. (Service: Ecs, Status Code: 400, Request ID: xxx) (SDK Attempt Count: 1)\" (RequestToken: xxx HandlerErrorCode: InvalidRequest) \n Note that CFN automatically initiates a new deployment when it detects a parameter change, but customers cannot choose to force a deployment through CFN. This is an invalid input scenario that requires one of the remediation actions listed above.\n If you are experiencing active production issues related to this change, contact AWS Support or your Technical Account Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html)" ] }, "Properties": { - "$ref": "resources/aws-mwaa-environment.json" + "$ref": "resources/aws-ecs-service.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -16678,9 +16775,9 @@ ], "additionalProperties": false }, - "AWS_IoT_MitigationAction": { + "AWS_Pinpoint_APNSVoipSandboxChannel": { "type": "object", - "markdownDescription": "Mitigation actions can be used to take actions to mitigate issues that were found in an Audit finding or Detect violation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSVoipSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipsandboxchannel.html)", "allOf": [ { "type": "object", @@ -16688,14 +16785,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::MitigationAction" + "AWS::Pinpoint::APNSVoipSandboxChannel" ], "markdownEnumDescriptions": [ - "Mitigation actions can be used to take actions to mitigate issues that were found in an Audit finding or Detect violation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html)" + "Resource Type definition for AWS::Pinpoint::APNSVoipSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipsandboxchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-mitigationaction.json" + "$ref": "resources/aws-pinpoint-apnsvoipsandboxchannel.json" } }, "required": [ @@ -16709,9 +16806,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_ProtectConfiguration": { + "AWS_Connect_ViewVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::ProtectConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::ViewVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-viewversion.html)", "allOf": [ { "type": "object", @@ -16719,18 +16816,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::ProtectConfiguration" + "AWS::Connect::ViewVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::ProtectConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html)" + "Resource Type definition for AWS::Connect::ViewVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-viewversion.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-protectconfiguration.json" + "$ref": "resources/aws-connect-viewversion.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -16739,9 +16837,9 @@ ], "additionalProperties": false }, - "AWS_HealthImaging_Datastore": { + "AWS_DirectConnect_PrivateVirtualInterface": { "type": "object", - "markdownDescription": "Definition of AWS::HealthImaging::Datastore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthimaging-datastore.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::PrivateVirtualInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-privatevirtualinterface.html)", "allOf": [ { "type": "object", @@ -16749,18 +16847,19 @@ "Type": { "type": "string", "enum": [ - "AWS::HealthImaging::Datastore" + "AWS::DirectConnect::PrivateVirtualInterface" ], "markdownEnumDescriptions": [ - "Definition of AWS::HealthImaging::Datastore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthimaging-datastore.html)" + "Resource Type definition for AWS::DirectConnect::PrivateVirtualInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-privatevirtualinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-healthimaging-datastore.json" + "$ref": "resources/aws-directconnect-privatevirtualinterface.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -16769,9 +16868,9 @@ ], "additionalProperties": false }, - "AWS_BackupGateway_Hypervisor": { + "AWS_M2_Application": { "type": "object", - "markdownDescription": "Definition of AWS::BackupGateway::Hypervisor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backupgateway-hypervisor.html)", + "markdownDescription": "Represents an application that runs on an AWS Mainframe Modernization Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-application.html)", "allOf": [ { "type": "object", @@ -16779,18 +16878,19 @@ "Type": { "type": "string", "enum": [ - "AWS::BackupGateway::Hypervisor" + "AWS::M2::Application" ], "markdownEnumDescriptions": [ - "Definition of AWS::BackupGateway::Hypervisor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backupgateway-hypervisor.html)" + "Represents an application that runs on an AWS Mainframe Modernization Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-application.html)" ] }, "Properties": { - "$ref": "resources/aws-backupgateway-hypervisor.json" + "$ref": "resources/aws-m2-application.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -16799,9 +16899,9 @@ ], "additionalProperties": false }, - "AWS_S3_StorageLens": { + "AWS_Logs_LogStream": { "type": "object", - "markdownDescription": "The AWS::S3::StorageLens resource is an Amazon S3 resource type that you can use to create Storage Lens configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html)", + "markdownDescription": "Resource Type definition for AWS::Logs::LogStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html)", "allOf": [ { "type": "object", @@ -16809,14 +16909,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::StorageLens" + "AWS::Logs::LogStream" ], "markdownEnumDescriptions": [ - "The AWS::S3::StorageLens resource is an Amazon S3 resource type that you can use to create Storage Lens configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html)" + "Resource Type definition for AWS::Logs::LogStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-storagelens.json" + "$ref": "resources/aws-logs-logstream.json" } }, "required": [ @@ -16830,9 +16930,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Authorizer": { + "AWS_IoTThingsGraph_FlowTemplate": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::Authorizer`` resource creates an authorizer for a WebSocket API or an HTTP API. To learn more, see [Controlling and managing access to a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-control-access.html) and [Controlling and managing access to an HTTP API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html)", + "markdownDescription": "Resource Type definition for AWS::IoTThingsGraph::FlowTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html)", "allOf": [ { "type": "object", @@ -16840,14 +16940,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Authorizer" + "AWS::IoTThingsGraph::FlowTemplate" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::Authorizer`` resource creates an authorizer for a WebSocket API or an HTTP API. To learn more, see [Controlling and managing access to a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-control-access.html) and [Controlling and managing access to an HTTP API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html)" + "Resource Type definition for AWS::IoTThingsGraph::FlowTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-authorizer.json" + "$ref": "resources/aws-iotthingsgraph-flowtemplate.json" } }, "required": [ @@ -16861,9 +16961,9 @@ ], "additionalProperties": false }, - "AWS_EC2_CarrierGateway": { + "AWS_SecurityHub_ProductSubscription": { "type": "object", - "markdownDescription": "Resource Type definition for Carrier Gateway which describes the Carrier Gateway resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html)", + "markdownDescription": "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html)", "allOf": [ { "type": "object", @@ -16871,14 +16971,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::CarrierGateway" + "AWS::SecurityHub::ProductSubscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for Carrier Gateway which describes the Carrier Gateway resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html)" + "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-carriergateway.json" + "$ref": "resources/aws-securityhub-productsubscription.json" } }, "required": [ @@ -16892,9 +16992,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCEndpointConnectionNotification": { + "AWS_WAFRegional_RateBasedRule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCEndpointConnectionNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::RateBasedRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html)", "allOf": [ { "type": "object", @@ -16902,14 +17002,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::WAFRegional::RateBasedRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCEndpointConnectionNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html)" + "Resource Type definition for AWS::WAFRegional::RateBasedRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcendpointconnectionnotification.json" + "$ref": "resources/aws-wafregional-ratebasedrule.json" } }, "required": [ @@ -16923,9 +17023,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_XssMatchSet": { + "AWS_SecurityLake_AwsLogSource": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html)", + "markdownDescription": "Resource Type definition for AWS::SecurityLake::AwsLogSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html)", "allOf": [ { "type": "object", @@ -16933,14 +17033,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::XssMatchSet" + "AWS::SecurityLake::AwsLogSource" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html)" + "Resource Type definition for AWS::SecurityLake::AwsLogSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-xssmatchset.json" + "$ref": "resources/aws-securitylake-awslogsource.json" } }, "required": [ @@ -16954,9 +17054,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_WebApp": { + "AWS_EC2_ClientVpnRoute": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Transfer::WebApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-webapp.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html)", "allOf": [ { "type": "object", @@ -16964,14 +17064,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::WebApp" + "AWS::EC2::ClientVpnRoute" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Transfer::WebApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-webapp.html)" + "Resource Type definition for AWS::EC2::ClientVpnRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-webapp.json" + "$ref": "resources/aws-ec2-clientvpnroute.json" } }, "required": [ @@ -16985,9 +17085,9 @@ ], "additionalProperties": false }, - "AWS_Connect_PredefinedAttribute": { + "AWS_CloudFormation_LambdaHook": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::PredefinedAttribute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-predefinedattribute.html)", + "markdownDescription": "This is a CloudFormation resource for the first-party AWS::Hooks::LambdaHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html)", "allOf": [ { "type": "object", @@ -16995,14 +17095,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::PredefinedAttribute" + "AWS::CloudFormation::LambdaHook" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::PredefinedAttribute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-predefinedattribute.html)" + "This is a CloudFormation resource for the first-party AWS::Hooks::LambdaHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-predefinedattribute.json" + "$ref": "resources/aws-cloudformation-lambdahook.json" } }, "required": [ @@ -17016,9 +17116,9 @@ ], "additionalProperties": false }, - "AWS_EMRServerless_Application": { + "AWS_AppRunner_AutoScalingConfiguration": { "type": "object", - "markdownDescription": "Resource schema for AWS::EMRServerless::Application Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html)", + "markdownDescription": "Describes an AWS App Runner automatic configuration resource that enables automatic scaling of instances used to process web requests. You can share an auto scaling configuration across multiple services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-autoscalingconfiguration.html)", "allOf": [ { "type": "object", @@ -17026,14 +17126,44 @@ "Type": { "type": "string", "enum": [ - "AWS::EMRServerless::Application" + "AWS::AppRunner::AutoScalingConfiguration" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EMRServerless::Application Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrserverless-application.html)" + "Describes an AWS App Runner automatic configuration resource that enables automatic scaling of instances used to process web requests. You can share an auto scaling configuration across multiple services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-autoscalingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-emrserverless-application.json" + "$ref": "resources/aws-apprunner-autoscalingconfiguration.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Budgets_Budget": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Budgets::Budget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Budgets::Budget" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Budgets::Budget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-budgets-budget.json" } }, "required": [ @@ -17047,9 +17177,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_ServerlessCache": { + "AWS_QBusiness_DataSource": { "type": "object", - "markdownDescription": "The AWS::ElastiCache::ServerlessCache resource creates an Amazon ElastiCache Serverless Cache. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html)", + "markdownDescription": "Definition of AWS::QBusiness::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-datasource.html)", "allOf": [ { "type": "object", @@ -17057,14 +17187,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::ServerlessCache" + "AWS::QBusiness::DataSource" ], "markdownEnumDescriptions": [ - "The AWS::ElastiCache::ServerlessCache resource creates an Amazon ElastiCache Serverless Cache. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html)" + "Definition of AWS::QBusiness::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-datasource.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-serverlesscache.json" + "$ref": "resources/aws-qbusiness-datasource.json" } }, "required": [ @@ -17078,9 +17208,9 @@ ], "additionalProperties": false }, - "AWS_InspectorV2_CodeSecurityIntegration": { + "AWS_Chatbot_CustomAction": { "type": "object", - "markdownDescription": "Inspector CodeSecurityIntegration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityintegration.html)", + "markdownDescription": "Definition of AWS::Chatbot::CustomAction Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-customaction.html)", "allOf": [ { "type": "object", @@ -17088,18 +17218,19 @@ "Type": { "type": "string", "enum": [ - "AWS::InspectorV2::CodeSecurityIntegration" + "AWS::Chatbot::CustomAction" ], "markdownEnumDescriptions": [ - "Inspector CodeSecurityIntegration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityintegration.html)" + "Definition of AWS::Chatbot::CustomAction Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-customaction.html)" ] }, "Properties": { - "$ref": "resources/aws-inspectorv2-codesecurityintegration.json" + "$ref": "resources/aws-chatbot-customaction.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -17108,9 +17239,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerRuleSet": { + "AWS_Notifications_NotificationHub": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerRuleSet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerruleset.html)", + "markdownDescription": "Resource Type definition for AWS::Notifications::NotificationHub \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationhub.html)", "allOf": [ { "type": "object", @@ -17118,14 +17249,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerRuleSet" + "AWS::Notifications::NotificationHub" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerRuleSet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerruleset.html)" + "Resource Type definition for AWS::Notifications::NotificationHub \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationhub.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanagerruleset.json" + "$ref": "resources/aws-notifications-notificationhub.json" } }, "required": [ @@ -17169,101 +17300,9 @@ ], "additionalProperties": false }, - "AWS_CodeDeploy_Application": { - "type": "object", - "markdownDescription": "The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::CodeDeploy::Application" - ], - "markdownEnumDescriptions": [ - "The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-codedeploy-application.json" - } - }, - "required": [ - "Type" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_Athena_PreparedStatement": { - "type": "object", - "markdownDescription": "Resource schema for AWS::Athena::PreparedStatement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::Athena::PreparedStatement" - ], - "markdownEnumDescriptions": [ - "Resource schema for AWS::Athena::PreparedStatement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-athena-preparedstatement.json" - } - }, - "required": [ - "Type", - "Properties" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_Connect_EmailAddress": { - "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::EmailAddress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-emailaddress.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::Connect::EmailAddress" - ], - "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::EmailAddress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-emailaddress.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-connect-emailaddress.json" - } - }, - "required": [ - "Type", - "Properties" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_ApiGatewayV2_RouteResponse": { + "AWS_Glue_IdentityCenterConfiguration": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::RouteResponse`` resource creates a route response for a WebSocket API. For more information, see [Set up Route Responses for a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::IdentityCenterConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-identitycenterconfiguration.html)", "allOf": [ { "type": "object", @@ -17271,14 +17310,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::RouteResponse" + "AWS::Glue::IdentityCenterConfiguration" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::RouteResponse`` resource creates a route response for a WebSocket API. For more information, see [Set up Route Responses for a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html)" + "Resource Type definition for AWS::Glue::IdentityCenterConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-identitycenterconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-routeresponse.json" + "$ref": "resources/aws-glue-identitycenterconfiguration.json" } }, "required": [ @@ -17292,9 +17331,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_AuthPolicy": { + "AWS_CodeStarNotifications_NotificationRule": { "type": "object", - "markdownDescription": "Creates or updates the auth policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-authpolicy.html)", + "markdownDescription": "Resource Type definition for AWS::CodeStarNotifications::NotificationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html)", "allOf": [ { "type": "object", @@ -17302,14 +17341,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::AuthPolicy" + "AWS::CodeStarNotifications::NotificationRule" ], "markdownEnumDescriptions": [ - "Creates or updates the auth policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-authpolicy.html)" + "Resource Type definition for AWS::CodeStarNotifications::NotificationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-authpolicy.json" + "$ref": "resources/aws-codestarnotifications-notificationrule.json" } }, "required": [ @@ -17323,9 +17362,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_AnycastIpList": { + "AWS_CodeStarConnections_RepositoryLink": { "type": "object", - "markdownDescription": "An Anycast static IP list. For more information, see [Request Anycast static IPs to use for allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-anycastiplist.html)", + "markdownDescription": "Schema for AWS::CodeStarConnections::RepositoryLink resource which is used to aggregate repository metadata relevant to synchronizing source provider content to AWS Resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-repositorylink.html)", "allOf": [ { "type": "object", @@ -17333,14 +17372,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::AnycastIpList" + "AWS::CodeStarConnections::RepositoryLink" ], "markdownEnumDescriptions": [ - "An Anycast static IP list. For more information, see [Request Anycast static IPs to use for allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-anycastiplist.html)" + "Schema for AWS::CodeStarConnections::RepositoryLink resource which is used to aggregate repository metadata relevant to synchronizing source provider content to AWS Resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-repositorylink.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-anycastiplist.json" + "$ref": "resources/aws-codestarconnections-repositorylink.json" } }, "required": [ @@ -17354,9 +17393,9 @@ ], "additionalProperties": false }, - "AWS_GlobalAccelerator_EndpointGroup": { + "AWS_IoTAnalytics_Dataset": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::EndpointGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html)", + "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html)", "allOf": [ { "type": "object", @@ -17364,14 +17403,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GlobalAccelerator::EndpointGroup" + "AWS::IoTAnalytics::Dataset" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GlobalAccelerator::EndpointGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html)" + "Resource Type definition for AWS::IoTAnalytics::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html)" ] }, "Properties": { - "$ref": "resources/aws-globalaccelerator-endpointgroup.json" + "$ref": "resources/aws-iotanalytics-dataset.json" } }, "required": [ @@ -17385,9 +17424,9 @@ ], "additionalProperties": false }, - "AWS_ACMPCA_Permission": { + "AWS_Chime_AppInstance": { "type": "object", - "markdownDescription": "Permission set on private certificate authority \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html)", + "markdownDescription": "Resource Type definition for AWS::Chime::AppInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chime-appinstance.html)", "allOf": [ { "type": "object", @@ -17395,14 +17434,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ACMPCA::Permission" + "AWS::Chime::AppInstance" ], "markdownEnumDescriptions": [ - "Permission set on private certificate authority \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html)" + "Resource Type definition for AWS::Chime::AppInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chime-appinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-acmpca-permission.json" + "$ref": "resources/aws-chime-appinstance.json" } }, "required": [ @@ -17416,9 +17455,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_DataLakeSettings": { + "AWS_CloudFormation_TypeActivation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::LakeFormation::DataLakeSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html)", + "markdownDescription": "Enable a resource that has been published in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html)", "allOf": [ { "type": "object", @@ -17426,14 +17465,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::DataLakeSettings" + "AWS::CloudFormation::TypeActivation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::LakeFormation::DataLakeSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html)" + "Enable a resource that has been published in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-datalakesettings.json" + "$ref": "resources/aws-cloudformation-typeactivation.json" } }, "required": [ @@ -17446,9 +17485,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayRouteTable": { + "AWS_Cognito_UserPoolRiskConfigurationAttachment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayRouteTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html)", "allOf": [ { "type": "object", @@ -17456,14 +17495,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::Cognito::UserPoolRiskConfigurationAttachment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGatewayRouteTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html)" + "Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayroutetable.json" + "$ref": "resources/aws-cognito-userpoolriskconfigurationattachment.json" } }, "required": [ @@ -17477,9 +17516,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_ObjectType": { + "AWS_ResilienceHub_App": { "type": "object", - "markdownDescription": "An ObjectType resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html)", + "markdownDescription": "Resource Type Definition for AWS::ResilienceHub::App. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-app.html)", "allOf": [ { "type": "object", @@ -17487,14 +17526,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::ObjectType" + "AWS::ResilienceHub::App" ], "markdownEnumDescriptions": [ - "An ObjectType resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html)" + "Resource Type Definition for AWS::ResilienceHub::App. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-app.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-objecttype.json" + "$ref": "resources/aws-resiliencehub-app.json" } }, "required": [ @@ -17508,9 +17547,9 @@ ], "additionalProperties": false }, - "AWS_Neptune_DBSubnetGroup": { + "AWS_Athena_WorkGroup": { "type": "object", - "markdownDescription": "The AWS::Neptune::DBSubnetGroup type creates an Amazon Neptune DB subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same AWS Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html)", + "markdownDescription": "Resource schema for AWS::Athena::WorkGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html)", "allOf": [ { "type": "object", @@ -17518,14 +17557,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Neptune::DBSubnetGroup" + "AWS::Athena::WorkGroup" ], "markdownEnumDescriptions": [ - "The AWS::Neptune::DBSubnetGroup type creates an Amazon Neptune DB subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same AWS Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html)" + "Resource schema for AWS::Athena::WorkGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-neptune-dbsubnetgroup.json" + "$ref": "resources/aws-athena-workgroup.json" } }, "required": [ @@ -17539,9 +17578,9 @@ ], "additionalProperties": false }, - "AWS_Rekognition_Collection": { + "AWS_EKS_IdentityProviderConfig": { "type": "object", - "markdownDescription": "The AWS::Rekognition::Collection type creates an Amazon Rekognition Collection. A collection is a logical grouping of information about detected faces which can later be referenced for searches on the group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-collection.html)", + "markdownDescription": "An object representing an Amazon EKS IdentityProviderConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html)", "allOf": [ { "type": "object", @@ -17549,14 +17588,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Rekognition::Collection" + "AWS::EKS::IdentityProviderConfig" ], "markdownEnumDescriptions": [ - "The AWS::Rekognition::Collection type creates an Amazon Rekognition Collection. A collection is a logical grouping of information about detected faces which can later be referenced for searches on the group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-collection.html)" + "An object representing an Amazon EKS IdentityProviderConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-rekognition-collection.json" + "$ref": "resources/aws-eks-identityproviderconfig.json" } }, "required": [ @@ -17570,9 +17609,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_DataSource": { + "AWS_Route53Profiles_ProfileResourceAssociation": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::DataSource Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-datasource.html)", + "markdownDescription": "Resource Type definition for AWS::Route53Profiles::ProfileResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileresourceassociation.html)", "allOf": [ { "type": "object", @@ -17580,14 +17619,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::DataSource" + "AWS::Route53Profiles::ProfileResourceAssociation" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::DataSource Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-datasource.html)" + "Resource Type definition for AWS::Route53Profiles::ProfileResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileresourceassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-datasource.json" + "$ref": "resources/aws-route53profiles-profileresourceassociation.json" } }, "required": [ @@ -17601,9 +17640,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_LinkAssociation": { + "AWS_SES_MailManagerRelay": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::LinkAssociation type associates a link to a device. The device and link must be in the same global network and the same site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerRelay Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerrelay.html)", "allOf": [ { "type": "object", @@ -17611,14 +17650,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::LinkAssociation" + "AWS::SES::MailManagerRelay" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::LinkAssociation type associates a link to a device. The device and link must be in the same global network and the same site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html)" + "Definition of AWS::SES::MailManagerRelay Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerrelay.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-linkassociation.json" + "$ref": "resources/aws-ses-mailmanagerrelay.json" } }, "required": [ @@ -17632,9 +17671,9 @@ ], "additionalProperties": false }, - "AWS_AutoScaling_ScalingPolicy": { + "AWS_ServiceCatalog_ServiceActionAssociation": { "type": "object", - "markdownDescription": "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scalingpolicy.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalog::ServiceActionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html)", "allOf": [ { "type": "object", @@ -17642,14 +17681,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScaling::ScalingPolicy" + "AWS::ServiceCatalog::ServiceActionAssociation" ], "markdownEnumDescriptions": [ - "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scalingpolicy.html)" + "Resource Schema for AWS::ServiceCatalog::ServiceActionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscaling-scalingpolicy.json" + "$ref": "resources/aws-servicecatalog-serviceactionassociation.json" } }, "required": [ @@ -17663,9 +17702,9 @@ ], "additionalProperties": false }, - "AWS_ODB_CloudExadataInfrastructure": { + "AWS_SSMContacts_Plan": { "type": "object", - "markdownDescription": "The AWS::ODB::CloudExadataInfrastructure resource creates an Exadata Infrastructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudexadatainfrastructure.html)", + "markdownDescription": "Engagement Plan for a SSM Incident Manager Contact. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-plan.html)", "allOf": [ { "type": "object", @@ -17673,14 +17712,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ODB::CloudExadataInfrastructure" + "AWS::SSMContacts::Plan" ], "markdownEnumDescriptions": [ - "The AWS::ODB::CloudExadataInfrastructure resource creates an Exadata Infrastructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudexadatainfrastructure.html)" + "Engagement Plan for a SSM Incident Manager Contact. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-plan.html)" ] }, "Properties": { - "$ref": "resources/aws-odb-cloudexadatainfrastructure.json" + "$ref": "resources/aws-ssmcontacts-plan.json" } }, "required": [ @@ -17693,40 +17732,9 @@ ], "additionalProperties": false }, - "AWS_APS_Scraper": { - "type": "object", - "markdownDescription": "Resource Type definition for AWS::APS::Scraper \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::APS::Scraper" - ], - "markdownEnumDescriptions": [ - "Resource Type definition for AWS::APS::Scraper \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-aps-scraper.json" - } - }, - "required": [ - "Type", - "Properties" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_Lightsail_Container": { + "AWS_RAM_Permission": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-container.html)", + "markdownDescription": "Resource type definition for AWS::RAM::Permission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-permission.html)", "allOf": [ { "type": "object", @@ -17734,14 +17742,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Container" + "AWS::RAM::Permission" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-container.html)" + "Resource type definition for AWS::RAM::Permission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-permission.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-container.json" + "$ref": "resources/aws-ram-permission.json" } }, "required": [ @@ -17755,9 +17763,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_Analysis": { + "AWS_SageMaker_ModelQualityJobDefinition": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::Analysis Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-analysis.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelqualityjobdefinition.html)", "allOf": [ { "type": "object", @@ -17765,14 +17773,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::Analysis" + "AWS::SageMaker::ModelQualityJobDefinition" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::Analysis Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-analysis.html)" + "Resource Type definition for AWS::SageMaker::ModelQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelqualityjobdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-analysis.json" + "$ref": "resources/aws-sagemaker-modelqualityjobdefinition.json" } }, "required": [ @@ -17786,9 +17794,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_Assistant": { + "AWS_Connect_AgentStatus": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::Assistant Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::AgentStatus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-agentstatus.html)", "allOf": [ { "type": "object", @@ -17796,14 +17804,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::Assistant" + "AWS::Connect::AgentStatus" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::Assistant Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html)" + "Resource Type definition for AWS::Connect::AgentStatus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-agentstatus.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-assistant.json" + "$ref": "resources/aws-connect-agentstatus.json" } }, "required": [ @@ -17817,9 +17825,9 @@ ], "additionalProperties": false }, - "AWS_DataBrew_Dataset": { + "AWS_EMR_InstanceFleetConfig": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataBrew::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html)", + "markdownDescription": "Resource Type definition for AWS::EMR::InstanceFleetConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancefleetconfig.html)", "allOf": [ { "type": "object", @@ -17827,14 +17835,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataBrew::Dataset" + "AWS::EMR::InstanceFleetConfig" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataBrew::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html)" + "Resource Type definition for AWS::EMR::InstanceFleetConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancefleetconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-databrew-dataset.json" + "$ref": "resources/aws-emr-instancefleetconfig.json" } }, "required": [ @@ -17848,9 +17856,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationFSxLustre": { + "AWS_Cognito_UserPoolUser": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationFSxLustre. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxlustre.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolUser \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html)", "allOf": [ { "type": "object", @@ -17858,14 +17866,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationFSxLustre" + "AWS::Cognito::UserPoolUser" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationFSxLustre. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxlustre.html)" + "Resource Type definition for AWS::Cognito::UserPoolUser \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationfsxlustre.json" + "$ref": "resources/aws-cognito-userpooluser.json" } }, "required": [ @@ -17879,9 +17887,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_Distribution": { + "AWS_WorkSpacesWeb_DataProtectionSettings": { "type": "object", - "markdownDescription": "A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::DataProtectionSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-dataprotectionsettings.html)", "allOf": [ { "type": "object", @@ -17889,19 +17897,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::Distribution" + "AWS::WorkSpacesWeb::DataProtectionSettings" ], "markdownEnumDescriptions": [ - "A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)" + "Definition of AWS::WorkSpacesWeb::DataProtectionSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-dataprotectionsettings.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-distribution.json" + "$ref": "resources/aws-workspacesweb-dataprotectionsettings.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -17941,9 +17948,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchService_Application": { + "AWS_CloudWatch_OTelEnrichment": { "type": "object", - "markdownDescription": "Amazon OpenSearchService application resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-application.html)", + "markdownDescription": "AWS::CloudWatch::OTelEnrichment enables OTel metric enrichment in CloudWatch, allowing CloudWatch vended metrics to be available for PromQL querying enriched with AWS resource tags and metadata. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-otelenrichment.html)", "allOf": [ { "type": "object", @@ -17951,19 +17958,18 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchService::Application" + "AWS::CloudWatch::OTelEnrichment" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchService application resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-application.html)" + "AWS::CloudWatch::OTelEnrichment enables OTel metric enrichment in CloudWatch, allowing CloudWatch vended metrics to be available for PromQL querying enriched with AWS resource tags and metadata. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-otelenrichment.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchservice-application.json" + "$ref": "resources/aws-cloudwatch-otelenrichment.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -17972,9 +17978,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_DirectConnectGatewayAttachment": { + "AWS_EC2_DHCPOptions": { "type": "object", - "markdownDescription": "AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-directconnectgatewayattachment.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::DHCPOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html)", "allOf": [ { "type": "object", @@ -17982,19 +17988,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::DirectConnectGatewayAttachment" + "AWS::EC2::DHCPOptions" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-directconnectgatewayattachment.html)" + "Resource Type definition for AWS::EC2::DHCPOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-directconnectgatewayattachment.json" + "$ref": "resources/aws-ec2-dhcpoptions.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -18003,9 +18008,9 @@ ], "additionalProperties": false }, - "AWS_DynamoDB_Table": { + "AWS_ApiGatewayV2_Integration": { "type": "object", - "markdownDescription": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)", + "markdownDescription": "Resource Type definition for AWS::ApiGatewayV2::Integration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html)", "allOf": [ { "type": "object", @@ -18013,14 +18018,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DynamoDB::Table" + "AWS::ApiGatewayV2::Integration" ], "markdownEnumDescriptions": [ - "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)" + "Resource Type definition for AWS::ApiGatewayV2::Integration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html)" ] }, "Properties": { - "$ref": "resources/aws-dynamodb-table.json" + "$ref": "resources/aws-apigatewayv2-integration.json" } }, "required": [ @@ -18034,9 +18039,9 @@ ], "additionalProperties": false }, - "AWS_ECR_RepositoryCreationTemplate": { + "AWS_WAF_WebACL": { "type": "object", - "markdownDescription": "The details of the repository creation template associated with the request. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html)", + "markdownDescription": "Resource Type definition for AWS::WAF::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html)", "allOf": [ { "type": "object", @@ -18044,14 +18049,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::RepositoryCreationTemplate" + "AWS::WAF::WebACL" ], "markdownEnumDescriptions": [ - "The details of the repository creation template associated with the request. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html)" + "Resource Type definition for AWS::WAF::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-repositorycreationtemplate.json" + "$ref": "resources/aws-waf-webacl.json" } }, "required": [ @@ -18065,9 +18070,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_LoggerDefinitionVersion": { + "AWS_WorkspacesInstances_Volume": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::LoggerDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html)", + "markdownDescription": "Resource Type definition for AWS::WorkspacesInstances::Volume - Manages WorkSpaces Volume resources \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volume.html)", "allOf": [ { "type": "object", @@ -18075,14 +18080,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::LoggerDefinitionVersion" + "AWS::WorkspacesInstances::Volume" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::LoggerDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html)" + "Resource Type definition for AWS::WorkspacesInstances::Volume - Manages WorkSpaces Volume resources \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volume.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-loggerdefinitionversion.json" + "$ref": "resources/aws-workspacesinstances-volume.json" } }, "required": [ @@ -18096,9 +18101,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackage_PackagingGroup": { + "AWS_QuickSight_RefreshSchedule": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaPackage::PackagingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html)", + "markdownDescription": "Definition of the AWS::QuickSight::RefreshSchedule Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-refreshschedule.html)", "allOf": [ { "type": "object", @@ -18106,19 +18111,18 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackage::PackagingGroup" + "AWS::QuickSight::RefreshSchedule" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaPackage::PackagingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html)" + "Definition of the AWS::QuickSight::RefreshSchedule Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-refreshschedule.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackage-packaginggroup.json" + "$ref": "resources/aws-quicksight-refreshschedule.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -18127,9 +18131,9 @@ ], "additionalProperties": false }, - "AWS_MemoryDB_SubnetGroup": { + "AWS_IoTWireless_WirelessDeviceImportTask": { "type": "object", - "markdownDescription": "The AWS::MemoryDB::SubnetGroup resource creates an Amazon MemoryDB Subnet Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html)", + "markdownDescription": "Wireless Device Import Tasks \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdeviceimporttask.html)", "allOf": [ { "type": "object", @@ -18137,14 +18141,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MemoryDB::SubnetGroup" + "AWS::IoTWireless::WirelessDeviceImportTask" ], "markdownEnumDescriptions": [ - "The AWS::MemoryDB::SubnetGroup resource creates an Amazon MemoryDB Subnet Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html)" + "Wireless Device Import Tasks \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdeviceimporttask.html)" ] }, "Properties": { - "$ref": "resources/aws-memorydb-subnetgroup.json" + "$ref": "resources/aws-iotwireless-wirelessdeviceimporttask.json" } }, "required": [ @@ -18158,9 +18162,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryControl_RoutingControl": { + "AWS_DataZone_ProjectMembership": { "type": "object", - "markdownDescription": "AWS Route53 Recovery Control Routing Control resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-routingcontrol.html)", + "markdownDescription": "Definition of AWS::DataZone::ProjectMembership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html)", "allOf": [ { "type": "object", @@ -18168,14 +18172,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryControl::RoutingControl" + "AWS::DataZone::ProjectMembership" ], "markdownEnumDescriptions": [ - "AWS Route53 Recovery Control Routing Control resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-routingcontrol.html)" + "Definition of AWS::DataZone::ProjectMembership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoverycontrol-routingcontrol.json" + "$ref": "resources/aws-datazone-projectmembership.json" } }, "required": [ @@ -18189,9 +18193,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TrafficMirrorFilter": { + "AWS_XRay_Group": { "type": "object", - "markdownDescription": "Resource schema for AWS::EC2::TrafficMirrorFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html)", + "markdownDescription": "This schema provides construct and validation rules for AWS-XRay Group resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-group.html)", "allOf": [ { "type": "object", @@ -18199,18 +18203,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TrafficMirrorFilter" + "AWS::XRay::Group" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EC2::TrafficMirrorFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html)" + "This schema provides construct and validation rules for AWS-XRay Group resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-group.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-trafficmirrorfilter.json" + "$ref": "resources/aws-xray-group.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -18219,9 +18224,9 @@ ], "additionalProperties": false }, - "AWS_SES_DedicatedIpPool": { + "AWS_Connect_QuickConnect": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-dedicatedippool.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::QuickConnect \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html)", "allOf": [ { "type": "object", @@ -18229,18 +18234,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::DedicatedIpPool" + "AWS::Connect::QuickConnect" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-dedicatedippool.html)" + "Resource Type definition for AWS::Connect::QuickConnect \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-dedicatedippool.json" + "$ref": "resources/aws-connect-quickconnect.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -18249,9 +18255,9 @@ ], "additionalProperties": false }, - "AWS_SSM_Association": { + "AWS_EC2_LocalGatewayRoute": { "type": "object", - "markdownDescription": "The AWS::SSM::Association resource associates an SSM document in AWS Systems Manager with EC2 instances that contain a configuration agent to process the document. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html)", + "markdownDescription": "Resource Type definition for Local Gateway Route which describes a route for a local gateway route table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html)", "allOf": [ { "type": "object", @@ -18259,19 +18265,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::Association" + "AWS::EC2::LocalGatewayRoute" ], "markdownEnumDescriptions": [ - "The AWS::SSM::Association resource associates an SSM document in AWS Systems Manager with EC2 instances that contain a configuration agent to process the document. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html)" + "Resource Type definition for Local Gateway Route which describes a route for a local gateway route table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-association.json" + "$ref": "resources/aws-ec2-localgatewayroute.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -18280,9 +18285,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_Standard": { + "AWS_DMS_ReplicationTask": { "type": "object", - "markdownDescription": "The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation.\n You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable.\n For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-standard.html)", + "markdownDescription": "Resource Type definition for AWS::DMS::ReplicationTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html)", "allOf": [ { "type": "object", @@ -18290,14 +18295,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::Standard" + "AWS::DMS::ReplicationTask" ], "markdownEnumDescriptions": [ - "The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation.\n You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable.\n For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-standard.html)" + "Resource Type definition for AWS::DMS::ReplicationTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-standard.json" + "$ref": "resources/aws-dms-replicationtask.json" } }, "required": [ @@ -18311,9 +18316,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_UserAccessLoggingSettings": { + "AWS_Logs_DeliverySource": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::UserAccessLoggingSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-useraccessloggingsettings.html)", + "markdownDescription": " A delivery source is an AWS resource that sends logs to an AWS destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.\n\nOnly some AWS services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from AWS services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)", "allOf": [ { "type": "object", @@ -18321,14 +18326,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::UserAccessLoggingSettings" + "AWS::Logs::DeliverySource" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::UserAccessLoggingSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-useraccessloggingsettings.html)" + " A delivery source is an AWS resource that sends logs to an AWS destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.\n\nOnly some AWS services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from AWS services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-useraccessloggingsettings.json" + "$ref": "resources/aws-logs-deliverysource.json" } }, "required": [ @@ -18342,9 +18347,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_ResourceDefaultVersion": { + "AWS_EC2_SubnetRouteTableAssociation": { "type": "object", - "markdownDescription": "The default version of a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html)", + "markdownDescription": "Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html)", "allOf": [ { "type": "object", @@ -18352,18 +18357,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::ResourceDefaultVersion" + "AWS::EC2::SubnetRouteTableAssociation" ], "markdownEnumDescriptions": [ - "The default version of a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html)" + "Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-resourcedefaultversion.json" + "$ref": "resources/aws-ec2-subnetroutetableassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -18372,9 +18378,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ModelPackage": { + "AWS_Forecast_DatasetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelPackage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackage.html)", + "markdownDescription": "Represents a dataset group that holds a collection of related datasets \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-datasetgroup.html)", "allOf": [ { "type": "object", @@ -18382,18 +18388,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ModelPackage" + "AWS::Forecast::DatasetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ModelPackage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackage.html)" + "Represents a dataset group that holds a collection of related datasets \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-datasetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-modelpackage.json" + "$ref": "resources/aws-forecast-datasetgroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -18402,9 +18409,9 @@ ], "additionalProperties": false }, - "AWS_CodeGuruProfiler_ProfilingGroup": { + "AWS_WorkSpaces_Workspace": { "type": "object", - "markdownDescription": "This resource schema represents the Profiling Group resource in the Amazon CodeGuru Profiler service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html)", + "markdownDescription": "Resource Type definition for AWS::WorkSpaces::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html)", "allOf": [ { "type": "object", @@ -18412,14 +18419,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeGuruProfiler::ProfilingGroup" + "AWS::WorkSpaces::Workspace" ], "markdownEnumDescriptions": [ - "This resource schema represents the Profiling Group resource in the Amazon CodeGuru Profiler service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html)" + "Resource Type definition for AWS::WorkSpaces::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html)" ] }, "Properties": { - "$ref": "resources/aws-codeguruprofiler-profilinggroup.json" + "$ref": "resources/aws-workspaces-workspace.json" } }, "required": [ @@ -18433,9 +18440,9 @@ ], "additionalProperties": false }, - "AWS_Timestream_Database": { + "AWS_SES_Template": { "type": "object", - "markdownDescription": "The AWS::Timestream::Database resource creates a Timestream database. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-database.html)", + "markdownDescription": "Resource Type definition for AWS::SES::Template \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html)", "allOf": [ { "type": "object", @@ -18443,14 +18450,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Timestream::Database" + "AWS::SES::Template" ], "markdownEnumDescriptions": [ - "The AWS::Timestream::Database resource creates a Timestream database. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-database.html)" + "Resource Type definition for AWS::SES::Template \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html)" ] }, "Properties": { - "$ref": "resources/aws-timestream-database.json" + "$ref": "resources/aws-ses-template.json" } }, "required": [ @@ -18463,9 +18470,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LocalGatewayRouteTable": { + "AWS_ServiceCatalog_LaunchNotificationConstraint": { "type": "object", - "markdownDescription": "Resource Type definition for Local Gateway Route Table which describes a route table for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetable.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html)", "allOf": [ { "type": "object", @@ -18473,14 +18480,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LocalGatewayRouteTable" + "AWS::ServiceCatalog::LaunchNotificationConstraint" ], "markdownEnumDescriptions": [ - "Resource Type definition for Local Gateway Route Table which describes a route table for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetable.html)" + "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-localgatewayroutetable.json" + "$ref": "resources/aws-servicecatalog-launchnotificationconstraint.json" } }, "required": [ @@ -18494,9 +18501,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_ProjectProfile": { + "AWS_GuardDuty_IPSet": { "type": "object", - "markdownDescription": "Definition of AWS::DataZone::ProjectProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectprofile.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html)", "allOf": [ { "type": "object", @@ -18504,14 +18511,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::ProjectProfile" + "AWS::GuardDuty::IPSet" ], "markdownEnumDescriptions": [ - "Definition of AWS::DataZone::ProjectProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectprofile.html)" + "Resource Type definition for AWS::GuardDuty::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-projectprofile.json" + "$ref": "resources/aws-guardduty-ipset.json" } }, "required": [ @@ -18525,9 +18532,9 @@ ], "additionalProperties": false }, - "AWS_ApplicationAutoScaling_ScalingPolicy": { + "AWS_Route53Resolver_ResolverQueryLoggingConfig": { "type": "object", - "markdownDescription": "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfig.html)", "allOf": [ { "type": "object", @@ -18535,19 +18542,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ApplicationAutoScaling::ScalingPolicy" + "AWS::Route53Resolver::ResolverQueryLoggingConfig" ], "markdownEnumDescriptions": [ - "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html)" + "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-applicationautoscaling-scalingpolicy.json" + "$ref": "resources/aws-route53resolver-resolverqueryloggingconfig.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -18556,9 +18562,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_EventTrigger": { + "AWS_SageMaker_Pipeline": { "type": "object", - "markdownDescription": "An event trigger resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventtrigger.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html)", "allOf": [ { "type": "object", @@ -18566,14 +18572,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::EventTrigger" + "AWS::SageMaker::Pipeline" ], "markdownEnumDescriptions": [ - "An event trigger resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventtrigger.html)" + "Resource Type definition for AWS::SageMaker::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-eventtrigger.json" + "$ref": "resources/aws-sagemaker-pipeline.json" } }, "required": [ @@ -18587,9 +18593,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_Farm": { + "AWS_Glue_Trigger": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::Farm Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Trigger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html)", "allOf": [ { "type": "object", @@ -18597,14 +18603,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::Farm" + "AWS::Glue::Trigger" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::Farm Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html)" + "Resource Type definition for AWS::Glue::Trigger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-farm.json" + "$ref": "resources/aws-glue-trigger.json" } }, "required": [ @@ -18618,9 +18624,9 @@ ], "additionalProperties": false }, - "AWS_LookoutVision_Project": { + "AWS_ComputeOptimizer_AutomationRule": { "type": "object", - "markdownDescription": "The AWS::LookoutVision::Project type creates an Amazon Lookout for Vision project. A project is a grouping of the resources needed to create and manage a Lookout for Vision model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html)", + "markdownDescription": "Creates an AWS Compute Optimizer automation rule that automatically implements recommended actions based on your defined criteria and schedule. Automation rules are global resources that manage automated actions across all AWS Regions where Compute Optimizer Automation is available. Organization-level rules can only be created by the management account or delegated administrator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html)", "allOf": [ { "type": "object", @@ -18628,14 +18634,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LookoutVision::Project" + "AWS::ComputeOptimizer::AutomationRule" ], "markdownEnumDescriptions": [ - "The AWS::LookoutVision::Project type creates an Amazon Lookout for Vision project. A project is a grouping of the resources needed to create and manage a Lookout for Vision model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html)" + "Creates an AWS Compute Optimizer automation rule that automatically implements recommended actions based on your defined criteria and schedule. Automation rules are global resources that manage automated actions across all AWS Regions where Compute Optimizer Automation is available. Organization-level rules can only be created by the management account or delegated administrator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html)" ] }, "Properties": { - "$ref": "resources/aws-lookoutvision-project.json" + "$ref": "resources/aws-computeoptimizer-automationrule.json" } }, "required": [ @@ -18649,9 +18655,9 @@ ], "additionalProperties": false }, - "AWS_MediaTailor_ChannelPolicy": { + "AWS_IoTSiteWise_AssetModel": { "type": "object", - "markdownDescription": "Definition of AWS::MediaTailor::ChannelPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channelpolicy.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::AssetModel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html)", "allOf": [ { "type": "object", @@ -18659,14 +18665,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaTailor::ChannelPolicy" + "AWS::IoTSiteWise::AssetModel" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaTailor::ChannelPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channelpolicy.html)" + "Resource schema for AWS::IoTSiteWise::AssetModel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html)" ] }, "Properties": { - "$ref": "resources/aws-mediatailor-channelpolicy.json" + "$ref": "resources/aws-iotsitewise-assetmodel.json" } }, "required": [ @@ -18680,9 +18686,9 @@ ], "additionalProperties": false }, - "AWS_S3_MultiRegionAccessPointPolicy": { + "AWS_IoT_DomainConfiguration": { "type": "object", - "markdownDescription": "The policy to be attached to a Multi Region Access Point \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html)", + "markdownDescription": "Create and manage a Domain Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html)", "allOf": [ { "type": "object", @@ -18690,19 +18696,18 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::MultiRegionAccessPointPolicy" + "AWS::IoT::DomainConfiguration" ], "markdownEnumDescriptions": [ - "The policy to be attached to a Multi Region Access Point \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html)" + "Create and manage a Domain Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-multiregionaccesspointpolicy.json" + "$ref": "resources/aws-iot-domainconfiguration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -18711,9 +18716,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_Agent": { + "AWS_ApiGatewayV2_ApiMapping": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::Agent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::ApiMapping`` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html)", "allOf": [ { "type": "object", @@ -18721,14 +18726,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::Agent" + "AWS::ApiGatewayV2::ApiMapping" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::Agent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html)" + "The ``AWS::ApiGatewayV2::ApiMapping`` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-agent.json" + "$ref": "resources/aws-apigatewayv2-apimapping.json" } }, "required": [ @@ -18742,9 +18747,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalytics_Application": { + "AWS_Inspector_ResourceGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisAnalytics::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html)", + "markdownDescription": "Resource Type definition for AWS::Inspector::ResourceGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html)", "allOf": [ { "type": "object", @@ -18752,14 +18757,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalytics::Application" + "AWS::Inspector::ResourceGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisAnalytics::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html)" + "Resource Type definition for AWS::Inspector::ResourceGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalytics-application.json" + "$ref": "resources/aws-inspector-resourcegroup.json" } }, "required": [ @@ -18773,9 +18778,9 @@ ], "additionalProperties": false }, - "AWS_IAM_RolePolicy": { + "AWS_DataZone_Domain": { "type": "object", - "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM role.\n When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html). You can update a role's trust policy using [UpdateAssumeRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html). For information about roles, see [roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) in the *IAM User Guide*.\n A role can also have a managed policy attached to it. To attach a managed policy to a role, use [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed with a role, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html)", + "markdownDescription": "A domain is an organizing entity for connecting together assets, users, and their projects \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domain.html)", "allOf": [ { "type": "object", @@ -18783,14 +18788,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::RolePolicy" + "AWS::DataZone::Domain" ], "markdownEnumDescriptions": [ - "Adds or updates an inline policy document that is embedded in the specified IAM role.\n When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html). You can update a role's trust policy using [UpdateAssumeRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html). For information about roles, see [roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) in the *IAM User Guide*.\n A role can also have a managed policy attached to it. To attach a managed policy to a role, use [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed with a role, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html)" + "A domain is an organizing entity for connecting together assets, users, and their projects \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-rolepolicy.json" + "$ref": "resources/aws-datazone-domain.json" } }, "required": [ @@ -18804,9 +18809,9 @@ ], "additionalProperties": false }, - "AWS_AppIntegrations_DataIntegration": { + "AWS_ECR_PublicRepository": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppIntegrations::DataIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-dataintegration.html)", + "markdownDescription": "The ``AWS::ECR::PublicRepository`` resource specifies an Amazon Elastic Container Registry Public (Amazon ECR Public) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR public repositories](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repositories.html) in the *Amazon ECR Public User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html)", "allOf": [ { "type": "object", @@ -18814,19 +18819,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AppIntegrations::DataIntegration" + "AWS::ECR::PublicRepository" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppIntegrations::DataIntegration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-dataintegration.html)" + "The ``AWS::ECR::PublicRepository`` resource specifies an Amazon Elastic Container Registry Public (Amazon ECR Public) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR public repositories](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repositories.html) in the *Amazon ECR Public User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html)" ] }, "Properties": { - "$ref": "resources/aws-appintegrations-dataintegration.json" + "$ref": "resources/aws-ecr-publicrepository.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -18835,9 +18839,9 @@ ], "additionalProperties": false }, - "AWS_EC2_RouteTable": { + "AWS_CloudFormation_Macro": { "type": "object", - "markdownDescription": "Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.\n For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html)", + "markdownDescription": "Resource Type definition for AWS::CloudFormation::Macro \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html)", "allOf": [ { "type": "object", @@ -18845,14 +18849,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::RouteTable" + "AWS::CloudFormation::Macro" ], "markdownEnumDescriptions": [ - "Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.\n For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html)" + "Resource Type definition for AWS::CloudFormation::Macro \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-routetable.json" + "$ref": "resources/aws-cloudformation-macro.json" } }, "required": [ @@ -18866,9 +18870,9 @@ ], "additionalProperties": false }, - "AWS_WAFv2_RuleGroup": { + "AWS_Inspector_AssessmentTemplate": { "type": "object", - "markdownDescription": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)", + "markdownDescription": "Resource Type definition for AWS::Inspector::AssessmentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html)", "allOf": [ { "type": "object", @@ -18876,14 +18880,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFv2::RuleGroup" + "AWS::Inspector::AssessmentTemplate" ], "markdownEnumDescriptions": [ - "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)" + "Resource Type definition for AWS::Inspector::AssessmentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-wafv2-rulegroup.json" + "$ref": "resources/aws-inspector-assessmenttemplate.json" } }, "required": [ @@ -18897,9 +18901,9 @@ ], "additionalProperties": false }, - "AWS_EKS_FargateProfile": { + "AWS_AppSync_FunctionConfiguration": { "type": "object", - "markdownDescription": "Resource Schema for AWS::EKS::FargateProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html)", "allOf": [ { "type": "object", @@ -18907,14 +18911,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::FargateProfile" + "AWS::AppSync::FunctionConfiguration" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::EKS::FargateProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-fargateprofile.json" + "$ref": "resources/aws-appsync-functionconfiguration.json" } }, "required": [ @@ -18928,9 +18932,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_Version": { + "AWS_EMR_InstanceGroupConfig": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lambda::Version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html)", + "markdownDescription": "Resource Type definition for AWS::EMR::InstanceGroupConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html)", "allOf": [ { "type": "object", @@ -18938,14 +18942,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::Version" + "AWS::EMR::InstanceGroupConfig" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lambda::Version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html)" + "Resource Type definition for AWS::EMR::InstanceGroupConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-version.json" + "$ref": "resources/aws-emr-instancegroupconfig.json" } }, "required": [ @@ -18959,9 +18963,9 @@ ], "additionalProperties": false }, - "AWS_WAF_SqlInjectionMatchSet": { + "AWS_EC2_NetworkInsightsAnalysis": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html)", + "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html)", "allOf": [ { "type": "object", @@ -18969,14 +18973,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::SqlInjectionMatchSet" + "AWS::EC2::NetworkInsightsAnalysis" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html)" + "Resource schema for AWS::EC2::NetworkInsightsAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-sqlinjectionmatchset.json" + "$ref": "resources/aws-ec2-networkinsightsanalysis.json" } }, "required": [ @@ -18990,9 +18994,9 @@ ], "additionalProperties": false }, - "AWS_AutoScaling_LaunchConfiguration": { + "AWS_Connect_SecurityKey": { "type": "object", - "markdownDescription": "The AWS::AutoScaling::LaunchConfiguration resource specifies the launch configuration that can be used by an Auto Scaling group to configure Amazon EC2 instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::SecurityKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securitykey.html)", "allOf": [ { "type": "object", @@ -19000,14 +19004,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScaling::LaunchConfiguration" + "AWS::Connect::SecurityKey" ], "markdownEnumDescriptions": [ - "The AWS::AutoScaling::LaunchConfiguration resource specifies the launch configuration that can be used by an Auto Scaling group to configure Amazon EC2 instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)" + "Resource Type definition for AWS::Connect::SecurityKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securitykey.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscaling-launchconfiguration.json" + "$ref": "resources/aws-connect-securitykey.json" } }, "required": [ @@ -19021,9 +19025,9 @@ ], "additionalProperties": false }, - "AWS_Inspector_AssessmentTarget": { + "AWS_EC2_VPCEndpointConnectionNotification": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Inspector::AssessmentTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCEndpointConnectionNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html)", "allOf": [ { "type": "object", @@ -19031,18 +19035,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Inspector::AssessmentTarget" + "AWS::EC2::VPCEndpointConnectionNotification" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Inspector::AssessmentTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html)" + "Resource Type definition for AWS::EC2::VPCEndpointConnectionNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html)" ] }, "Properties": { - "$ref": "resources/aws-inspector-assessmenttarget.json" + "$ref": "resources/aws-ec2-vpcendpointconnectionnotification.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -19051,9 +19056,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_PolicyGrant": { + "AWS_APS_AnomalyDetector": { "type": "object", - "markdownDescription": "Policy Grant in AWS DataZone is an explicit authorization assignment that allows a specific principal (user, group, or project) to perform particular actions (such as creating glossary terms, managing projects, or accessing resources) on governed resources within a certain scope (like a Domain Unit or Project). Policy Grants are essentially the mechanism by which DataZone enforces fine-grained, role-based access control beyond what is possible through AWS IAM alone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-policygrant.html)", + "markdownDescription": "AnomalyDetector schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-anomalydetector.html)", "allOf": [ { "type": "object", @@ -19061,14 +19066,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::PolicyGrant" + "AWS::APS::AnomalyDetector" ], "markdownEnumDescriptions": [ - "Policy Grant in AWS DataZone is an explicit authorization assignment that allows a specific principal (user, group, or project) to perform particular actions (such as creating glossary terms, managing projects, or accessing resources) on governed resources within a certain scope (like a Domain Unit or Project). Policy Grants are essentially the mechanism by which DataZone enforces fine-grained, role-based access control beyond what is possible through AWS IAM alone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-policygrant.html)" + "AnomalyDetector schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-anomalydetector.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-policygrant.json" + "$ref": "resources/aws-aps-anomalydetector.json" } }, "required": [ @@ -19082,9 +19087,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayMulticastDomain": { + "AWS_Greengrass_Group": { "type": "object", - "markdownDescription": "The AWS::EC2::TransitGatewayMulticastDomain type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html)", "allOf": [ { "type": "object", @@ -19092,14 +19097,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayMulticastDomain" + "AWS::Greengrass::Group" ], "markdownEnumDescriptions": [ - "The AWS::EC2::TransitGatewayMulticastDomain type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html)" + "Resource Type definition for AWS::Greengrass::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewaymulticastdomain.json" + "$ref": "resources/aws-greengrass-group.json" } }, "required": [ @@ -19113,9 +19118,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_InferenceComponent": { + "AWS_BillingConductor_CustomLineItem": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::InferenceComponent \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferencecomponent.html)", + "markdownDescription": "A custom line item is an one time charge that is applied to a specific billing group's bill. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html)", "allOf": [ { "type": "object", @@ -19123,14 +19128,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::InferenceComponent" + "AWS::BillingConductor::CustomLineItem" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::InferenceComponent \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferencecomponent.html)" + "A custom line item is an one time charge that is applied to a specific billing group's bill. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-inferencecomponent.json" + "$ref": "resources/aws-billingconductor-customlineitem.json" } }, "required": [ @@ -19144,9 +19149,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationS3": { + "AWS_Pinpoint_EmailTemplate": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationS3 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::EmailTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailtemplate.html)", "allOf": [ { "type": "object", @@ -19154,14 +19159,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationS3" + "AWS::Pinpoint::EmailTemplate" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationS3 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html)" + "Resource Type definition for AWS::Pinpoint::EmailTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locations3.json" + "$ref": "resources/aws-pinpoint-emailtemplate.json" } }, "required": [ @@ -19175,9 +19180,9 @@ ], "additionalProperties": false }, - "AWS_InspectorV2_CisScanConfiguration": { + "AWS_EKS_Addon": { "type": "object", - "markdownDescription": "CIS Scan Configuration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-cisscanconfiguration.html)", + "markdownDescription": "Resource Schema for AWS::EKS::Addon \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html)", "allOf": [ { "type": "object", @@ -19185,14 +19190,14 @@ "Type": { "type": "string", "enum": [ - "AWS::InspectorV2::CisScanConfiguration" + "AWS::EKS::Addon" ], "markdownEnumDescriptions": [ - "CIS Scan Configuration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-cisscanconfiguration.html)" + "Resource Schema for AWS::EKS::Addon \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html)" ] }, "Properties": { - "$ref": "resources/aws-inspectorv2-cisscanconfiguration.json" + "$ref": "resources/aws-eks-addon.json" } }, "required": [ @@ -19206,9 +19211,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_GameSessionQueue": { + "AWS_EFS_FileSystem": { "type": "object", - "markdownDescription": "The AWS::GameLift::GameSessionQueue resource creates an Amazon GameLift (GameLift) game session queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html)", + "markdownDescription": "The ``AWS::EFS::FileSystem`` resource creates a new, empty file system in EFSlong (EFS). You must create a mount target ([AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)) to mount your EFS file system on an EC2 or other AWS cloud compute resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html)", "allOf": [ { "type": "object", @@ -19216,19 +19221,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::GameSessionQueue" + "AWS::EFS::FileSystem" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::GameSessionQueue resource creates an Amazon GameLift (GameLift) game session queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html)" + "The ``AWS::EFS::FileSystem`` resource creates a new, empty file system in EFSlong (EFS). You must create a mount target ([AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)) to mount your EFS file system on an EC2 or other AWS cloud compute resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-gamesessionqueue.json" + "$ref": "resources/aws-efs-filesystem.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -19237,9 +19241,9 @@ ], "additionalProperties": false }, - "AWS_EMR_Step": { + "AWS_ApplicationAutoScaling_ScalingPolicy": { "type": "object", - "markdownDescription": "Schema for AWS::EMR::Step \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html)", + "markdownDescription": "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html)", "allOf": [ { "type": "object", @@ -19247,14 +19251,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::Step" + "AWS::ApplicationAutoScaling::ScalingPolicy" ], "markdownEnumDescriptions": [ - "Schema for AWS::EMR::Step \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html)" + "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-step.json" + "$ref": "resources/aws-applicationautoscaling-scalingpolicy.json" } }, "required": [ @@ -19268,9 +19272,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_Plugin": { + "AWS_DirectConnect_PublicVirtualInterface": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::Plugin Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-plugin.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::PublicVirtualInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-publicvirtualinterface.html)", "allOf": [ { "type": "object", @@ -19278,14 +19282,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::Plugin" + "AWS::DirectConnect::PublicVirtualInterface" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::Plugin Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-plugin.html)" + "Resource Type definition for AWS::DirectConnect::PublicVirtualInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-publicvirtualinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-plugin.json" + "$ref": "resources/aws-directconnect-publicvirtualinterface.json" } }, "required": [ @@ -19299,9 +19303,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalogAppRegistry_ResourceAssociation": { + "AWS_BedrockAgentCore_BrowserCustom": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-resourceassociation.html)", + "markdownDescription": "Resource definition for AWS::BedrockAgentCore::BrowserCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browsercustom.html)", "allOf": [ { "type": "object", @@ -19309,14 +19313,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + "AWS::BedrockAgentCore::BrowserCustom" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-resourceassociation.html)" + "Resource definition for AWS::BedrockAgentCore::BrowserCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browsercustom.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalogappregistry-resourceassociation.json" + "$ref": "resources/aws-bedrockagentcore-browsercustom.json" } }, "required": [ @@ -19330,9 +19334,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackage_PackagingConfiguration": { + "AWS_VoiceID_Domain": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaPackage::PackagingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html)", + "markdownDescription": "The AWS::VoiceID::Domain resource specifies an Amazon VoiceID Domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-voiceid-domain.html)", "allOf": [ { "type": "object", @@ -19340,14 +19344,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackage::PackagingConfiguration" + "AWS::VoiceID::Domain" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaPackage::PackagingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html)" + "The AWS::VoiceID::Domain resource specifies an Amazon VoiceID Domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-voiceid-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackage-packagingconfiguration.json" + "$ref": "resources/aws-voiceid-domain.json" } }, "required": [ @@ -19361,9 +19365,9 @@ ], "additionalProperties": false }, - "AWS_SES_EmailIdentity": { + "AWS_Deadline_Farm": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::EmailIdentity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-emailidentity.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::Farm \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html)", "allOf": [ { "type": "object", @@ -19371,14 +19375,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::EmailIdentity" + "AWS::Deadline::Farm" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::EmailIdentity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-emailidentity.html)" + "Resource Type definition for AWS::Deadline::Farm \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-emailidentity.json" + "$ref": "resources/aws-deadline-farm.json" } }, "required": [ @@ -19392,9 +19396,9 @@ ], "additionalProperties": false }, - "AWS_Cassandra_Type": { + "AWS_IoTCoreDeviceAdvisor_SuiteDefinition": { "type": "object", - "markdownDescription": "Resource schema for AWS::Cassandra::Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-type.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html)", "allOf": [ { "type": "object", @@ -19402,14 +19406,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cassandra::Type" + "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Cassandra::Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-type.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-cassandra-type.json" + "$ref": "resources/aws-iotcoredeviceadvisor-suitedefinition.json" } }, "required": [ @@ -19423,9 +19427,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_IPSet": { + "AWS_Redshift_EndpointAuthorization": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html)", + "markdownDescription": "Describes an endpoint authorization for authorizing Redshift-managed VPC endpoint access to a cluster across AWS accounts. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html)", "allOf": [ { "type": "object", @@ -19433,14 +19437,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::IPSet" + "AWS::Redshift::EndpointAuthorization" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::IPSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html)" + "Describes an endpoint authorization for authorizing Redshift-managed VPC endpoint access to a cluster across AWS accounts. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-ipset.json" + "$ref": "resources/aws-redshift-endpointauthorization.json" } }, "required": [ @@ -19454,9 +19458,9 @@ ], "additionalProperties": false }, - "AWS_EC2_PrefixList": { + "AWS_WorkSpacesWeb_IpAccessSettings": { "type": "object", - "markdownDescription": "Resource schema of AWS::EC2::PrefixList Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::IpAccessSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-ipaccesssettings.html)", "allOf": [ { "type": "object", @@ -19464,14 +19468,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::PrefixList" + "AWS::WorkSpacesWeb::IpAccessSettings" ], "markdownEnumDescriptions": [ - "Resource schema of AWS::EC2::PrefixList Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html)" + "Definition of AWS::WorkSpacesWeb::IpAccessSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-ipaccesssettings.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-prefixlist.json" + "$ref": "resources/aws-workspacesweb-ipaccesssettings.json" } }, "required": [ @@ -19485,9 +19489,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPNGatewayRoutePropagation": { + "AWS_MemoryDB_MultiRegionCluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPNGatewayRoutePropagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngatewayroutepropagation.html)", + "markdownDescription": "The AWS::MemoryDB::Multi Region Cluster resource creates an Amazon MemoryDB Multi Region Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-multiregioncluster.html)", "allOf": [ { "type": "object", @@ -19495,14 +19499,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::MemoryDB::MultiRegionCluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPNGatewayRoutePropagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngatewayroutepropagation.html)" + "The AWS::MemoryDB::Multi Region Cluster resource creates an Amazon MemoryDB Multi Region Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-multiregioncluster.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpngatewayroutepropagation.json" + "$ref": "resources/aws-memorydb-multiregioncluster.json" } }, "required": [ @@ -19516,9 +19520,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Method": { + "AWS_EC2_NetworkInterface": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Method`` resource creates API Gateway methods that define the parameters and body that clients must send in their requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html)", + "markdownDescription": "The AWS::EC2::NetworkInterface resource creates network interface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html)", "allOf": [ { "type": "object", @@ -19526,14 +19530,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Method" + "AWS::EC2::NetworkInterface" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Method`` resource creates API Gateway methods that define the parameters and body that clients must send in their requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html)" + "The AWS::EC2::NetworkInterface resource creates network interface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-method.json" + "$ref": "resources/aws-ec2-networkinterface.json" } }, "required": [ @@ -19547,9 +19551,9 @@ ], "additionalProperties": false }, - "AWS_DMS_ReplicationSubnetGroup": { + "AWS_AppStream_AppBlock": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DMS::ReplicationSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::AppBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html)", "allOf": [ { "type": "object", @@ -19557,14 +19561,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::ReplicationSubnetGroup" + "AWS::AppStream::AppBlock" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DMS::ReplicationSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html)" + "Resource Type definition for AWS::AppStream::AppBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-replicationsubnetgroup.json" + "$ref": "resources/aws-appstream-appblock.json" } }, "required": [ @@ -19578,9 +19582,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_Workflow": { + "AWS_Panorama_Package": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-workflow.html)", + "markdownDescription": "Creates a package and storage location in an Amazon S3 access point. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html)", "allOf": [ { "type": "object", @@ -19588,14 +19592,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::Workflow" + "AWS::Panorama::Package" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-workflow.html)" + "Creates a package and storage location in an Amazon S3 access point. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-workflow.json" + "$ref": "resources/aws-panorama-package.json" } }, "required": [ @@ -19609,9 +19613,9 @@ ], "additionalProperties": false }, - "AWS_Budgets_Budget": { + "AWS_DLM_LifecyclePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Budgets::Budget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html)", + "markdownDescription": "Resource Type definition for AWS::DLM::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html)", "allOf": [ { "type": "object", @@ -19619,19 +19623,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Budgets::Budget" + "AWS::DLM::LifecyclePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Budgets::Budget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html)" + "Resource Type definition for AWS::DLM::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-budgets-budget.json" + "$ref": "resources/aws-dlm-lifecyclepolicy.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -19640,9 +19643,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_Connector": { + "AWS_Personalize_DatasetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Transfer::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html)", + "markdownDescription": "Resource Schema for AWS::Personalize::DatasetGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-datasetgroup.html)", "allOf": [ { "type": "object", @@ -19650,14 +19653,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::Connector" + "AWS::Personalize::DatasetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Transfer::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html)" + "Resource Schema for AWS::Personalize::DatasetGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-datasetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-connector.json" + "$ref": "resources/aws-personalize-datasetgroup.json" } }, "required": [ @@ -19671,9 +19674,9 @@ ], "additionalProperties": false }, - "AWS_CloudWatch_Alarm": { + "AWS_EC2_VerifiedAccessTrustProvider": { "type": "object", - "markdownDescription": "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html)", + "markdownDescription": "The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html)", "allOf": [ { "type": "object", @@ -19681,14 +19684,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudWatch::Alarm" + "AWS::EC2::VerifiedAccessTrustProvider" ], "markdownEnumDescriptions": [ - "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html)" + "The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudwatch-alarm.json" + "$ref": "resources/aws-ec2-verifiedaccesstrustprovider.json" } }, "required": [ @@ -19702,9 +19705,9 @@ ], "additionalProperties": false }, - "AWS_APS_ResourcePolicy": { + "AWS_Bedrock_Guardrail": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::APS::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-resourcepolicy.html)", + "markdownDescription": "Definition of AWS::Bedrock::Guardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html)", "allOf": [ { "type": "object", @@ -19712,14 +19715,14 @@ "Type": { "type": "string", "enum": [ - "AWS::APS::ResourcePolicy" + "AWS::Bedrock::Guardrail" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::APS::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-resourcepolicy.html)" + "Definition of AWS::Bedrock::Guardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html)" ] }, "Properties": { - "$ref": "resources/aws-aps-resourcepolicy.json" + "$ref": "resources/aws-bedrock-guardrail.json" } }, "required": [ @@ -19733,9 +19736,9 @@ ], "additionalProperties": false }, - "AWS_MediaConvert_Queue": { + "AWS_ApiGateway_DomainNameAccessAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaConvert::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html)", + "markdownDescription": "Resource Type definition for AWS::ApiGateway::DomainNameAccessAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html)", "allOf": [ { "type": "object", @@ -19743,18 +19746,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConvert::Queue" + "AWS::ApiGateway::DomainNameAccessAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaConvert::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html)" + "Resource Type definition for AWS::ApiGateway::DomainNameAccessAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconvert-queue.json" + "$ref": "resources/aws-apigateway-domainnameaccessassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -19763,9 +19767,9 @@ ], "additionalProperties": false }, - "AWS_KinesisVideo_SignalingChannel": { + "AWS_Redshift_Integration": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::KinesisVideo::SignalingChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-signalingchannel.html)", + "markdownDescription": "Integration from a source AWS service to a Redshift cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html)", "allOf": [ { "type": "object", @@ -19773,18 +19777,19 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisVideo::SignalingChannel" + "AWS::Redshift::Integration" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::KinesisVideo::SignalingChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-signalingchannel.html)" + "Integration from a source AWS service to a Redshift cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisvideo-signalingchannel.json" + "$ref": "resources/aws-redshift-integration.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -19793,9 +19798,9 @@ ], "additionalProperties": false }, - "AWS_Events_Rule": { + "AWS_EMR_Studio": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Events::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html)", + "markdownDescription": "Resource schema for AWS::EMR::Studio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html)", "allOf": [ { "type": "object", @@ -19803,18 +19808,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::Rule" + "AWS::EMR::Studio" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Events::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html)" + "Resource schema for AWS::EMR::Studio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html)" ] }, "Properties": { - "$ref": "resources/aws-events-rule.json" + "$ref": "resources/aws-emr-studio.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -19823,9 +19829,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Space": { + "AWS_S3_Bucket": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Space \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-space.html)", + "markdownDescription": "The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.\n To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n You can only delete empty buckets. Deletion fails for buckets that have contents. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html)", "allOf": [ { "type": "object", @@ -19833,19 +19839,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Space" + "AWS::S3::Bucket" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Space \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-space.html)" + "The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.\n To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n You can only delete empty buckets. Deletion fails for buckets that have contents. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-space.json" + "$ref": "resources/aws-s3-bucket.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -19854,9 +19859,9 @@ ], "additionalProperties": false }, - "AWS_ARCZonalShift_AutoshiftObserverNotificationStatus": { + "AWS_FMS_Policy": { "type": "object", - "markdownDescription": "Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-autoshiftobservernotificationstatus.html)", + "markdownDescription": "Creates an AWS Firewall Manager policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html)", "allOf": [ { "type": "object", @@ -19864,14 +19869,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" + "AWS::FMS::Policy" ], "markdownEnumDescriptions": [ - "Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-autoshiftobservernotificationstatus.html)" + "Creates an AWS Firewall Manager policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html)" ] }, "Properties": { - "$ref": "resources/aws-arczonalshift-autoshiftobservernotificationstatus.json" + "$ref": "resources/aws-fms-policy.json" } }, "required": [ @@ -19885,9 +19890,9 @@ ], "additionalProperties": false }, - "AWS_Rekognition_Project": { + "AWS_ECR_PullThroughCacheRule": { "type": "object", - "markdownDescription": "The AWS::Rekognition::Project type creates an Amazon Rekognition CustomLabels Project. A project is a grouping of the resources needed to create and manage Dataset and ProjectVersions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-project.html)", + "markdownDescription": "The ``AWS::ECR::PullThroughCacheRule`` resource creates or updates a pull through cache rule. A pull through cache rule provides a way to cache images from an upstream registry in your Amazon ECR private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-pullthroughcacherule.html)", "allOf": [ { "type": "object", @@ -19895,19 +19900,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Rekognition::Project" + "AWS::ECR::PullThroughCacheRule" ], "markdownEnumDescriptions": [ - "The AWS::Rekognition::Project type creates an Amazon Rekognition CustomLabels Project. A project is a grouping of the resources needed to create and manage Dataset and ProjectVersions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-project.html)" + "The ``AWS::ECR::PullThroughCacheRule`` resource creates or updates a pull through cache rule. A pull through cache rule provides a way to cache images from an upstream registry in your Amazon ECR private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-pullthroughcacherule.html)" ] }, "Properties": { - "$ref": "resources/aws-rekognition-project.json" + "$ref": "resources/aws-ecr-pullthroughcacherule.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -19916,9 +19920,9 @@ ], "additionalProperties": false }, - "AWS_EKS_AccessEntry": { + "AWS_OpenSearchServerless_SecurityConfig": { "type": "object", - "markdownDescription": "An object representing an Amazon EKS AccessEntry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-accessentry.html)", + "markdownDescription": "Amazon OpenSearchServerless security config resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securityconfig.html)", "allOf": [ { "type": "object", @@ -19926,19 +19930,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::AccessEntry" + "AWS::OpenSearchServerless::SecurityConfig" ], "markdownEnumDescriptions": [ - "An object representing an Amazon EKS AccessEntry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-accessentry.html)" + "Amazon OpenSearchServerless security config resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securityconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-accessentry.json" + "$ref": "resources/aws-opensearchserverless-securityconfig.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -19947,9 +19950,9 @@ ], "additionalProperties": false }, - "AWS_Connect_User": { + "AWS_XRay_SamplingRule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html)", + "markdownDescription": "This schema provides construct and validation rules for AWS-XRay SamplingRule resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html)", "allOf": [ { "type": "object", @@ -19957,19 +19960,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::User" + "AWS::XRay::SamplingRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html)" + "This schema provides construct and validation rules for AWS-XRay SamplingRule resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-user.json" + "$ref": "resources/aws-xray-samplingrule.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -19978,9 +19980,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_CoreDefinition": { + "AWS_EventSchemas_Registry": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::CoreDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html)", + "markdownDescription": "Resource Type definition for AWS::EventSchemas::Registry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html)", "allOf": [ { "type": "object", @@ -19988,19 +19990,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::CoreDefinition" + "AWS::EventSchemas::Registry" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::CoreDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html)" + "Resource Type definition for AWS::EventSchemas::Registry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-coredefinition.json" + "$ref": "resources/aws-eventschemas-registry.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -20009,9 +20010,9 @@ ], "additionalProperties": false }, - "AWS_Batch_ConsumableResource": { + "AWS_CodeGuruProfiler_ProfilingGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Batch::ConsumableResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-consumableresource.html)", + "markdownDescription": "This resource schema represents the Profiling Group resource in the Amazon CodeGuru Profiler service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html)", "allOf": [ { "type": "object", @@ -20019,14 +20020,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Batch::ConsumableResource" + "AWS::CodeGuruProfiler::ProfilingGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Batch::ConsumableResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-consumableresource.html)" + "This resource schema represents the Profiling Group resource in the Amazon CodeGuru Profiler service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-batch-consumableresource.json" + "$ref": "resources/aws-codeguruprofiler-profilinggroup.json" } }, "required": [ @@ -20040,9 +20041,9 @@ ], "additionalProperties": false }, - "AWS_Omics_SequenceStore": { + "AWS_DataSync_LocationSMB": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Omics::SequenceStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-sequencestore.html)", + "markdownDescription": "Resource Type definition for AWS::DataSync::LocationSMB. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html)", "allOf": [ { "type": "object", @@ -20050,14 +20051,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::SequenceStore" + "AWS::DataSync::LocationSMB" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Omics::SequenceStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-sequencestore.html)" + "Resource Type definition for AWS::DataSync::LocationSMB. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-sequencestore.json" + "$ref": "resources/aws-datasync-locationsmb.json" } }, "required": [ @@ -20071,9 +20072,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_ListenerCertificate": { + "AWS_B2BI_Capability": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)", + "markdownDescription": "Definition of AWS::B2BI::Capability Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-capability.html)", "allOf": [ { "type": "object", @@ -20081,14 +20082,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerCertificate" + "AWS::B2BI::Capability" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)" + "Definition of AWS::B2BI::Capability Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-capability.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-listenercertificate.json" + "$ref": "resources/aws-b2bi-capability.json" } }, "required": [ @@ -20102,9 +20103,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPNGateway": { + "AWS_WAF_Rule": { "type": "object", - "markdownDescription": "Specifies a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html)", + "markdownDescription": "Resource Type definition for AWS::WAF::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html)", "allOf": [ { "type": "object", @@ -20112,14 +20113,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPNGateway" + "AWS::WAF::Rule" ], "markdownEnumDescriptions": [ - "Specifies a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html)" + "Resource Type definition for AWS::WAF::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpngateway.json" + "$ref": "resources/aws-waf-rule.json" } }, "required": [ @@ -20133,9 +20134,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_BaiduChannel": { + "AWS_Connect_Rule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::BaiduChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-baiduchannel.html)", + "markdownDescription": "Creates a rule for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-rule.html)", "allOf": [ { "type": "object", @@ -20143,14 +20144,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::BaiduChannel" + "AWS::Connect::Rule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::BaiduChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-baiduchannel.html)" + "Creates a rule for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-rule.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-baiduchannel.json" + "$ref": "resources/aws-connect-rule.json" } }, "required": [ @@ -20164,9 +20165,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_WirelessGateway": { + "AWS_IoT_CACertificate": { "type": "object", - "markdownDescription": "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html)", + "markdownDescription": "Registers a CA Certificate in IoT. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html)", "allOf": [ { "type": "object", @@ -20174,14 +20175,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::WirelessGateway" + "AWS::IoT::CACertificate" ], "markdownEnumDescriptions": [ - "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html)" + "Registers a CA Certificate in IoT. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-wirelessgateway.json" + "$ref": "resources/aws-iot-cacertificate.json" } }, "required": [ @@ -20195,9 +20196,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_ResourceDefinition": { + "AWS_ServiceCatalog_TagOption": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::ResourceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html)", + "markdownDescription": "Resource type definition for AWS::ServiceCatalog::TagOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html)", "allOf": [ { "type": "object", @@ -20205,14 +20206,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::ResourceDefinition" + "AWS::ServiceCatalog::TagOption" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::ResourceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html)" + "Resource type definition for AWS::ServiceCatalog::TagOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-resourcedefinition.json" + "$ref": "resources/aws-servicecatalog-tagoption.json" } }, "required": [ @@ -20226,9 +20227,9 @@ ], "additionalProperties": false }, - "AWS_EVS_Environment": { + "AWS_IoTAnalytics_Channel": { "type": "object", - "markdownDescription": "An environment created within the EVS service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evs-environment.html)", + "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html)", "allOf": [ { "type": "object", @@ -20236,19 +20237,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EVS::Environment" + "AWS::IoTAnalytics::Channel" ], "markdownEnumDescriptions": [ - "An environment created within the EVS service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evs-environment.html)" + "Resource Type definition for AWS::IoTAnalytics::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html)" ] }, "Properties": { - "$ref": "resources/aws-evs-environment.json" + "$ref": "resources/aws-iotanalytics-channel.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -20257,9 +20257,9 @@ ], "additionalProperties": false }, - "AWS_AIOps_InvestigationGroup": { + "AWS_KinesisAnalytics_ApplicationReferenceDataSource": { "type": "object", - "markdownDescription": "Definition of AWS::AIOps::InvestigationGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisAnalytics::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html)", "allOf": [ { "type": "object", @@ -20267,14 +20267,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AIOps::InvestigationGroup" + "AWS::KinesisAnalytics::ApplicationReferenceDataSource" ], "markdownEnumDescriptions": [ - "Definition of AWS::AIOps::InvestigationGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html)" + "Resource Type definition for AWS::KinesisAnalytics::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html)" ] }, "Properties": { - "$ref": "resources/aws-aiops-investigationgroup.json" + "$ref": "resources/aws-kinesisanalytics-applicationreferencedatasource.json" } }, "required": [ @@ -20288,9 +20288,9 @@ ], "additionalProperties": false }, - "AWS_MediaTailor_PlaybackConfiguration": { + "AWS_DevOpsAgent_AgentSpace": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaTailor::PlaybackConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::DevOpsAgent::AgentSpace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-agentspace.html)", "allOf": [ { "type": "object", @@ -20298,14 +20298,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaTailor::PlaybackConfiguration" + "AWS::DevOpsAgent::AgentSpace" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaTailor::PlaybackConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html)" + "Resource Type definition for AWS::DevOpsAgent::AgentSpace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-agentspace.html)" ] }, "Properties": { - "$ref": "resources/aws-mediatailor-playbackconfiguration.json" + "$ref": "resources/aws-devopsagent-agentspace.json" } }, "required": [ @@ -20319,9 +20319,9 @@ ], "additionalProperties": false }, - "AWS_S3_BucketPolicy": { + "AWS_Proton_ServiceTemplate": { "type": "object", - "markdownDescription": "Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.\n If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error.\n As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. \n When using the ``AWS::S3::BucketPolicy`` resource, you can create, update, and delete bucket policies for S3 buckets located in Regions that are different from the stack's Region. However, the CloudFormation stacks should be deployed in the US East (N. Virginia) or ``us-east-1`` Region. This cross-region bucket policy modification functionality is supported for backward compatibility with existing workflows.\n If the [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) is not specified or set to ``Delete``, the bucket policy will be removed when the stack is deleted. If set to ``Retain``, the bucket policy will be preserved even after the stack is deleted.\n For example, a CloudFormation stack in ``us-east-1`` can use the ``AWS::S3::BucketPolicy`` resource to manage the bucket policy for an S3 bucket in ``us-west-2``. The retention or removal of the bucket policy during the stack deletion is determined by the ``DeletionPolicy`` attribute specified in the stack template.\n For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).\n The following operations are related to ``PutBucketPolicy``:\n + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) \n + [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucketpolicy.html)", + "markdownDescription": "Definition of AWS::Proton::ServiceTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-servicetemplate.html)", "allOf": [ { "type": "object", @@ -20329,19 +20329,18 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::BucketPolicy" + "AWS::Proton::ServiceTemplate" ], "markdownEnumDescriptions": [ - "Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.\n If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error.\n As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. \n When using the ``AWS::S3::BucketPolicy`` resource, you can create, update, and delete bucket policies for S3 buckets located in Regions that are different from the stack's Region. However, the CloudFormation stacks should be deployed in the US East (N. Virginia) or ``us-east-1`` Region. This cross-region bucket policy modification functionality is supported for backward compatibility with existing workflows.\n If the [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) is not specified or set to ``Delete``, the bucket policy will be removed when the stack is deleted. If set to ``Retain``, the bucket policy will be preserved even after the stack is deleted.\n For example, a CloudFormation stack in ``us-east-1`` can use the ``AWS::S3::BucketPolicy`` resource to manage the bucket policy for an S3 bucket in ``us-west-2``. The retention or removal of the bucket policy during the stack deletion is determined by the ``DeletionPolicy`` attribute specified in the stack template.\n For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).\n The following operations are related to ``PutBucketPolicy``:\n + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) \n + [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucketpolicy.html)" + "Definition of AWS::Proton::ServiceTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-servicetemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-bucketpolicy.json" + "$ref": "resources/aws-proton-servicetemplate.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -20350,9 +20349,9 @@ ], "additionalProperties": false }, - "AWS_Shield_DRTAccess": { + "AWS_QBusiness_Retriever": { "type": "object", - "markdownDescription": "Config the role and list of Amazon S3 log buckets used by the Shield Response Team (SRT) to access your AWS account while assisting with attack mitigation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-drtaccess.html)", + "markdownDescription": "Definition of AWS::QBusiness::Retriever Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-retriever.html)", "allOf": [ { "type": "object", @@ -20360,14 +20359,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Shield::DRTAccess" + "AWS::QBusiness::Retriever" ], "markdownEnumDescriptions": [ - "Config the role and list of Amazon S3 log buckets used by the Shield Response Team (SRT) to access your AWS account while assisting with attack mitigation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-drtaccess.html)" + "Definition of AWS::QBusiness::Retriever Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-retriever.html)" ] }, "Properties": { - "$ref": "resources/aws-shield-drtaccess.json" + "$ref": "resources/aws-qbusiness-retriever.json" } }, "required": [ @@ -20381,9 +20380,9 @@ ], "additionalProperties": false }, - "AWS_Billing_BillingView": { + "AWS_B2BI_Partnership": { "type": "object", - "markdownDescription": "A billing view is a container of cost & usage metadata. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billing-billingview.html)", + "markdownDescription": "Definition of AWS::B2BI::Partnership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-partnership.html)", "allOf": [ { "type": "object", @@ -20391,14 +20390,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Billing::BillingView" + "AWS::B2BI::Partnership" ], "markdownEnumDescriptions": [ - "A billing view is a container of cost & usage metadata. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billing-billingview.html)" + "Definition of AWS::B2BI::Partnership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-partnership.html)" ] }, "Properties": { - "$ref": "resources/aws-billing-billingview.json" + "$ref": "resources/aws-b2bi-partnership.json" } }, "required": [ @@ -20412,9 +20411,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverDNSSECConfig": { + "AWS_CleanRooms_ConfiguredTableAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverDNSSECConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverdnssecconfig.html)", + "markdownDescription": "Represents a table that can be queried within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtableassociation.html)", "allOf": [ { "type": "object", @@ -20422,18 +20421,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverDNSSECConfig" + "AWS::CleanRooms::ConfiguredTableAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::ResolverDNSSECConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverdnssecconfig.html)" + "Represents a table that can be queried within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtableassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverdnssecconfig.json" + "$ref": "resources/aws-cleanrooms-configuredtableassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -20442,9 +20442,9 @@ ], "additionalProperties": false }, - "AWS_AmazonMQ_ConfigurationAssociation": { + "AWS_GreengrassV2_Deployment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html)", + "markdownDescription": "Resource for Greengrass V2 deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html)", "allOf": [ { "type": "object", @@ -20452,14 +20452,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AmazonMQ::ConfigurationAssociation" + "AWS::GreengrassV2::Deployment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html)" + "Resource for Greengrass V2 deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html)" ] }, "Properties": { - "$ref": "resources/aws-amazonmq-configurationassociation.json" + "$ref": "resources/aws-greengrassv2-deployment.json" } }, "required": [ @@ -20473,9 +20473,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCGatewayAttachment": { + "AWS_SecurityLake_Subscriber": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcgatewayattachment.html)", + "markdownDescription": "Resource Type definition for AWS::SecurityLake::Subscriber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html)", "allOf": [ { "type": "object", @@ -20483,14 +20483,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::SecurityLake::Subscriber" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcgatewayattachment.html)" + "Resource Type definition for AWS::SecurityLake::Subscriber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcgatewayattachment.json" + "$ref": "resources/aws-securitylake-subscriber.json" } }, "required": [ @@ -20504,9 +20504,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_RealtimeLogConfig": { + "AWS_XRay_TransactionSearchConfig": { "type": "object", - "markdownDescription": "A real-time log configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html)", + "markdownDescription": "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-transactionsearchconfig.html)", "allOf": [ { "type": "object", @@ -20514,19 +20514,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::RealtimeLogConfig" + "AWS::XRay::TransactionSearchConfig" ], "markdownEnumDescriptions": [ - "A real-time log configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html)" + "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-transactionsearchconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-realtimelogconfig.json" + "$ref": "resources/aws-xray-transactionsearchconfig.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -20535,9 +20534,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_Tag": { + "AWS_CleanRooms_IdNamespaceAssociation": { "type": "object", - "markdownDescription": "A resource schema representing a Lake Formation Tag. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tag.html)", + "markdownDescription": "Represents an association between an ID namespace and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idnamespaceassociation.html)", "allOf": [ { "type": "object", @@ -20545,14 +20544,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::Tag" + "AWS::CleanRooms::IdNamespaceAssociation" ], "markdownEnumDescriptions": [ - "A resource schema representing a Lake Formation Tag. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tag.html)" + "Represents an association between an ID namespace and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idnamespaceassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-tag.json" + "$ref": "resources/aws-cleanrooms-idnamespaceassociation.json" } }, "required": [ @@ -20566,9 +20565,9 @@ ], "additionalProperties": false }, - "AWS_InternetMonitor_Monitor": { + "AWS_Shield_ProtectionGroup": { "type": "object", - "markdownDescription": "Represents a monitor, which defines the monitoring boundaries for measurements that Internet Monitor publishes information about for an application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html)", + "markdownDescription": "A grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protectiongroup.html)", "allOf": [ { "type": "object", @@ -20576,14 +20575,14 @@ "Type": { "type": "string", "enum": [ - "AWS::InternetMonitor::Monitor" + "AWS::Shield::ProtectionGroup" ], "markdownEnumDescriptions": [ - "Represents a monitor, which defines the monitoring boundaries for measurements that Internet Monitor publishes information about for an application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html)" + "A grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protectiongroup.html)" ] }, "Properties": { - "$ref": "resources/aws-internetmonitor-monitor.json" + "$ref": "resources/aws-shield-protectiongroup.json" } }, "required": [ @@ -20597,9 +20596,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_OptOutList": { + "AWS_Scheduler_Schedule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::OptOutList \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html)", + "markdownDescription": "Definition of AWS::Scheduler::Schedule Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html)", "allOf": [ { "type": "object", @@ -20607,18 +20606,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::OptOutList" + "AWS::Scheduler::Schedule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::OptOutList \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html)" + "Definition of AWS::Scheduler::Schedule Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-optoutlist.json" + "$ref": "resources/aws-scheduler-schedule.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -20627,9 +20627,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VerifiedAccessInstance": { + "AWS_PCAConnectorSCEP_Connector": { "type": "object", - "markdownDescription": "The AWS::EC2::VerifiedAccessInstance resource creates an AWS EC2 Verified Access Instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessinstance.html)", + "markdownDescription": "Represents a Connector that allows certificate issuance through Simple Certificate Enrollment Protocol (SCEP) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-connector.html)", "allOf": [ { "type": "object", @@ -20637,18 +20637,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VerifiedAccessInstance" + "AWS::PCAConnectorSCEP::Connector" ], "markdownEnumDescriptions": [ - "The AWS::EC2::VerifiedAccessInstance resource creates an AWS EC2 Verified Access Instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessinstance.html)" + "Represents a Connector that allows certificate issuance through Simple Certificate Enrollment Protocol (SCEP) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-connector.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-verifiedaccessinstance.json" + "$ref": "resources/aws-pcaconnectorscep-connector.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -20657,9 +20658,9 @@ ], "additionalProperties": false }, - "AWS_EntityResolution_IdMappingWorkflow": { + "AWS_ElastiCache_SecurityGroup": { "type": "object", - "markdownDescription": "IdMappingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idmappingworkflow.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroup.html)", "allOf": [ { "type": "object", @@ -20667,14 +20668,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EntityResolution::IdMappingWorkflow" + "AWS::ElastiCache::SecurityGroup" ], "markdownEnumDescriptions": [ - "IdMappingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idmappingworkflow.html)" + "Resource Type definition for AWS::ElastiCache::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-entityresolution-idmappingworkflow.json" + "$ref": "resources/aws-elasticache-securitygroup.json" } }, "required": [ @@ -20688,9 +20689,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_Index": { + "AWS_InspectorV2_CisScanConfiguration": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-index.html)", + "markdownDescription": "CIS Scan Configuration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-cisscanconfiguration.html)", "allOf": [ { "type": "object", @@ -20698,14 +20699,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::Index" + "AWS::InspectorV2::CisScanConfiguration" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-index.html)" + "CIS Scan Configuration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-cisscanconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-index.json" + "$ref": "resources/aws-inspectorv2-cisscanconfiguration.json" } }, "required": [ @@ -20719,9 +20720,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_TaskDefinition": { + "AWS_ElasticLoadBalancingV2_ListenerRule": { "type": "object", - "markdownDescription": "Creates a gateway task definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html)", + "markdownDescription": "Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.\n For more information, see [Quotas for your Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) in the *User Guide for Application Load Balancers*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)", "allOf": [ { "type": "object", @@ -20729,14 +20730,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::TaskDefinition" + "AWS::ElasticLoadBalancingV2::ListenerRule" ], "markdownEnumDescriptions": [ - "Creates a gateway task definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html)" + "Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.\n For more information, see [Quotas for your Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) in the *User Guide for Application Load Balancers*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-taskdefinition.json" + "$ref": "resources/aws-elasticloadbalancingv2-listenerrule.json" } }, "required": [ @@ -20750,9 +20751,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_EndpointAccess": { + "AWS_EC2_SqlHaStandbyDetectedInstance": { "type": "object", - "markdownDescription": "Resource schema for a Redshift-managed VPC endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::SqlHaStandbyDetectedInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-sqlhastandbydetectedinstance.html)", "allOf": [ { "type": "object", @@ -20760,14 +20761,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::EndpointAccess" + "AWS::EC2::SqlHaStandbyDetectedInstance" ], "markdownEnumDescriptions": [ - "Resource schema for a Redshift-managed VPC endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html)" + "Resource Type definition for AWS::EC2::SqlHaStandbyDetectedInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-sqlhastandbydetectedinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-endpointaccess.json" + "$ref": "resources/aws-ec2-sqlhastandbydetectedinstance.json" } }, "required": [ @@ -20781,9 +20782,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Authorizer": { + "AWS_Route53RecoveryReadiness_Cell": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that API Gateway activates for methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html)", + "markdownDescription": "The API Schema for AWS Route53 Recovery Readiness Cells. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-cell.html)", "allOf": [ { "type": "object", @@ -20791,19 +20792,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Authorizer" + "AWS::Route53RecoveryReadiness::Cell" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that API Gateway activates for methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html)" + "The API Schema for AWS Route53 Recovery Readiness Cells. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-cell.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-authorizer.json" + "$ref": "resources/aws-route53recoveryreadiness-cell.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -20812,9 +20812,9 @@ ], "additionalProperties": false }, - "AWS_Config_DeliveryChannel": { + "AWS_Pinpoint_EventStream": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::DeliveryChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::EventStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html)", "allOf": [ { "type": "object", @@ -20822,14 +20822,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::DeliveryChannel" + "AWS::Pinpoint::EventStream" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::DeliveryChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html)" + "Resource Type definition for AWS::Pinpoint::EventStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html)" ] }, "Properties": { - "$ref": "resources/aws-config-deliverychannel.json" + "$ref": "resources/aws-pinpoint-eventstream.json" } }, "required": [ @@ -20843,9 +20843,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_Fleet": { + "AWS_CustomerProfiles_CalculatedAttributeDefinition": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html)", + "markdownDescription": "A calculated attribute definition for Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-calculatedattributedefinition.html)", "allOf": [ { "type": "object", @@ -20853,14 +20853,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::Fleet" + "AWS::CustomerProfiles::CalculatedAttributeDefinition" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html)" + "A calculated attribute definition for Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-calculatedattributedefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-fleet.json" + "$ref": "resources/aws-customerprofiles-calculatedattributedefinition.json" } }, "required": [ @@ -20874,9 +20874,9 @@ ], "additionalProperties": false }, - "AWS_Config_ConfigurationAggregator": { + "AWS_AccessAnalyzer_Analyzer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::ConfigurationAggregator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html)", + "markdownDescription": "The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html)", "allOf": [ { "type": "object", @@ -20884,18 +20884,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::ConfigurationAggregator" + "AWS::AccessAnalyzer::Analyzer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::ConfigurationAggregator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html)" + "The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html)" ] }, "Properties": { - "$ref": "resources/aws-config-configurationaggregator.json" + "$ref": "resources/aws-accessanalyzer-analyzer.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -20904,9 +20905,9 @@ ], "additionalProperties": false }, - "AWS_OSIS_Pipeline": { + "AWS_RoboMaker_Fleet": { "type": "object", - "markdownDescription": "An OpenSearch Ingestion Service Data Prepper pipeline running Data Prepper. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html)", + "markdownDescription": "AWS::RoboMaker::Fleet resource creates an AWS RoboMaker fleet. Fleets contain robots and can receive deployments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html)", "allOf": [ { "type": "object", @@ -20914,19 +20915,18 @@ "Type": { "type": "string", "enum": [ - "AWS::OSIS::Pipeline" + "AWS::RoboMaker::Fleet" ], "markdownEnumDescriptions": [ - "An OpenSearch Ingestion Service Data Prepper pipeline running Data Prepper. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html)" + "AWS::RoboMaker::Fleet resource creates an AWS RoboMaker fleet. Fleets contain robots and can receive deployments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-osis-pipeline.json" + "$ref": "resources/aws-robomaker-fleet.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -20935,9 +20935,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_Pool": { + "AWS_Glue_SecurityConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::Pool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::SecurityConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html)", "allOf": [ { "type": "object", @@ -20945,14 +20945,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::Pool" + "AWS::Glue::SecurityConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::Pool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html)" + "Resource Type definition for AWS::Glue::SecurityConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-pool.json" + "$ref": "resources/aws-glue-securityconfiguration.json" } }, "required": [ @@ -20966,9 +20966,9 @@ ], "additionalProperties": false }, - "AWS_PCS_Cluster": { + "AWS_ImageBuilder_ImageRecipe": { "type": "object", - "markdownDescription": "AWS::PCS::Cluster resource creates an AWS PCS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::ImageRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html)", "allOf": [ { "type": "object", @@ -20976,14 +20976,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCS::Cluster" + "AWS::ImageBuilder::ImageRecipe" ], "markdownEnumDescriptions": [ - "AWS::PCS::Cluster resource creates an AWS PCS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html)" + "Resource schema for AWS::ImageBuilder::ImageRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html)" ] }, "Properties": { - "$ref": "resources/aws-pcs-cluster.json" + "$ref": "resources/aws-imagebuilder-imagerecipe.json" } }, "required": [ @@ -20997,9 +20997,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_AutomationRuleV2": { + "AWS_Lambda_EventSourceMapping": { "type": "object", - "markdownDescription": "Resource schema for AWS::SecurityHub::AutomationRuleV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html)", + "markdownDescription": "The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an event source and an LAMlong function. LAM reads items from the event source and triggers the function.\n For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source. \n + [Configuring a Dynamo DB stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping) \n + [Configuring a Kinesis stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping) \n + [Configuring an SQS queue as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) \n + [Configuring an MQ broker as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) \n + [Configuring MSK as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html) \n + [Configuring Self-Managed Apache Kafka as an event source](https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html) \n + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html)", "allOf": [ { "type": "object", @@ -21007,14 +21007,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::AutomationRuleV2" + "AWS::Lambda::EventSourceMapping" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::SecurityHub::AutomationRuleV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html)" + "The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an event source and an LAMlong function. LAM reads items from the event source and triggers the function.\n For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source. \n + [Configuring a Dynamo DB stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping) \n + [Configuring a Kinesis stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping) \n + [Configuring an SQS queue as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) \n + [Configuring an MQ broker as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) \n + [Configuring MSK as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html) \n + [Configuring Self-Managed Apache Kafka as an event source](https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html) \n + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-automationrulev2.json" + "$ref": "resources/aws-lambda-eventsourcemapping.json" } }, "required": [ @@ -21028,9 +21028,9 @@ ], "additionalProperties": false }, - "AWS_Route53_CidrCollection": { + "AWS_AppRunner_VpcIngressConnection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53::CidrCollection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html)", + "markdownDescription": "The AWS::AppRunner::VpcIngressConnection resource is an App Runner resource that specifies an App Runner VpcIngressConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcingressconnection.html)", "allOf": [ { "type": "object", @@ -21038,14 +21038,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::CidrCollection" + "AWS::AppRunner::VpcIngressConnection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53::CidrCollection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html)" + "The AWS::AppRunner::VpcIngressConnection resource is an App Runner resource that specifies an App Runner VpcIngressConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcingressconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-cidrcollection.json" + "$ref": "resources/aws-apprunner-vpcingressconnection.json" } }, "required": [ @@ -21059,9 +21059,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_MlflowTrackingServer": { + "AWS_DataZone_Environment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::MlflowTrackingServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-mlflowtrackingserver.html)", + "markdownDescription": "Definition of AWS::DataZone::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environment.html)", "allOf": [ { "type": "object", @@ -21069,14 +21069,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::MlflowTrackingServer" + "AWS::DataZone::Environment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::MlflowTrackingServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-mlflowtrackingserver.html)" + "Definition of AWS::DataZone::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-mlflowtrackingserver.json" + "$ref": "resources/aws-datazone-environment.json" } }, "required": [ @@ -21090,9 +21090,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_GraphQLSchema": { + "AWS_OSIS_Pipeline": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::GraphQLSchema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html)", + "markdownDescription": "An OpenSearch Ingestion Service Data Prepper pipeline running Data Prepper. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html)", "allOf": [ { "type": "object", @@ -21100,14 +21100,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::GraphQLSchema" + "AWS::OSIS::Pipeline" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::GraphQLSchema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html)" + "An OpenSearch Ingestion Service Data Prepper pipeline running Data Prepper. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-graphqlschema.json" + "$ref": "resources/aws-osis-pipeline.json" } }, "required": [ @@ -21121,9 +21121,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_NetworkSettings": { + "AWS_EC2_TransitGatewayRouteTable": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::NetworkSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-networksettings.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayRouteTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html)", "allOf": [ { "type": "object", @@ -21131,14 +21131,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::NetworkSettings" + "AWS::EC2::TransitGatewayRouteTable" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::NetworkSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-networksettings.html)" + "Resource Type definition for AWS::EC2::TransitGatewayRouteTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-networksettings.json" + "$ref": "resources/aws-ec2-transitgatewayroutetable.json" } }, "required": [ @@ -21152,9 +21152,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_ConfigurationPolicy": { + "AWS_MediaPackage_OriginEndpoint": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::ConfigurationPolicy resource represents the Central Configuration Policy in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-configurationpolicy.html)", + "markdownDescription": "Resource schema for AWS::MediaPackage::OriginEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html)", "allOf": [ { "type": "object", @@ -21162,14 +21162,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::ConfigurationPolicy" + "AWS::MediaPackage::OriginEndpoint" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::ConfigurationPolicy resource represents the Central Configuration Policy in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-configurationpolicy.html)" + "Resource schema for AWS::MediaPackage::OriginEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-configurationpolicy.json" + "$ref": "resources/aws-mediapackage-originendpoint.json" } }, "required": [ @@ -21183,9 +21183,9 @@ ], "additionalProperties": false }, - "AWS_LaunchWizard_Deployment": { + "AWS_Connect_ContactFlowVersion": { "type": "object", - "markdownDescription": "Definition of AWS::LaunchWizard::Deployment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-launchwizard-deployment.html)", + "markdownDescription": "Resource Type Definition for ContactFlowVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowversion.html)", "allOf": [ { "type": "object", @@ -21193,14 +21193,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LaunchWizard::Deployment" + "AWS::Connect::ContactFlowVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::LaunchWizard::Deployment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-launchwizard-deployment.html)" + "Resource Type Definition for ContactFlowVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowversion.html)" ] }, "Properties": { - "$ref": "resources/aws-launchwizard-deployment.json" + "$ref": "resources/aws-connect-contactflowversion.json" } }, "required": [ @@ -21214,9 +21214,9 @@ ], "additionalProperties": false }, - "AWS_MSK_ClusterPolicy": { + "AWS_Backup_LogicallyAirGappedBackupVault": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::ClusterPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-clusterpolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Backup::LogicallyAirGappedBackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-logicallyairgappedbackupvault.html)", "allOf": [ { "type": "object", @@ -21224,14 +21224,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::ClusterPolicy" + "AWS::Backup::LogicallyAirGappedBackupVault" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::ClusterPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-clusterpolicy.html)" + "Resource Type definition for AWS::Backup::LogicallyAirGappedBackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-logicallyairgappedbackupvault.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-clusterpolicy.json" + "$ref": "resources/aws-backup-logicallyairgappedbackupvault.json" } }, "required": [ @@ -21245,9 +21245,9 @@ ], "additionalProperties": false }, - "AWS_BCMDataExports_Export": { + "AWS_IVS_StorageConfiguration": { "type": "object", - "markdownDescription": "Definition of AWS::BCMDataExports::Export Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::StorageConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html)", "allOf": [ { "type": "object", @@ -21255,14 +21255,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BCMDataExports::Export" + "AWS::IVS::StorageConfiguration" ], "markdownEnumDescriptions": [ - "Definition of AWS::BCMDataExports::Export Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html)" + "Resource Type definition for AWS::IVS::StorageConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-bcmdataexports-export.json" + "$ref": "resources/aws-ivs-storageconfiguration.json" } }, "required": [ @@ -21276,9 +21276,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_Filter": { + "AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::Filter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroupassociation.html)", "allOf": [ { "type": "object", @@ -21286,14 +21286,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::Filter" + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::Filter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html)" + "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroupassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-filter.json" + "$ref": "resources/aws-servicecatalogappregistry-attributegroupassociation.json" } }, "required": [ @@ -21307,9 +21307,9 @@ ], "additionalProperties": false }, - "AWS_CloudWatch_Dashboard": { + "AWS_BillingConductor_PricingRule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudWatch::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html)", + "markdownDescription": "A markup/discount that is defined for a specific set of services that can later be associated with a pricing plan. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html)", "allOf": [ { "type": "object", @@ -21317,14 +21317,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudWatch::Dashboard" + "AWS::BillingConductor::PricingRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudWatch::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html)" + "A markup/discount that is defined for a specific set of services that can later be associated with a pricing plan. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudwatch-dashboard.json" + "$ref": "resources/aws-billingconductor-pricingrule.json" } }, "required": [ @@ -21338,9 +21338,9 @@ ], "additionalProperties": false }, - "AWS_PinpointEmail_ConfigurationSetEventDestination": { + "AWS_Organizations_ResourcePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::PinpointEmail::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html)", + "markdownDescription": "You can use AWS::Organizations::ResourcePolicy to delegate policy management for AWS Organizations to specified member accounts to perform policy actions that are by default available only to the management account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -21348,14 +21348,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PinpointEmail::ConfigurationSetEventDestination" + "AWS::Organizations::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::PinpointEmail::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html)" + "You can use AWS::Organizations::ResourcePolicy to delegate policy management for AWS Organizations to specified member accounts to perform policy actions that are by default available only to the management account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpointemail-configurationseteventdestination.json" + "$ref": "resources/aws-organizations-resourcepolicy.json" } }, "required": [ @@ -21369,9 +21369,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolUICustomizationAttachment": { + "AWS_ImageBuilder_Workflow": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolUICustomizationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-workflow.html)", "allOf": [ { "type": "object", @@ -21379,14 +21379,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolUICustomizationAttachment" + "AWS::ImageBuilder::Workflow" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolUICustomizationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html)" + "Resource schema for AWS::ImageBuilder::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-workflow.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpooluicustomizationattachment.json" + "$ref": "resources/aws-imagebuilder-workflow.json" } }, "required": [ @@ -21400,9 +21400,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_SourceApiAssociation": { + "AWS_DMS_ReplicationInstance": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::SourceApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-sourceapiassociation.html)", + "markdownDescription": "Resource Type definition for AWS::DMS::ReplicationInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html)", "allOf": [ { "type": "object", @@ -21410,18 +21410,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::SourceApiAssociation" + "AWS::DMS::ReplicationInstance" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::SourceApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-sourceapiassociation.html)" + "Resource Type definition for AWS::DMS::ReplicationInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-sourceapiassociation.json" + "$ref": "resources/aws-dms-replicationinstance.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -21430,9 +21431,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_DomainName": { + "AWS_VpcLattice_ResourceConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::DomainName \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)", + "markdownDescription": "VpcLattice ResourceConfiguration CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourceconfiguration.html)", "allOf": [ { "type": "object", @@ -21440,14 +21441,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::DomainName" + "AWS::VpcLattice::ResourceConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::DomainName \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)" + "VpcLattice ResourceConfiguration CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourceconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-domainname.json" + "$ref": "resources/aws-vpclattice-resourceconfiguration.json" } }, "required": [ @@ -21461,9 +21462,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_Network": { + "AWS_WorkSpacesWeb_UserAccessLoggingSettings": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaLive::Network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-network.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::UserAccessLoggingSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-useraccessloggingsettings.html)", "allOf": [ { "type": "object", @@ -21471,14 +21472,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::Network" + "AWS::WorkSpacesWeb::UserAccessLoggingSettings" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaLive::Network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-network.html)" + "Definition of AWS::WorkSpacesWeb::UserAccessLoggingSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-useraccessloggingsettings.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-network.json" + "$ref": "resources/aws-workspacesweb-useraccessloggingsettings.json" } }, "required": [ @@ -21492,9 +21493,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_Monitor": { + "AWS_Lex_BotAlias": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::Monitor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-monitor.html)", + "markdownDescription": "Resource Type definition for a Bot Alias, which enables you to change the version of a bot without updating applications that use the bot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botalias.html)", "allOf": [ { "type": "object", @@ -21502,14 +21503,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::Monitor" + "AWS::Lex::BotAlias" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::Monitor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-monitor.html)" + "Resource Type definition for a Bot Alias, which enables you to change the version of a bot without updating applications that use the bot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botalias.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-monitor.json" + "$ref": "resources/aws-lex-botalias.json" } }, "required": [ @@ -21523,9 +21524,9 @@ ], "additionalProperties": false }, - "AWS_AppFlow_Flow": { + "AWS_Cognito_UserPoolUICustomizationAttachment": { "type": "object", - "markdownDescription": "Resource schema for AWS::AppFlow::Flow. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolUICustomizationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html)", "allOf": [ { "type": "object", @@ -21533,14 +21534,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppFlow::Flow" + "AWS::Cognito::UserPoolUICustomizationAttachment" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::AppFlow::Flow. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html)" + "Resource Type definition for AWS::Cognito::UserPoolUICustomizationAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-appflow-flow.json" + "$ref": "resources/aws-cognito-userpooluicustomizationattachment.json" } }, "required": [ @@ -21554,9 +21555,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_FormType": { + "AWS_CustomerProfiles_Integration": { "type": "object", - "markdownDescription": "Create and manage form types in Amazon Datazone \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-formtype.html)", + "markdownDescription": "The resource schema for creating an Amazon Connect Customer Profiles Integration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html)", "allOf": [ { "type": "object", @@ -21564,14 +21565,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::FormType" + "AWS::CustomerProfiles::Integration" ], "markdownEnumDescriptions": [ - "Create and manage form types in Amazon Datazone \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-formtype.html)" + "The resource schema for creating an Amazon Connect Customer Profiles Integration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-formtype.json" + "$ref": "resources/aws-customerprofiles-integration.json" } }, "required": [ @@ -21585,9 +21586,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_VpcLink": { + "AWS_EMR_Cluster": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::VpcLink`` resource creates an API Gateway VPC link for a REST API to access resources in an Amazon Virtual Private Cloud (VPC). For more information, see [vpclink:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateVpcLink.html) in the ``Amazon API Gateway REST API Reference``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html)", + "markdownDescription": "Resource Type definition for AWS::EMR::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html)", "allOf": [ { "type": "object", @@ -21595,14 +21596,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::VpcLink" + "AWS::EMR::Cluster" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::VpcLink`` resource creates an API Gateway VPC link for a REST API to access resources in an Amazon Virtual Private Cloud (VPC). For more information, see [vpclink:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateVpcLink.html) in the ``Amazon API Gateway REST API Reference``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html)" + "Resource Type definition for AWS::EMR::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-vpclink.json" + "$ref": "resources/aws-emr-cluster.json" } }, "required": [ @@ -21616,9 +21617,9 @@ ], "additionalProperties": false }, - "AWS_SupportApp_AccountAlias": { + "AWS_RTBFabric_ResponderGateway": { "type": "object", - "markdownDescription": "An AWS Support App resource that creates, updates, reads, and deletes a customer's account alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html)", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::ResponderGateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-respondergateway.html)", "allOf": [ { "type": "object", @@ -21626,14 +21627,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SupportApp::AccountAlias" + "AWS::RTBFabric::ResponderGateway" ], "markdownEnumDescriptions": [ - "An AWS Support App resource that creates, updates, reads, and deletes a customer's account alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html)" + "Resource Type definition for AWS::RTBFabric::ResponderGateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-respondergateway.html)" ] }, "Properties": { - "$ref": "resources/aws-supportapp-accountalias.json" + "$ref": "resources/aws-rtbfabric-respondergateway.json" } }, "required": [ @@ -21647,9 +21648,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_Multiplex": { + "AWS_ApiGatewayV2_DomainName": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaLive::Multiplex \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplex.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::DomainName`` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway). \n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html)", "allOf": [ { "type": "object", @@ -21657,14 +21658,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::Multiplex" + "AWS::ApiGatewayV2::DomainName" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaLive::Multiplex \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplex.html)" + "The ``AWS::ApiGatewayV2::DomainName`` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway). \n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-multiplex.json" + "$ref": "resources/aws-apigatewayv2-domainname.json" } }, "required": [ @@ -21678,9 +21679,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_FlowOutput": { + "AWS_Glue_Job": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::FlowOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Job \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html)", "allOf": [ { "type": "object", @@ -21688,14 +21689,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::FlowOutput" + "AWS::Glue::Job" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::FlowOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html)" + "Resource Type definition for AWS::Glue::Job \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-flowoutput.json" + "$ref": "resources/aws-glue-job.json" } }, "required": [ @@ -21709,9 +21710,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_ContinuousDeploymentPolicy": { + "AWS_EC2_VPNConnection": { "type": "object", - "markdownDescription": "Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.\n After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.\n For more information, see [Using CloudFront continuous deployment to safely test CDN configuration changes](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html)", + "markdownDescription": "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnection.html)", "allOf": [ { "type": "object", @@ -21719,14 +21720,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::ContinuousDeploymentPolicy" + "AWS::EC2::VPNConnection" ], "markdownEnumDescriptions": [ - "Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.\n After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.\n For more information, see [Using CloudFront continuous deployment to safely test CDN configuration changes](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html)" + "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-continuousdeploymentpolicy.json" + "$ref": "resources/aws-ec2-vpnconnection.json" } }, "required": [ @@ -21740,9 +21741,9 @@ ], "additionalProperties": false }, - "AWS_Batch_SchedulingPolicy": { + "AWS_Route53RecoveryReadiness_ResourceSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Batch::SchedulingPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html)", + "markdownDescription": "Schema for the AWS Route53 Recovery Readiness ResourceSet Resource and API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-resourceset.html)", "allOf": [ { "type": "object", @@ -21750,18 +21751,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Batch::SchedulingPolicy" + "AWS::Route53RecoveryReadiness::ResourceSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Batch::SchedulingPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html)" + "Schema for the AWS Route53 Recovery Readiness ResourceSet Resource and API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-resourceset.html)" ] }, "Properties": { - "$ref": "resources/aws-batch-schedulingpolicy.json" + "$ref": "resources/aws-route53recoveryreadiness-resourceset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -21770,9 +21772,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_ApplicationFleetAssociation": { + "AWS_CloudWatch_AnomalyDetector": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::ApplicationFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html)", + "markdownDescription": "Resource Type definition for AWS::CloudWatch::AnomalyDetector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html)", "allOf": [ { "type": "object", @@ -21780,19 +21782,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::ApplicationFleetAssociation" + "AWS::CloudWatch::AnomalyDetector" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::ApplicationFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html)" + "Resource Type definition for AWS::CloudWatch::AnomalyDetector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-applicationfleetassociation.json" + "$ref": "resources/aws-cloudwatch-anomalydetector.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -21801,9 +21802,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_IntegrationResponse": { + "AWS_ElastiCache_SubnetGroup": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::IntegrationResponse`` resource updates an integration response for an WebSocket API. For more information, see [Set up WebSocket API Integration Responses in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html)", "allOf": [ { "type": "object", @@ -21811,14 +21812,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::IntegrationResponse" + "AWS::ElastiCache::SubnetGroup" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::IntegrationResponse`` resource updates an integration response for an WebSocket API. For more information, see [Set up WebSocket API Integration Responses in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html)" + "Resource Type definition for AWS::ElastiCache::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-integrationresponse.json" + "$ref": "resources/aws-elasticache-subnetgroup.json" } }, "required": [ @@ -21832,9 +21833,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolUserToGroupAttachment": { + "AWS_ControlTower_LandingZone": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html)", + "markdownDescription": "Definition of AWS::ControlTower::LandingZone Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html)", "allOf": [ { "type": "object", @@ -21842,14 +21843,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolUserToGroupAttachment" + "AWS::ControlTower::LandingZone" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html)" + "Definition of AWS::ControlTower::LandingZone Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpoolusertogroupattachment.json" + "$ref": "resources/aws-controltower-landingzone.json" } }, "required": [ @@ -21863,9 +21864,9 @@ ], "additionalProperties": false }, - "AWS_CodeBuild_SourceCredential": { + "AWS_PaymentCryptography_Alias": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeBuild::SourceCredential \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)", + "markdownDescription": "Definition of AWS::PaymentCryptography::Alias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html)", "allOf": [ { "type": "object", @@ -21873,14 +21874,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeBuild::SourceCredential" + "AWS::PaymentCryptography::Alias" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeBuild::SourceCredential \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)" + "Definition of AWS::PaymentCryptography::Alias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html)" ] }, "Properties": { - "$ref": "resources/aws-codebuild-sourcecredential.json" + "$ref": "resources/aws-paymentcryptography-alias.json" } }, "required": [ @@ -21894,9 +21895,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_LambdaHook": { + "AWS_RDS_DBParameterGroup": { "type": "object", - "markdownDescription": "This is a CloudFormation resource for the first-party AWS::Hooks::LambdaHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html)", + "markdownDescription": "The ``AWS::RDS::DBParameterGroup`` resource creates a custom parameter group for an RDS database family.\n This type can be declared in a template and referenced in the ``DBParameterGroupName`` property of an ``AWS::RDS::DBInstance`` resource.\n For information about configuring parameters for Amazon RDS DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For information about configuring parameters for Amazon Aurora DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n Applying a parameter group to a DB instance may require the DB instance to reboot, resulting in a database outage for the duration of the reboot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html)", "allOf": [ { "type": "object", @@ -21904,14 +21905,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::LambdaHook" + "AWS::RDS::DBParameterGroup" ], "markdownEnumDescriptions": [ - "This is a CloudFormation resource for the first-party AWS::Hooks::LambdaHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-lambdahook.html)" + "The ``AWS::RDS::DBParameterGroup`` resource creates a custom parameter group for an RDS database family.\n This type can be declared in a template and referenced in the ``DBParameterGroupName`` property of an ``AWS::RDS::DBInstance`` resource.\n For information about configuring parameters for Amazon RDS DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For information about configuring parameters for Amazon Aurora DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n Applying a parameter group to a DB instance may require the DB instance to reboot, resulting in a database outage for the duration of the reboot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-lambdahook.json" + "$ref": "resources/aws-rds-dbparametergroup.json" } }, "required": [ @@ -21925,9 +21926,9 @@ ], "additionalProperties": false }, - "AWS_Location_GeofenceCollection": { + "AWS_RefactorSpaces_Route": { "type": "object", - "markdownDescription": "Definition of AWS::Location::GeofenceCollection Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html)", + "markdownDescription": "Definition of AWS::RefactorSpaces::Route Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-route.html)", "allOf": [ { "type": "object", @@ -21935,14 +21936,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::GeofenceCollection" + "AWS::RefactorSpaces::Route" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::GeofenceCollection Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html)" + "Definition of AWS::RefactorSpaces::Route Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-route.html)" ] }, "Properties": { - "$ref": "resources/aws-location-geofencecollection.json" + "$ref": "resources/aws-refactorspaces-route.json" } }, "required": [ @@ -21956,9 +21957,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_HostedConfigurationVersion": { + "AWS_PinpointEmail_ConfigurationSetEventDestination": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppConfig::HostedConfigurationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html)", + "markdownDescription": "Resource Type definition for AWS::PinpointEmail::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html)", "allOf": [ { "type": "object", @@ -21966,14 +21967,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::HostedConfigurationVersion" + "AWS::PinpointEmail::ConfigurationSetEventDestination" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppConfig::HostedConfigurationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html)" + "Resource Type definition for AWS::PinpointEmail::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-hostedconfigurationversion.json" + "$ref": "resources/aws-pinpointemail-configurationseteventdestination.json" } }, "required": [ @@ -21987,9 +21988,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_EventRule": { + "AWS_APS_ResourcePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Notifications::EventRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-eventrule.html)", + "markdownDescription": "Resource Type definition for AWS::APS::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -21997,14 +21998,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::EventRule" + "AWS::APS::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Notifications::EventRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-eventrule.html)" + "Resource Type definition for AWS::APS::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-notifications-eventrule.json" + "$ref": "resources/aws-aps-resourcepolicy.json" } }, "required": [ @@ -22018,9 +22019,9 @@ ], "additionalProperties": false }, - "AWS_S3_StorageLensGroup": { + "AWS_Cognito_UserPoolDomain": { "type": "object", - "markdownDescription": "The AWS::S3::StorageLensGroup resource is an Amazon S3 resource type that you can use to create Storage Lens Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelensgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolDomain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html)", "allOf": [ { "type": "object", @@ -22028,14 +22029,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::StorageLensGroup" + "AWS::Cognito::UserPoolDomain" ], "markdownEnumDescriptions": [ - "The AWS::S3::StorageLensGroup resource is an Amazon S3 resource type that you can use to create Storage Lens Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelensgroup.html)" + "Resource Type definition for AWS::Cognito::UserPoolDomain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-storagelensgroup.json" + "$ref": "resources/aws-cognito-userpooldomain.json" } }, "required": [ @@ -22049,9 +22050,9 @@ ], "additionalProperties": false }, - "AWS_IoTEvents_Input": { + "AWS_ObservabilityAdmin_OrganizationTelemetryRule": { "type": "object", - "markdownDescription": "The AWS::IoTEvents::Input resource creates an input. To monitor your devices and processes, they must have a way to get telemetry data into ITE. This is done by sending messages as *inputs* to ITE. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html)", + "markdownDescription": "The AWS::ObservabilityAdmin::OrganizationTelemetryRule resource defines a CloudWatch Observability Admin Organization Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationtelemetryrule.html)", "allOf": [ { "type": "object", @@ -22059,14 +22060,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTEvents::Input" + "AWS::ObservabilityAdmin::OrganizationTelemetryRule" ], "markdownEnumDescriptions": [ - "The AWS::IoTEvents::Input resource creates an input. To monitor your devices and processes, they must have a way to get telemetry data into ITE. This is done by sending messages as *inputs* to ITE. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html)" + "The AWS::ObservabilityAdmin::OrganizationTelemetryRule resource defines a CloudWatch Observability Admin Organization Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationtelemetryrule.html)" ] }, "Properties": { - "$ref": "resources/aws-iotevents-input.json" + "$ref": "resources/aws-observabilityadmin-organizationtelemetryrule.json" } }, "required": [ @@ -22080,9 +22081,9 @@ ], "additionalProperties": false }, - "AWS_EMRContainers_VirtualCluster": { + "AWS_Location_Map": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EMRContainers::VirtualCluster Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html)", + "markdownDescription": "Definition of AWS::Location::Map Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html)", "allOf": [ { "type": "object", @@ -22090,14 +22091,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMRContainers::VirtualCluster" + "AWS::Location::Map" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EMRContainers::VirtualCluster Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html)" + "Definition of AWS::Location::Map Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html)" ] }, "Properties": { - "$ref": "resources/aws-emrcontainers-virtualcluster.json" + "$ref": "resources/aws-location-map.json" } }, "required": [ @@ -22111,9 +22112,9 @@ ], "additionalProperties": false }, - "AWS_IoTAnalytics_Pipeline": { + "AWS_Events_Endpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html)", + "markdownDescription": "Resource Type definition for AWS::Events::Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-endpoint.html)", "allOf": [ { "type": "object", @@ -22121,14 +22122,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTAnalytics::Pipeline" + "AWS::Events::Endpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoTAnalytics::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html)" + "Resource Type definition for AWS::Events::Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-endpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-iotanalytics-pipeline.json" + "$ref": "resources/aws-events-endpoint.json" } }, "required": [ @@ -22142,9 +22143,9 @@ ], "additionalProperties": false }, - "AWS_LookoutMetrics_AnomalyDetector": { + "AWS_Synthetics_Group": { "type": "object", - "markdownDescription": "An Amazon Lookout for Metrics Detector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html)", + "markdownDescription": "Resource Type definition for AWS::Synthetics::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-group.html)", "allOf": [ { "type": "object", @@ -22152,14 +22153,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LookoutMetrics::AnomalyDetector" + "AWS::Synthetics::Group" ], "markdownEnumDescriptions": [ - "An Amazon Lookout for Metrics Detector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html)" + "Resource Type definition for AWS::Synthetics::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-group.html)" ] }, "Properties": { - "$ref": "resources/aws-lookoutmetrics-anomalydetector.json" + "$ref": "resources/aws-synthetics-group.json" } }, "required": [ @@ -22173,9 +22174,9 @@ ], "additionalProperties": false }, - "AWS_Batch_ComputeEnvironment": { + "AWS_WAFRegional_SizeConstraintSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Batch::ComputeEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html)", "allOf": [ { "type": "object", @@ -22183,14 +22184,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::WAFRegional::SizeConstraintSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Batch::ComputeEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html)" + "Resource Type definition for AWS::WAFRegional::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html)" ] }, "Properties": { - "$ref": "resources/aws-batch-computeenvironment.json" + "$ref": "resources/aws-wafregional-sizeconstraintset.json" } }, "required": [ @@ -22204,9 +22205,9 @@ ], "additionalProperties": false }, - "AWS_IoT_CertificateProvider": { + "AWS_WorkSpacesWeb_Portal": { "type": "object", - "markdownDescription": "Use the AWS::IoT::CertificateProvider resource to declare an AWS IoT Certificate Provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificateprovider.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::Portal Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-portal.html)", "allOf": [ { "type": "object", @@ -22214,19 +22215,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::CertificateProvider" + "AWS::WorkSpacesWeb::Portal" ], "markdownEnumDescriptions": [ - "Use the AWS::IoT::CertificateProvider resource to declare an AWS IoT Certificate Provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificateprovider.html)" + "Definition of AWS::WorkSpacesWeb::Portal Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-portal.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-certificateprovider.json" + "$ref": "resources/aws-workspacesweb-portal.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -22235,9 +22235,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_LayerVersion": { + "AWS_Route53Resolver_FirewallRuleGroupAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lambda::LayerVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::FirewallRuleGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroupassociation.html)", "allOf": [ { "type": "object", @@ -22245,14 +22245,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::LayerVersion" + "AWS::Route53Resolver::FirewallRuleGroupAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lambda::LayerVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html)" + "Resource schema for AWS::Route53Resolver::FirewallRuleGroupAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroupassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-layerversion.json" + "$ref": "resources/aws-route53resolver-firewallrulegroupassociation.json" } }, "required": [ @@ -22266,9 +22266,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_IntelligentPromptRouter": { + "AWS_SystemsManagerSAP_Application": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::IntelligentPromptRouter Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-intelligentpromptrouter.html)", + "markdownDescription": "Resource schema for AWS::SystemsManagerSAP::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-systemsmanagersap-application.html)", "allOf": [ { "type": "object", @@ -22276,14 +22276,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::IntelligentPromptRouter" + "AWS::SystemsManagerSAP::Application" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::IntelligentPromptRouter Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-intelligentpromptrouter.html)" + "Resource schema for AWS::SystemsManagerSAP::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-systemsmanagersap-application.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-intelligentpromptrouter.json" + "$ref": "resources/aws-systemsmanagersap-application.json" } }, "required": [ @@ -22297,9 +22297,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorAD_TemplateGroupAccessControlEntry": { + "AWS_B2BI_Transformer": { "type": "object", - "markdownDescription": "Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-templategroupaccesscontrolentry.html)", + "markdownDescription": "Definition of AWS::B2BI::Transformer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html)", "allOf": [ { "type": "object", @@ -22307,14 +22307,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + "AWS::B2BI::Transformer" ], "markdownEnumDescriptions": [ - "Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-templategroupaccesscontrolentry.html)" + "Definition of AWS::B2BI::Transformer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorad-templategroupaccesscontrolentry.json" + "$ref": "resources/aws-b2bi-transformer.json" } }, "required": [ @@ -22328,9 +22328,9 @@ ], "additionalProperties": false }, - "AWS_IoTEvents_AlarmModel": { + "AWS_GroundStation_DataflowEndpointGroup": { "type": "object", - "markdownDescription": "Represents an alarm model to monitor an ITE input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see [Create an alarm model](https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-alarmmodel.html)", + "markdownDescription": "AWS Ground Station DataflowEndpointGroup schema for CloudFormation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html)", "allOf": [ { "type": "object", @@ -22338,14 +22338,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTEvents::AlarmModel" + "AWS::GroundStation::DataflowEndpointGroup" ], "markdownEnumDescriptions": [ - "Represents an alarm model to monitor an ITE input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see [Create an alarm model](https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-alarmmodel.html)" + "AWS Ground Station DataflowEndpointGroup schema for CloudFormation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-iotevents-alarmmodel.json" + "$ref": "resources/aws-groundstation-dataflowendpointgroup.json" } }, "required": [ @@ -22359,9 +22359,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_AppBlockBuilder": { + "AWS_S3Outposts_Bucket": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::AppBlockBuilder. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblockbuilder.html)", + "markdownDescription": "Resource Type Definition for AWS::S3Outposts::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html)", "allOf": [ { "type": "object", @@ -22369,14 +22369,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::AppBlockBuilder" + "AWS::S3Outposts::Bucket" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::AppBlockBuilder. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblockbuilder.html)" + "Resource Type Definition for AWS::S3Outposts::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-appblockbuilder.json" + "$ref": "resources/aws-s3outposts-bucket.json" } }, "required": [ @@ -22390,9 +22390,9 @@ ], "additionalProperties": false }, - "AWS_Signer_SigningProfile": { + "AWS_InternetMonitor_Monitor": { "type": "object", - "markdownDescription": "A signing profile is a signing template that can be used to carry out a pre-defined signing job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html)", + "markdownDescription": "Represents a monitor, which defines the monitoring boundaries for measurements that Internet Monitor publishes information about for an application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html)", "allOf": [ { "type": "object", @@ -22400,14 +22400,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Signer::SigningProfile" + "AWS::InternetMonitor::Monitor" ], "markdownEnumDescriptions": [ - "A signing profile is a signing template that can be used to carry out a pre-defined signing job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html)" + "Represents a monitor, which defines the monitoring boundaries for measurements that Internet Monitor publishes information about for an application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html)" ] }, "Properties": { - "$ref": "resources/aws-signer-signingprofile.json" + "$ref": "resources/aws-internetmonitor-monitor.json" } }, "required": [ @@ -22421,9 +22421,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_Cluster": { + "AWS_SES_ReceiptRule": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::Cluster Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cluster.html)", + "markdownDescription": "Resource Type definition for AWS::SES::ReceiptRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html)", "allOf": [ { "type": "object", @@ -22431,18 +22431,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::Cluster" + "AWS::SES::ReceiptRule" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::Cluster Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cluster.html)" + "Resource Type definition for AWS::SES::ReceiptRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-cluster.json" + "$ref": "resources/aws-ses-receiptrule.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -22451,9 +22452,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryReadiness_ResourceSet": { + "AWS_DataSync_LocationEFS": { "type": "object", - "markdownDescription": "Schema for the AWS Route53 Recovery Readiness ResourceSet Resource and API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-resourceset.html)", + "markdownDescription": "Resource schema for AWS::DataSync::LocationEFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html)", "allOf": [ { "type": "object", @@ -22461,14 +22462,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryReadiness::ResourceSet" + "AWS::DataSync::LocationEFS" ], "markdownEnumDescriptions": [ - "Schema for the AWS Route53 Recovery Readiness ResourceSet Resource and API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-resourceset.html)" + "Resource schema for AWS::DataSync::LocationEFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoveryreadiness-resourceset.json" + "$ref": "resources/aws-datasync-locationefs.json" } }, "required": [ @@ -22482,9 +22483,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_BridgeOutput": { + "AWS_KMS_ReplicaKey": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::BridgeOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgeoutput.html)", + "markdownDescription": "The AWS::KMS::ReplicaKey resource specifies a multi-region replica AWS KMS key in AWS Key Management Service (AWS KMS). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)", "allOf": [ { "type": "object", @@ -22492,14 +22493,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::BridgeOutput" + "AWS::KMS::ReplicaKey" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::BridgeOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridgeoutput.html)" + "The AWS::KMS::ReplicaKey resource specifies a multi-region replica AWS KMS key in AWS Key Management Service (AWS KMS). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-bridgeoutput.json" + "$ref": "resources/aws-kms-replicakey.json" } }, "required": [ @@ -22513,9 +22514,9 @@ ], "additionalProperties": false }, - "AWS_ApplicationAutoScaling_ScalableTarget": { + "AWS_SageMaker_UserProfile": { "type": "object", - "markdownDescription": "The ``AWS::ApplicationAutoScaling::ScalableTarget`` resource specifies a resource that Application Auto Scaling can scale, such as an AWS::DynamoDB::Table or AWS::ECS::Service resource.\n For more information, see [Getting started](https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) in the *Application Auto Scaling User Guide*.\n If the resource that you want Application Auto Scaling to scale is not yet created in your account, add a dependency on the resource when registering it as a scalable target using the [DependsOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) attribute. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-userprofile.html)", "allOf": [ { "type": "object", @@ -22523,14 +22524,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApplicationAutoScaling::ScalableTarget" + "AWS::SageMaker::UserProfile" ], "markdownEnumDescriptions": [ - "The ``AWS::ApplicationAutoScaling::ScalableTarget`` resource specifies a resource that Application Auto Scaling can scale, such as an AWS::DynamoDB::Table or AWS::ECS::Service resource.\n For more information, see [Getting started](https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) in the *Application Auto Scaling User Guide*.\n If the resource that you want Application Auto Scaling to scale is not yet created in your account, add a dependency on the resource when registering it as a scalable target using the [DependsOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) attribute. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html)" + "Resource Type definition for AWS::SageMaker::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-userprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-applicationautoscaling-scalabletarget.json" + "$ref": "resources/aws-sagemaker-userprofile.json" } }, "required": [ @@ -22544,9 +22545,9 @@ ], "additionalProperties": false }, - "AWS_DMS_ReplicationConfig": { + "AWS_DataSync_Task": { "type": "object", - "markdownDescription": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html)", + "markdownDescription": "Resource schema for AWS::DataSync::Task. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html)", "allOf": [ { "type": "object", @@ -22554,14 +22555,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::ReplicationConfig" + "AWS::DataSync::Task" ], "markdownEnumDescriptions": [ - "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationconfig.html)" + "Resource schema for AWS::DataSync::Task. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-replicationconfig.json" + "$ref": "resources/aws-datasync-task.json" } }, "required": [ @@ -22575,9 +22576,9 @@ ], "additionalProperties": false }, - "AWS_Kendra_DataSource": { + "AWS_GuardDuty_MalwareProtectionPlan": { "type": "object", - "markdownDescription": "Kendra DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::MalwareProtectionPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-malwareprotectionplan.html)", "allOf": [ { "type": "object", @@ -22585,14 +22586,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Kendra::DataSource" + "AWS::GuardDuty::MalwareProtectionPlan" ], "markdownEnumDescriptions": [ - "Kendra DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html)" + "Resource Type definition for AWS::GuardDuty::MalwareProtectionPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-malwareprotectionplan.html)" ] }, "Properties": { - "$ref": "resources/aws-kendra-datasource.json" + "$ref": "resources/aws-guardduty-malwareprotectionplan.json" } }, "required": [ @@ -22606,9 +22607,9 @@ ], "additionalProperties": false }, - "AWS_Glue_SecurityConfiguration": { + "AWS_ApiGateway_DocumentationPart": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::SecurityConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html)", + "markdownDescription": "The ``AWS::ApiGateway::DocumentationPart`` resource creates a documentation part for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html)", "allOf": [ { "type": "object", @@ -22616,14 +22617,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::SecurityConfiguration" + "AWS::ApiGateway::DocumentationPart" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::SecurityConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html)" + "The ``AWS::ApiGateway::DocumentationPart`` resource creates a documentation part for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-securityconfiguration.json" + "$ref": "resources/aws-apigateway-documentationpart.json" } }, "required": [ @@ -22637,9 +22638,9 @@ ], "additionalProperties": false }, - "AWS_SSMIncidents_ReplicationSet": { + "AWS_EC2_VerifiedAccessInstance": { "type": "object", - "markdownDescription": "Resource type definition for AWS::SSMIncidents::ReplicationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-replicationset.html)", + "markdownDescription": "The AWS::EC2::VerifiedAccessInstance resource creates an AWS EC2 Verified Access Instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessinstance.html)", "allOf": [ { "type": "object", @@ -22647,19 +22648,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMIncidents::ReplicationSet" + "AWS::EC2::VerifiedAccessInstance" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::SSMIncidents::ReplicationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-replicationset.html)" + "The AWS::EC2::VerifiedAccessInstance resource creates an AWS EC2 Verified Access Instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmincidents-replicationset.json" + "$ref": "resources/aws-ec2-verifiedaccessinstance.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -22668,9 +22668,9 @@ ], "additionalProperties": false }, - "AWS_StepFunctions_StateMachineVersion": { + "AWS_Lightsail_Domain": { "type": "object", - "markdownDescription": "Resource schema for StateMachineVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-domain.html)", "allOf": [ { "type": "object", @@ -22678,14 +22678,14 @@ "Type": { "type": "string", "enum": [ - "AWS::StepFunctions::StateMachineVersion" + "AWS::Lightsail::Domain" ], "markdownEnumDescriptions": [ - "Resource schema for StateMachineVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html)" + "Resource Type definition for AWS::Lightsail::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-stepfunctions-statemachineversion.json" + "$ref": "resources/aws-lightsail-domain.json" } }, "required": [ @@ -22699,9 +22699,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchService_Domain": { + "AWS_SES_MailManagerAddressList": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerAddressList Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddresslist.html)", "allOf": [ { "type": "object", @@ -22709,14 +22709,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchService::Domain" + "AWS::SES::MailManagerAddressList" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html)" + "Definition of AWS::SES::MailManagerAddressList Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddresslist.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchservice-domain.json" + "$ref": "resources/aws-ses-mailmanageraddresslist.json" } }, "required": [ @@ -22729,9 +22729,9 @@ ], "additionalProperties": false }, - "AWS_Logs_LogAnomalyDetector": { + "AWS_CleanRoomsML_ConfiguredModelAlgorithm": { "type": "object", - "markdownDescription": "The AWS::Logs::LogAnomalyDetector resource specifies a CloudWatch Logs LogAnomalyDetector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loganomalydetector.html)", + "markdownDescription": "Definition of AWS::CleanRoomsML::ConfiguredModelAlgorithm Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-configuredmodelalgorithm.html)", "allOf": [ { "type": "object", @@ -22739,18 +22739,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::LogAnomalyDetector" + "AWS::CleanRoomsML::ConfiguredModelAlgorithm" ], "markdownEnumDescriptions": [ - "The AWS::Logs::LogAnomalyDetector resource specifies a CloudWatch Logs LogAnomalyDetector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loganomalydetector.html)" + "Definition of AWS::CleanRoomsML::ConfiguredModelAlgorithm Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-configuredmodelalgorithm.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-loganomalydetector.json" + "$ref": "resources/aws-cleanroomsml-configuredmodelalgorithm.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -22759,9 +22760,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ModelPackageGroup": { + "AWS_Pinpoint_ApplicationSettings": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelPackageGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackagegroup.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::ApplicationSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-applicationsettings.html)", "allOf": [ { "type": "object", @@ -22769,14 +22770,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ModelPackageGroup" + "AWS::Pinpoint::ApplicationSettings" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ModelPackageGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackagegroup.html)" + "Resource Type definition for AWS::Pinpoint::ApplicationSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-applicationsettings.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-modelpackagegroup.json" + "$ref": "resources/aws-pinpoint-applicationsettings.json" } }, "required": [ @@ -22790,9 +22791,9 @@ ], "additionalProperties": false }, - "AWS_NeptuneGraph_PrivateGraphEndpoint": { + "AWS_LakeFormation_Tag": { "type": "object", - "markdownDescription": "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html)", + "markdownDescription": "A resource schema representing a Lake Formation Tag. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tag.html)", "allOf": [ { "type": "object", @@ -22800,14 +22801,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NeptuneGraph::PrivateGraphEndpoint" + "AWS::LakeFormation::Tag" ], "markdownEnumDescriptions": [ - "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html)" + "A resource schema representing a Lake Formation Tag. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tag.html)" ] }, "Properties": { - "$ref": "resources/aws-neptunegraph-privategraphendpoint.json" + "$ref": "resources/aws-lakeformation-tag.json" } }, "required": [ @@ -22821,9 +22822,9 @@ ], "additionalProperties": false }, - "AWS_Connect_ContactFlow": { + "AWS_IoTAnalytics_Datastore": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::ContactFlow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html)", + "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html)", "allOf": [ { "type": "object", @@ -22831,19 +22832,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::ContactFlow" + "AWS::IoTAnalytics::Datastore" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::ContactFlow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html)" + "Resource Type definition for AWS::IoTAnalytics::Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-contactflow.json" + "$ref": "resources/aws-iotanalytics-datastore.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -22852,9 +22852,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LaunchTemplate": { + "AWS_IoTSiteWise_ComputationModel": { "type": "object", - "markdownDescription": "Specifies the properties for creating a launch template.\n The minimum required properties for specifying a launch template are as follows:\n + You must specify at least one property for the launch template data.\n + You can optionally specify a name for the launch template. If you do not specify a name, CFN creates a name for you.\n \n A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.\n For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::ComputationModel. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-computationmodel.html)", "allOf": [ { "type": "object", @@ -22862,14 +22862,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LaunchTemplate" + "AWS::IoTSiteWise::ComputationModel" ], "markdownEnumDescriptions": [ - "Specifies the properties for creating a launch template.\n The minimum required properties for specifying a launch template are as follows:\n + You must specify at least one property for the launch template data.\n + You can optionally specify a name for the launch template. If you do not specify a name, CFN creates a name for you.\n \n A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.\n For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)" + "Resource schema for AWS::IoTSiteWise::ComputationModel. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-computationmodel.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-launchtemplate.json" + "$ref": "resources/aws-iotsitewise-computationmodel.json" } }, "required": [ @@ -22883,9 +22883,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Certificate": { + "AWS_Notifications_EventRule": { "type": "object", - "markdownDescription": "Use the AWS::IoT::Certificate resource to declare an AWS IoT X.509 certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html)", + "markdownDescription": "Resource Type definition for AWS::Notifications::EventRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-eventrule.html)", "allOf": [ { "type": "object", @@ -22893,14 +22893,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Certificate" + "AWS::Notifications::EventRule" ], "markdownEnumDescriptions": [ - "Use the AWS::IoT::Certificate resource to declare an AWS IoT X.509 certificate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html)" + "Resource Type definition for AWS::Notifications::EventRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-eventrule.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-certificate.json" + "$ref": "resources/aws-notifications-eventrule.json" } }, "required": [ @@ -22914,9 +22914,9 @@ ], "additionalProperties": false }, - "AWS_RDS_Integration": { + "AWS_IoTWireless_WirelessGateway": { "type": "object", - "markdownDescription": "A zero-ETL integration with Amazon Redshift. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html)", + "markdownDescription": "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html)", "allOf": [ { "type": "object", @@ -22924,14 +22924,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::Integration" + "AWS::IoTWireless::WirelessGateway" ], "markdownEnumDescriptions": [ - "A zero-ETL integration with Amazon Redshift. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html)" + "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-integration.json" + "$ref": "resources/aws-iotwireless-wirelessgateway.json" } }, "required": [ @@ -22945,9 +22945,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_Domain": { + "AWS_Forecast_Dataset": { "type": "object", - "markdownDescription": "A domain defined for 3rd party data source in Profile Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html)", + "markdownDescription": "Resource Type Definition for AWS::Forecast::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-dataset.html)", "allOf": [ { "type": "object", @@ -22955,14 +22955,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::Domain" + "AWS::Forecast::Dataset" ], "markdownEnumDescriptions": [ - "A domain defined for 3rd party data source in Profile Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html)" + "Resource Type Definition for AWS::Forecast::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-dataset.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-domain.json" + "$ref": "resources/aws-forecast-dataset.json" } }, "required": [ @@ -22976,9 +22976,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SecurityGroupEgress": { + "AWS_LakeFormation_TagAssociation": { "type": "object", - "markdownDescription": "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html)", + "markdownDescription": "A resource schema representing a Lake Formation Tag Association. While tag associations are not explicit Lake Formation resources, this CloudFormation resource can be used to associate tags with Lake Formation entities. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tagassociation.html)", "allOf": [ { "type": "object", @@ -22986,14 +22986,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SecurityGroupEgress" + "AWS::LakeFormation::TagAssociation" ], "markdownEnumDescriptions": [ - "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html)" + "A resource schema representing a Lake Formation Tag Association. While tag associations are not explicit Lake Formation resources, this CloudFormation resource can be used to associate tags with Lake Formation entities. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-tagassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-securitygroupegress.json" + "$ref": "resources/aws-lakeformation-tagassociation.json" } }, "required": [ @@ -23007,9 +23007,9 @@ ], "additionalProperties": false }, - "AWS_Cassandra_Table": { + "AWS_Cassandra_Keyspace": { "type": "object", - "markdownDescription": "Resource schema for AWS::Cassandra::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html)", + "markdownDescription": "Resource schema for AWS::Cassandra::Keyspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html)", "allOf": [ { "type": "object", @@ -23017,19 +23017,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Cassandra::Table" + "AWS::Cassandra::Keyspace" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Cassandra::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html)" + "Resource schema for AWS::Cassandra::Keyspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html)" ] }, "Properties": { - "$ref": "resources/aws-cassandra-table.json" + "$ref": "resources/aws-cassandra-keyspace.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23038,9 +23037,9 @@ ], "additionalProperties": false }, - "AWS_Batch_JobDefinition": { + "AWS_Kendra_Index": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Batch::JobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html)", + "markdownDescription": "A Kendra index \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html)", "allOf": [ { "type": "object", @@ -23048,14 +23047,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Batch::JobDefinition" + "AWS::Kendra::Index" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Batch::JobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html)" + "A Kendra index \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html)" ] }, "Properties": { - "$ref": "resources/aws-batch-jobdefinition.json" + "$ref": "resources/aws-kendra-index.json" } }, "required": [ @@ -23069,9 +23068,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_Fleet": { + "AWS_DataZone_DataSource": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::Fleet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html)", + "markdownDescription": "A data source is used to import technical metadata of assets (data) from the source databases or data warehouses into Amazon DataZone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html)", "allOf": [ { "type": "object", @@ -23079,14 +23078,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::Fleet" + "AWS::DataZone::DataSource" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::Fleet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html)" + "A data source is used to import technical metadata of assets (data) from the source databases or data warehouses into Amazon DataZone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-fleet.json" + "$ref": "resources/aws-datazone-datasource.json" } }, "required": [ @@ -23100,9 +23099,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_Topic": { + "AWS_Detective_Graph": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::Topic Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-topic.html)", + "markdownDescription": "Resource schema for AWS::Detective::Graph \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html)", "allOf": [ { "type": "object", @@ -23110,14 +23109,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::Topic" + "AWS::Detective::Graph" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::Topic Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-topic.html)" + "Resource schema for AWS::Detective::Graph \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-topic.json" + "$ref": "resources/aws-detective-graph.json" } }, "required": [ @@ -23130,9 +23129,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAMPool": { + "AWS_DocDB_DBClusterParameterGroup": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAMPool Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html)", + "markdownDescription": "Resource Type definition for AWS::DocDB::DBClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html)", "allOf": [ { "type": "object", @@ -23140,14 +23139,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAMPool" + "AWS::DocDB::DBClusterParameterGroup" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAMPool Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html)" + "Resource Type definition for AWS::DocDB::DBClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipampool.json" + "$ref": "resources/aws-docdb-dbclusterparametergroup.json" } }, "required": [ @@ -23161,9 +23160,9 @@ ], "additionalProperties": false }, - "AWS_Connect_AgentStatus": { + "AWS_StepFunctions_StateMachineVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::AgentStatus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-agentstatus.html)", + "markdownDescription": "Resource schema for StateMachineVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html)", "allOf": [ { "type": "object", @@ -23171,14 +23170,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::AgentStatus" + "AWS::StepFunctions::StateMachineVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::AgentStatus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-agentstatus.html)" + "Resource schema for StateMachineVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-agentstatus.json" + "$ref": "resources/aws-stepfunctions-statemachineversion.json" } }, "required": [ @@ -23192,9 +23191,9 @@ ], "additionalProperties": false }, - "AWS_Location_APIKey": { + "AWS_SecurityHub_AggregatorV2": { "type": "object", - "markdownDescription": "Definition of AWS::Location::APIKey Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-apikey.html)", + "markdownDescription": "The AWS::SecurityHub::AggregatorV2 resource represents the AWS Security Hub AggregatorV2 in your account. One aggregatorv2 resource is created for each account in non opt-in region in which you configure region linking mode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html)", "allOf": [ { "type": "object", @@ -23202,14 +23201,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::APIKey" + "AWS::SecurityHub::AggregatorV2" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::APIKey Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-apikey.html)" + "The AWS::SecurityHub::AggregatorV2 resource represents the AWS Security Hub AggregatorV2 in your account. One aggregatorv2 resource is created for each account in non opt-in region in which you configure region linking mode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html)" ] }, "Properties": { - "$ref": "resources/aws-location-apikey.json" + "$ref": "resources/aws-securityhub-aggregatorv2.json" } }, "required": [ @@ -23223,9 +23222,9 @@ ], "additionalProperties": false }, - "AWS_GlobalAccelerator_CrossAccountAttachment": { + "AWS_Connect_ContactFlowModuleAlias": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html)", + "markdownDescription": "Resource Type definition for ContactFlowModuleAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodulealias.html)", "allOf": [ { "type": "object", @@ -23233,14 +23232,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GlobalAccelerator::CrossAccountAttachment" + "AWS::Connect::ContactFlowModuleAlias" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html)" + "Resource Type definition for ContactFlowModuleAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodulealias.html)" ] }, "Properties": { - "$ref": "resources/aws-globalaccelerator-crossaccountattachment.json" + "$ref": "resources/aws-connect-contactflowmodulealias.json" } }, "required": [ @@ -23254,9 +23253,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_APNSChannel": { + "AWS_QuickSight_DataSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnschannel.html)", + "markdownDescription": "Definition of the AWS::QuickSight::DataSet Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dataset.html)", "allOf": [ { "type": "object", @@ -23264,19 +23263,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::APNSChannel" + "AWS::QuickSight::DataSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::APNSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnschannel.html)" + "Definition of the AWS::QuickSight::DataSet Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dataset.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-apnschannel.json" + "$ref": "resources/aws-quicksight-dataset.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23285,9 +23283,9 @@ ], "additionalProperties": false }, - "AWS_RAM_Permission": { + "AWS_WAF_XssMatchSet": { "type": "object", - "markdownDescription": "Resource type definition for AWS::RAM::Permission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-permission.html)", + "markdownDescription": "Resource Type definition for AWS::WAF::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html)", "allOf": [ { "type": "object", @@ -23295,14 +23293,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RAM::Permission" + "AWS::WAF::XssMatchSet" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::RAM::Permission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-permission.html)" + "Resource Type definition for AWS::WAF::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html)" ] }, "Properties": { - "$ref": "resources/aws-ram-permission.json" + "$ref": "resources/aws-waf-xssmatchset.json" } }, "required": [ @@ -23316,9 +23314,9 @@ ], "additionalProperties": false }, - "AWS_NetworkFirewall_TLSInspectionConfiguration": { + "AWS_Greengrass_SubscriptionDefinition": { "type": "object", - "markdownDescription": "Resource type definition for AWS::NetworkFirewall::TLSInspectionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-tlsinspectionconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::SubscriptionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html)", "allOf": [ { "type": "object", @@ -23326,14 +23324,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkFirewall::TLSInspectionConfiguration" + "AWS::Greengrass::SubscriptionDefinition" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::NetworkFirewall::TLSInspectionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-tlsinspectionconfiguration.html)" + "Resource Type definition for AWS::Greengrass::SubscriptionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-networkfirewall-tlsinspectionconfiguration.json" + "$ref": "resources/aws-greengrass-subscriptiondefinition.json" } }, "required": [ @@ -23347,9 +23345,9 @@ ], "additionalProperties": false }, - "AWS_RDS_EventSubscription": { + "AWS_LookoutVision_Project": { "type": "object", - "markdownDescription": "The ``AWS::RDS::EventSubscription`` resource allows you to receive notifications for Amazon Relational Database Service events through the Amazon Simple Notification Service (Amazon SNS). For more information, see [Using Amazon RDS Event Notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html)", + "markdownDescription": "The AWS::LookoutVision::Project type creates an Amazon Lookout for Vision project. A project is a grouping of the resources needed to create and manage a Lookout for Vision model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html)", "allOf": [ { "type": "object", @@ -23357,14 +23355,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::EventSubscription" + "AWS::LookoutVision::Project" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::EventSubscription`` resource allows you to receive notifications for Amazon Relational Database Service events through the Amazon Simple Notification Service (Amazon SNS). For more information, see [Using Amazon RDS Event Notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html)" + "The AWS::LookoutVision::Project type creates an Amazon Lookout for Vision project. A project is a grouping of the resources needed to create and manage a Lookout for Vision model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-eventsubscription.json" + "$ref": "resources/aws-lookoutvision-project.json" } }, "required": [ @@ -23378,9 +23376,9 @@ ], "additionalProperties": false }, - "AWS_GroundStation_MissionProfile": { + "AWS_ApiGateway_ApiKey": { "type": "object", - "markdownDescription": "AWS Ground Station Mission Profile resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html)", + "markdownDescription": "The ``AWS::ApiGateway::ApiKey`` resource creates a unique key that you can distribute to clients who are executing API Gateway ``Method`` resources that require an API key. To specify which API key clients must use, map the API key with the ``RestApi`` and ``Stage`` resources that include the methods that require a key. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)", "allOf": [ { "type": "object", @@ -23388,19 +23386,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GroundStation::MissionProfile" + "AWS::ApiGateway::ApiKey" ], "markdownEnumDescriptions": [ - "AWS Ground Station Mission Profile resource type for CloudFormation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html)" + "The ``AWS::ApiGateway::ApiKey`` resource creates a unique key that you can distribute to clients who are executing API Gateway ``Method`` resources that require an API key. To specify which API key clients must use, map the API key with the ``RestApi`` and ``Stage`` resources that include the methods that require a key. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)" ] }, "Properties": { - "$ref": "resources/aws-groundstation-missionprofile.json" + "$ref": "resources/aws-apigateway-apikey.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23409,9 +23406,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_Agent": { + "AWS_SageMaker_PartnerApp": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::Agent. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::PartnerApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-partnerapp.html)", "allOf": [ { "type": "object", @@ -23419,18 +23416,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::Agent" + "AWS::SageMaker::PartnerApp" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::Agent. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html)" + "Resource Type definition for AWS::SageMaker::PartnerApp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-partnerapp.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-agent.json" + "$ref": "resources/aws-sagemaker-partnerapp.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -23439,9 +23437,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverRule": { + "AWS_AppSync_DomainName": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53Resolver::ResolverRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::DomainName \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)", "allOf": [ { "type": "object", @@ -23449,14 +23447,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverRule" + "AWS::AppSync::DomainName" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53Resolver::ResolverRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html)" + "Resource Type definition for AWS::AppSync::DomainName \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverrule.json" + "$ref": "resources/aws-appsync-domainname.json" } }, "required": [ @@ -23470,9 +23468,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_StateTemplate": { + "AWS_FraudDetector_EntityType": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::StateTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-statetemplate.html)", + "markdownDescription": "An entity type for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html)", "allOf": [ { "type": "object", @@ -23480,14 +23478,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::StateTemplate" + "AWS::FraudDetector::EntityType" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::StateTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-statetemplate.html)" + "An entity type for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-statetemplate.json" + "$ref": "resources/aws-frauddetector-entitytype.json" } }, "required": [ @@ -23501,9 +23499,9 @@ ], "additionalProperties": false }, - "AWS_Lex_BotAlias": { + "AWS_RefactorSpaces_Environment": { "type": "object", - "markdownDescription": "A Bot Alias enables you to change the version of a bot without updating applications that use the bot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botalias.html)", + "markdownDescription": "Definition of AWS::RefactorSpaces::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-environment.html)", "allOf": [ { "type": "object", @@ -23511,19 +23509,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Lex::BotAlias" + "AWS::RefactorSpaces::Environment" ], "markdownEnumDescriptions": [ - "A Bot Alias enables you to change the version of a bot without updating applications that use the bot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botalias.html)" + "Definition of AWS::RefactorSpaces::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-lex-botalias.json" + "$ref": "resources/aws-refactorspaces-environment.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23532,9 +23529,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_ServiceActionAssociation": { + "AWS_KinesisAnalyticsV2_Application": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalog::ServiceActionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html)", + "markdownDescription": "Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see [Creating an Application](https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html)", "allOf": [ { "type": "object", @@ -23542,14 +23539,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::ServiceActionAssociation" + "AWS::KinesisAnalyticsV2::Application" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalog::ServiceActionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html)" + "Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see [Creating an Application](https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-serviceactionassociation.json" + "$ref": "resources/aws-kinesisanalyticsv2-application.json" } }, "required": [ @@ -23563,9 +23560,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolDomain": { + "AWS_FraudDetector_Detector": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolDomain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html)", + "markdownDescription": "A resource schema for a Detector in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html)", "allOf": [ { "type": "object", @@ -23573,14 +23570,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolDomain" + "AWS::FraudDetector::Detector" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolDomain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html)" + "A resource schema for a Detector in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpooldomain.json" + "$ref": "resources/aws-frauddetector-detector.json" } }, "required": [ @@ -23594,9 +23591,9 @@ ], "additionalProperties": false }, - "Alexa_ASK_Skill": { + "AWS_Batch_ConsumableResource": { "type": "object", - "markdownDescription": "Resource Type definition for Alexa::ASK::Skill \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-alexa-ask-skill.html)", + "markdownDescription": "Resource Type definition for AWS::Batch::ConsumableResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-consumableresource.html)", "allOf": [ { "type": "object", @@ -23604,14 +23601,14 @@ "Type": { "type": "string", "enum": [ - "Alexa::ASK::Skill" + "AWS::Batch::ConsumableResource" ], "markdownEnumDescriptions": [ - "Resource Type definition for Alexa::ASK::Skill \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-alexa-ask-skill.html)" + "Resource Type definition for AWS::Batch::ConsumableResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-consumableresource.html)" ] }, "Properties": { - "$ref": "resources/alexa-ask-skill.json" + "$ref": "resources/aws-batch-consumableresource.json" } }, "required": [ @@ -23625,9 +23622,9 @@ ], "additionalProperties": false }, - "AWS_SES_ReceiptRule": { + "AWS_ECS_PrimaryTaskSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::ReceiptRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html)", + "markdownDescription": "A pseudo-resource that manages which of your ECS task sets is primary. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html)", "allOf": [ { "type": "object", @@ -23635,14 +23632,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::ReceiptRule" + "AWS::ECS::PrimaryTaskSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::ReceiptRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html)" + "A pseudo-resource that manages which of your ECS task sets is primary. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-receiptrule.json" + "$ref": "resources/aws-ecs-primarytaskset.json" } }, "required": [ @@ -23656,9 +23653,9 @@ ], "additionalProperties": false }, - "AWS_RoboMaker_RobotApplication": { + "AWS_CleanRooms_AnalysisTemplate": { "type": "object", - "markdownDescription": "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html)", + "markdownDescription": "Represents a stored analysis within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-analysistemplate.html)", "allOf": [ { "type": "object", @@ -23666,14 +23663,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RoboMaker::RobotApplication" + "AWS::CleanRooms::AnalysisTemplate" ], "markdownEnumDescriptions": [ - "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html)" + "Represents a stored analysis within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-analysistemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-robomaker-robotapplication.json" + "$ref": "resources/aws-cleanrooms-analysistemplate.json" } }, "required": [ @@ -23687,9 +23684,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_Flow": { + "AWS_EC2_NatGateway": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::Flow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flow.html)", + "markdownDescription": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html)", "allOf": [ { "type": "object", @@ -23697,19 +23694,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::Flow" + "AWS::EC2::NatGateway" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::Flow Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flow.html)" + "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-flow.json" + "$ref": "resources/aws-ec2-natgateway.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23718,9 +23714,9 @@ ], "additionalProperties": false }, - "AWS_EKS_IdentityProviderConfig": { + "AWS_EKS_PodIdentityAssociation": { "type": "object", - "markdownDescription": "An object representing an Amazon EKS IdentityProviderConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html)", + "markdownDescription": "An object representing an Amazon EKS PodIdentityAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html)", "allOf": [ { "type": "object", @@ -23728,14 +23724,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::IdentityProviderConfig" + "AWS::EKS::PodIdentityAssociation" ], "markdownEnumDescriptions": [ - "An object representing an Amazon EKS IdentityProviderConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html)" + "An object representing an Amazon EKS PodIdentityAssociation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-identityproviderconfig.json" + "$ref": "resources/aws-eks-podidentityassociation.json" } }, "required": [ @@ -23749,9 +23745,9 @@ ], "additionalProperties": false }, - "AWS_SSO_Instance": { + "AWS_AppSync_DataSource": { "type": "object", - "markdownDescription": "Resource Type definition for Identity Center (SSO) Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instance.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html)", "allOf": [ { "type": "object", @@ -23759,18 +23755,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SSO::Instance" + "AWS::AppSync::DataSource" ], "markdownEnumDescriptions": [ - "Resource Type definition for Identity Center (SSO) Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instance.html)" + "Resource Type definition for AWS::AppSync::DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html)" ] }, "Properties": { - "$ref": "resources/aws-sso-instance.json" + "$ref": "resources/aws-appsync-datasource.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -23779,9 +23776,9 @@ ], "additionalProperties": false }, - "AWS_IAM_ManagedPolicy": { + "AWS_Route53RecoveryReadiness_ReadinessCheck": { "type": "object", - "markdownDescription": "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html)", + "markdownDescription": "Aws Route53 Recovery Readiness Check Schema and API specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-readinesscheck.html)", "allOf": [ { "type": "object", @@ -23789,19 +23786,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::ManagedPolicy" + "AWS::Route53RecoveryReadiness::ReadinessCheck" ], "markdownEnumDescriptions": [ - "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html)" + "Aws Route53 Recovery Readiness Check Schema and API specification. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-readinesscheck.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-managedpolicy.json" + "$ref": "resources/aws-route53recoveryreadiness-readinesscheck.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23810,9 +23806,9 @@ ], "additionalProperties": false }, - "AWS_SSM_Document": { + "AWS_MSK_BatchScramSecret": { "type": "object", - "markdownDescription": "The AWS::SSM::Document resource is an SSM document in AWS Systems Manager that defines the actions that Systems Manager performs, which can be used to set up and run commands on your instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::BatchScramSecret \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html)", "allOf": [ { "type": "object", @@ -23820,14 +23816,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::Document" + "AWS::MSK::BatchScramSecret" ], "markdownEnumDescriptions": [ - "The AWS::SSM::Document resource is an SSM document in AWS Systems Manager that defines the actions that Systems Manager performs, which can be used to set up and run commands on your instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html)" + "Resource Type definition for AWS::MSK::BatchScramSecret \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-document.json" + "$ref": "resources/aws-msk-batchscramsecret.json" } }, "required": [ @@ -23841,9 +23837,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_TargetGroup": { + "AWS_Batch_JobDefinition": { "type": "object", - "markdownDescription": "A target group is a collection of targets, or compute resources, that run your application or service. A target group can only be used by a single service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-targetgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Batch::JobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html)", "allOf": [ { "type": "object", @@ -23851,14 +23847,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::TargetGroup" + "AWS::Batch::JobDefinition" ], "markdownEnumDescriptions": [ - "A target group is a collection of targets, or compute resources, that run your application or service. A target group can only be used by a single service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-targetgroup.html)" + "Resource Type definition for AWS::Batch::JobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-targetgroup.json" + "$ref": "resources/aws-batch-jobdefinition.json" } }, "required": [ @@ -23872,9 +23868,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_LogDeliveryConfiguration": { + "AWS_B2BI_Profile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::LogDeliveryConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-logdeliveryconfiguration.html)", + "markdownDescription": "Definition of AWS::B2BI::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-profile.html)", "allOf": [ { "type": "object", @@ -23882,14 +23878,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::LogDeliveryConfiguration" + "AWS::B2BI::Profile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::LogDeliveryConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-logdeliveryconfiguration.html)" + "Definition of AWS::B2BI::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-profile.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-logdeliveryconfiguration.json" + "$ref": "resources/aws-b2bi-profile.json" } }, "required": [ @@ -23903,9 +23899,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_ImageRecipe": { + "AWS_SSMContacts_ContactChannel": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::ImageRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html)", + "markdownDescription": "Resource Type definition for AWS::SSMContacts::ContactChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contactchannel.html)", "allOf": [ { "type": "object", @@ -23913,19 +23909,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::ImageRecipe" + "AWS::SSMContacts::ContactChannel" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::ImageRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html)" + "Resource Type definition for AWS::SSMContacts::ContactChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contactchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-imagerecipe.json" + "$ref": "resources/aws-ssmcontacts-contactchannel.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -23934,9 +23929,9 @@ ], "additionalProperties": false }, - "AWS_IoT_JobTemplate": { + "AWS_EC2_NetworkPerformanceMetricSubscription": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::JobTemplate. Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::NetworkPerformanceMetricSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkperformancemetricsubscription.html)", "allOf": [ { "type": "object", @@ -23944,14 +23939,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::JobTemplate" + "AWS::EC2::NetworkPerformanceMetricSubscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::JobTemplate. Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html)" + "Resource Type definition for AWS::EC2::NetworkPerformanceMetricSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkperformancemetricsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-jobtemplate.json" + "$ref": "resources/aws-ec2-networkperformancemetricsubscription.json" } }, "required": [ @@ -23965,9 +23960,9 @@ ], "additionalProperties": false }, - "AWS_KafkaConnect_Connector": { + "AWS_EKS_Nodegroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KafkaConnect::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html)", + "markdownDescription": "Resource schema for AWS::EKS::Nodegroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html)", "allOf": [ { "type": "object", @@ -23975,14 +23970,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KafkaConnect::Connector" + "AWS::EKS::Nodegroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KafkaConnect::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html)" + "Resource schema for AWS::EKS::Nodegroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-kafkaconnect-connector.json" + "$ref": "resources/aws-eks-nodegroup.json" } }, "required": [ @@ -23996,9 +23991,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_ResourcePolicy": { + "AWS_KinesisVideo_Stream": { "type": "object", - "markdownDescription": "Retrieves information about the resource policy. The resource policy is an IAM policy created by AWS RAM on behalf of the resource owner when they share a resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcepolicy.html)", + "markdownDescription": "Resource Type Definition for AWS::KinesisVideo::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-stream.html)", "allOf": [ { "type": "object", @@ -24006,19 +24001,18 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::ResourcePolicy" + "AWS::KinesisVideo::Stream" ], "markdownEnumDescriptions": [ - "Retrieves information about the resource policy. The resource policy is an IAM policy created by AWS RAM on behalf of the resource owner when they share a resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcepolicy.html)" + "Resource Type Definition for AWS::KinesisVideo::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-stream.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-resourcepolicy.json" + "$ref": "resources/aws-kinesisvideo-stream.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -24027,9 +24021,9 @@ ], "additionalProperties": false }, - "AWS_CertificateManager_Account": { + "AWS_CloudFormation_ResourceVersion": { "type": "object", - "markdownDescription": "Resource schema for AWS::CertificateManager::Account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-account.html)", + "markdownDescription": "A resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html)", "allOf": [ { "type": "object", @@ -24037,14 +24031,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CertificateManager::Account" + "AWS::CloudFormation::ResourceVersion" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::CertificateManager::Account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-account.html)" + "A resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html)" ] }, "Properties": { - "$ref": "resources/aws-certificatemanager-account.json" + "$ref": "resources/aws-cloudformation-resourceversion.json" } }, "required": [ @@ -24058,9 +24052,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerRelay": { + "AWS_NeptuneGraph_Graph": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerRelay Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerrelay.html)", + "markdownDescription": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html)", "allOf": [ { "type": "object", @@ -24068,14 +24062,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerRelay" + "AWS::NeptuneGraph::Graph" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerRelay Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerrelay.html)" + "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanagerrelay.json" + "$ref": "resources/aws-neptunegraph-graph.json" } }, "required": [ @@ -24089,9 +24083,9 @@ ], "additionalProperties": false }, - "AWS_GreengrassV2_ComponentVersion": { + "AWS_Chatbot_MicrosoftTeamsChannelConfiguration": { "type": "object", - "markdownDescription": "Resource for Greengrass component version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html)", + "markdownDescription": "Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html)", "allOf": [ { "type": "object", @@ -24099,18 +24093,19 @@ "Type": { "type": "string", "enum": [ - "AWS::GreengrassV2::ComponentVersion" + "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" ], "markdownEnumDescriptions": [ - "Resource for Greengrass component version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html)" + "Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrassv2-componentversion.json" + "$ref": "resources/aws-chatbot-microsoftteamschannelconfiguration.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24119,9 +24114,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_Connection": { + "AWS_WorkSpacesWeb_IdentityProvider": { "type": "object", - "markdownDescription": "Connections enables users to connect their DataZone resources (domains, projects, and environments) to external resources/services (data, compute, etc) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-connection.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::IdentityProvider Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-identityprovider.html)", "allOf": [ { "type": "object", @@ -24129,14 +24124,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::Connection" + "AWS::WorkSpacesWeb::IdentityProvider" ], "markdownEnumDescriptions": [ - "Connections enables users to connect their DataZone resources (domains, projects, and environments) to external resources/services (data, compute, etc) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-connection.html)" + "Definition of AWS::WorkSpacesWeb::IdentityProvider Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-identityprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-connection.json" + "$ref": "resources/aws-workspacesweb-identityprovider.json" } }, "required": [ @@ -24150,9 +24145,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_VirtualService": { + "AWS_CertificateManager_Certificate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html)", + "markdownDescription": "Resource Type definition for AWS::CertificateManager::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html)", "allOf": [ { "type": "object", @@ -24160,14 +24155,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::VirtualService" + "AWS::CertificateManager::Certificate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::VirtualService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html)" + "Resource Type definition for AWS::CertificateManager::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-virtualservice.json" + "$ref": "resources/aws-certificatemanager-certificate.json" } }, "required": [ @@ -24181,9 +24176,9 @@ ], "additionalProperties": false }, - "AWS_Elasticsearch_Domain": { + "AWS_NovaAct_WorkflowDefinition": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Elasticsearch::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html)", + "markdownDescription": "Definition of AWS::NovaAct::WorkflowDefinition Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-novaact-workflowdefinition.html)", "allOf": [ { "type": "object", @@ -24191,18 +24186,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Elasticsearch::Domain" + "AWS::NovaAct::WorkflowDefinition" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Elasticsearch::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html)" + "Definition of AWS::NovaAct::WorkflowDefinition Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-novaact-workflowdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticsearch-domain.json" + "$ref": "resources/aws-novaact-workflowdefinition.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24211,9 +24207,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_FirewallDomainList": { + "AWS_ApiGateway_Model": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::FirewallDomainList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewalldomainlist.html)", + "markdownDescription": "The ``AWS::ApiGateway::Model`` resource defines the structure of a request or response payload for an API method. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html)", "allOf": [ { "type": "object", @@ -24221,18 +24217,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::FirewallDomainList" + "AWS::ApiGateway::Model" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::FirewallDomainList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewalldomainlist.html)" + "The ``AWS::ApiGateway::Model`` resource defines the structure of a request or response payload for an API method. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-firewalldomainlist.json" + "$ref": "resources/aws-apigateway-model.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24241,9 +24238,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_VoiceChannel": { + "AWS_Wisdom_KnowledgeBase": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::VoiceChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-voicechannel.html)", + "markdownDescription": "Definition of AWS::Wisdom::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html)", "allOf": [ { "type": "object", @@ -24251,14 +24248,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::VoiceChannel" + "AWS::Wisdom::KnowledgeBase" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::VoiceChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-voicechannel.html)" + "Definition of AWS::Wisdom::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-voicechannel.json" + "$ref": "resources/aws-wisdom-knowledgebase.json" } }, "required": [ @@ -24272,9 +24269,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_HubV2": { + "AWS_SageMaker_NotebookInstanceLifecycleConfig": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::HubV2 resource represents the implementation of the AWS Security Hub V2 service in your account. Only one hubv2 resource can created in each region in which you enable Security Hub V2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::NotebookInstanceLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstancelifecycleconfig.html)", "allOf": [ { "type": "object", @@ -24282,14 +24279,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::HubV2" + "AWS::SageMaker::NotebookInstanceLifecycleConfig" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::HubV2 resource represents the implementation of the AWS Security Hub V2 service in your account. Only one hubv2 resource can created in each region in which you enable Security Hub V2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html)" + "Resource Type definition for AWS::SageMaker::NotebookInstanceLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstancelifecycleconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-hubv2.json" + "$ref": "resources/aws-sagemaker-notebookinstancelifecycleconfig.json" } }, "required": [ @@ -24302,9 +24299,9 @@ ], "additionalProperties": false }, - "AWS_RefactorSpaces_Application": { + "AWS_LakeFormation_DataCellsFilter": { "type": "object", - "markdownDescription": "Definition of AWS::RefactorSpaces::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-application.html)", + "markdownDescription": "A resource schema representing a Lake Formation Data Cells Filter. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datacellsfilter.html)", "allOf": [ { "type": "object", @@ -24312,14 +24309,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RefactorSpaces::Application" + "AWS::LakeFormation::DataCellsFilter" ], "markdownEnumDescriptions": [ - "Definition of AWS::RefactorSpaces::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-application.html)" + "A resource schema representing a Lake Formation Data Cells Filter. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datacellsfilter.html)" ] }, "Properties": { - "$ref": "resources/aws-refactorspaces-application.json" + "$ref": "resources/aws-lakeformation-datacellsfilter.json" } }, "required": [ @@ -24333,9 +24330,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Pipeline": { + "AWS_CloudFront_OriginRequestPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html)", + "markdownDescription": "An origin request policy.\n When it's attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:\n + The request body and the URL path (without the domain name) from the viewer request.\n + The headers that CloudFront automatically includes in every origin request, including ``Host``, ``User-Agent``, and ``X-Amz-Cf-Id``.\n + All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.\n \n CloudFront sends a request when it can't find an object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use ``CachePolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html)", "allOf": [ { "type": "object", @@ -24343,14 +24340,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Pipeline" + "AWS::CloudFront::OriginRequestPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html)" + "An origin request policy.\n When it's attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:\n + The request body and the URL path (without the domain name) from the viewer request.\n + The headers that CloudFront automatically includes in every origin request, including ``Host``, ``User-Agent``, and ``X-Amz-Cf-Id``.\n + All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.\n \n CloudFront sends a request when it can't find an object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use ``CachePolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-pipeline.json" + "$ref": "resources/aws-cloudfront-originrequestpolicy.json" } }, "required": [ @@ -24364,9 +24361,9 @@ ], "additionalProperties": false }, - "AWS_Connect_InstanceStorageConfig": { + "AWS_SupportApp_SlackWorkspaceConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::InstanceStorageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instancestorageconfig.html)", + "markdownDescription": "An AWS Support App resource that creates, updates, lists, and deletes Slack workspace configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackworkspaceconfiguration.html)", "allOf": [ { "type": "object", @@ -24374,14 +24371,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::InstanceStorageConfig" + "AWS::SupportApp::SlackWorkspaceConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::InstanceStorageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instancestorageconfig.html)" + "An AWS Support App resource that creates, updates, lists, and deletes Slack workspace configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackworkspaceconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-instancestorageconfig.json" + "$ref": "resources/aws-supportapp-slackworkspaceconfiguration.json" } }, "required": [ @@ -24395,9 +24392,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_PrincipalPermissions": { + "AWS_Events_ApiDestination": { "type": "object", - "markdownDescription": "The ``AWS::LakeFormation::PrincipalPermissions`` resource represents the permissions that a principal has on a GLUDC resource (such as GLUlong databases or GLUlong tables). When you create a ``PrincipalPermissions`` resource, the permissions are granted via the LFlong``GrantPermissions`` API operation. When you delete a ``PrincipalPermissions`` resource, the permissions on principal-resource pair are revoked via the LFlong``RevokePermissions`` API operation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-principalpermissions.html)", + "markdownDescription": "Resource Type definition for AWS::Events::ApiDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html)", "allOf": [ { "type": "object", @@ -24405,14 +24402,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::PrincipalPermissions" + "AWS::Events::ApiDestination" ], "markdownEnumDescriptions": [ - "The ``AWS::LakeFormation::PrincipalPermissions`` resource represents the permissions that a principal has on a GLUDC resource (such as GLUlong databases or GLUlong tables). When you create a ``PrincipalPermissions`` resource, the permissions are granted via the LFlong``GrantPermissions`` API operation. When you delete a ``PrincipalPermissions`` resource, the permissions on principal-resource pair are revoked via the LFlong``RevokePermissions`` API operation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-principalpermissions.html)" + "Resource Type definition for AWS::Events::ApiDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-principalpermissions.json" + "$ref": "resources/aws-events-apidestination.json" } }, "required": [ @@ -24426,9 +24423,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_Function": { + "AWS_MemoryDB_User": { "type": "object", - "markdownDescription": "The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.\n You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)", + "markdownDescription": "Resource Type definition for AWS::MemoryDB::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html)", "allOf": [ { "type": "object", @@ -24436,14 +24433,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::Function" + "AWS::MemoryDB::User" ], "markdownEnumDescriptions": [ - "The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.\n You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)" + "Resource Type definition for AWS::MemoryDB::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-function.json" + "$ref": "resources/aws-memorydb-user.json" } }, "required": [ @@ -24457,9 +24454,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_OriginAccessControl": { + "AWS_SES_DedicatedIpPool": { "type": "object", - "markdownDescription": "Creates a new origin access control in CloudFront. After you create an origin access control, you can add it to an origin in a CloudFront distribution so that CloudFront sends authenticated (signed) requests to the origin.\n This makes it possible to block public access to the origin, allowing viewers (users) to access the origin's content only through CloudFront.\n For more information about using a CloudFront origin access control, see [Restricting access to an origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html)", + "markdownDescription": "Resource Type definition for AWS::SES::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-dedicatedippool.html)", "allOf": [ { "type": "object", @@ -24467,19 +24464,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::OriginAccessControl" + "AWS::SES::DedicatedIpPool" ], "markdownEnumDescriptions": [ - "Creates a new origin access control in CloudFront. After you create an origin access control, you can add it to an origin in a CloudFront distribution so that CloudFront sends authenticated (signed) requests to the origin.\n This makes it possible to block public access to the origin, allowing viewers (users) to access the origin's content only through CloudFront.\n For more information about using a CloudFront origin access control, see [Restricting access to an origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html)" + "Resource Type definition for AWS::SES::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-dedicatedippool.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-originaccesscontrol.json" + "$ref": "resources/aws-ses-dedicatedippool.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -24488,9 +24484,9 @@ ], "additionalProperties": false }, - "AWS_MPA_ApprovalTeam": { + "AWS_Location_TrackerConsumer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MPA::ApprovalTeam. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-approvalteam.html)", + "markdownDescription": "Definition of AWS::Location::TrackerConsumer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html)", "allOf": [ { "type": "object", @@ -24498,14 +24494,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MPA::ApprovalTeam" + "AWS::Location::TrackerConsumer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MPA::ApprovalTeam. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-approvalteam.html)" + "Definition of AWS::Location::TrackerConsumer Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html)" ] }, "Properties": { - "$ref": "resources/aws-mpa-approvalteam.json" + "$ref": "resources/aws-location-trackerconsumer.json" } }, "required": [ @@ -24519,9 +24515,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_Stack": { + "AWS_Bedrock_DataAutomationProject": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html)", + "markdownDescription": "Definition of AWS::Bedrock::DataAutomationProject Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-dataautomationproject.html)", "allOf": [ { "type": "object", @@ -24529,18 +24525,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::Stack" + "AWS::Bedrock::DataAutomationProject" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html)" + "Definition of AWS::Bedrock::DataAutomationProject Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-dataautomationproject.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-stack.json" + "$ref": "resources/aws-bedrock-dataautomationproject.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24549,9 +24546,9 @@ ], "additionalProperties": false }, - "AWS_BillingConductor_PricingRule": { + "AWS_EC2_TransitGatewayAttachment": { "type": "object", - "markdownDescription": "A markup/discount that is defined for a specific set of services that can later be associated with a pricing plan. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html)", "allOf": [ { "type": "object", @@ -24559,14 +24556,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BillingConductor::PricingRule" + "AWS::EC2::TransitGatewayAttachment" ], "markdownEnumDescriptions": [ - "A markup/discount that is defined for a specific set of services that can later be associated with a pricing plan. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html)" + "Resource Type definition for AWS::EC2::TransitGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-billingconductor-pricingrule.json" + "$ref": "resources/aws-ec2-transitgatewayattachment.json" } }, "required": [ @@ -24580,9 +24577,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_GatewayRoute": { + "AWS_SecurityHub_Standard": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::GatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html)", + "markdownDescription": "The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation.\n You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable.\n For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-standard.html)", "allOf": [ { "type": "object", @@ -24590,14 +24587,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::GatewayRoute" + "AWS::SecurityHub::Standard" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::GatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html)" + "The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation.\n You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable.\n For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-standard.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-gatewayroute.json" + "$ref": "resources/aws-securityhub-standard.json" } }, "required": [ @@ -24611,9 +24608,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_EnvironmentActions": { + "AWS_Transfer_Agreement": { "type": "object", - "markdownDescription": "Definition of AWS::DataZone::EnvironmentActions Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentactions.html)", + "markdownDescription": "Resource Type definition for AWS::Transfer::Agreement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html)", "allOf": [ { "type": "object", @@ -24621,14 +24618,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::EnvironmentActions" + "AWS::Transfer::Agreement" ], "markdownEnumDescriptions": [ - "Definition of AWS::DataZone::EnvironmentActions Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentactions.html)" + "Resource Type definition for AWS::Transfer::Agreement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-environmentactions.json" + "$ref": "resources/aws-transfer-agreement.json" } }, "required": [ @@ -24642,9 +24639,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_SdiSource": { + "AWS_ImageBuilder_Component": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::SdiSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-sdisource.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::Component \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html)", "allOf": [ { "type": "object", @@ -24652,14 +24649,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::SdiSource" + "AWS::ImageBuilder::Component" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::SdiSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-sdisource.html)" + "Resource schema for AWS::ImageBuilder::Component \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-sdisource.json" + "$ref": "resources/aws-imagebuilder-component.json" } }, "required": [ @@ -24673,9 +24670,9 @@ ], "additionalProperties": false }, - "AWS_CodeStarConnections_RepositoryLink": { + "AWS_SageMaker_Device": { "type": "object", - "markdownDescription": "Schema for AWS::CodeStarConnections::RepositoryLink resource which is used to aggregate repository metadata relevant to synchronizing source provider content to AWS Resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-repositorylink.html)", + "markdownDescription": "Resource schema for AWS::SageMaker::Device \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-device.html)", "allOf": [ { "type": "object", @@ -24683,14 +24680,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeStarConnections::RepositoryLink" + "AWS::SageMaker::Device" ], "markdownEnumDescriptions": [ - "Schema for AWS::CodeStarConnections::RepositoryLink resource which is used to aggregate repository metadata relevant to synchronizing source provider content to AWS Resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-repositorylink.html)" + "Resource schema for AWS::SageMaker::Device \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-device.html)" ] }, "Properties": { - "$ref": "resources/aws-codestarconnections-repositorylink.json" + "$ref": "resources/aws-sagemaker-device.json" } }, "required": [ @@ -24704,9 +24701,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_AnalysisTemplate": { + "AWS_Lambda_EventInvokeConfig": { "type": "object", - "markdownDescription": "Represents a stored analysis within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-analysistemplate.html)", + "markdownDescription": "The AWS::Lambda::EventInvokeConfig resource configures options for asynchronous invocation on a version or an alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html)", "allOf": [ { "type": "object", @@ -24714,14 +24711,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::AnalysisTemplate" + "AWS::Lambda::EventInvokeConfig" ], "markdownEnumDescriptions": [ - "Represents a stored analysis within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-analysistemplate.html)" + "The AWS::Lambda::EventInvokeConfig resource configures options for asynchronous invocation on a version or an alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-analysistemplate.json" + "$ref": "resources/aws-lambda-eventinvokeconfig.json" } }, "required": [ @@ -24735,9 +24732,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_ImagePipeline": { + "AWS_S3Express_BucketPolicy": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::ImagePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html)", + "markdownDescription": "Resource Type definition for AWS::S3Express::BucketPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-bucketpolicy.html)", "allOf": [ { "type": "object", @@ -24745,18 +24742,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::ImagePipeline" + "AWS::S3Express::BucketPolicy" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::ImagePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html)" + "Resource Type definition for AWS::S3Express::BucketPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-bucketpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-imagepipeline.json" + "$ref": "resources/aws-s3express-bucketpolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24765,9 +24763,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_StorageProfile": { + "AWS_Route53GlobalResolver_AccessToken": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::StorageProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::AccessToken \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-accesstoken.html)", "allOf": [ { "type": "object", @@ -24775,14 +24773,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::StorageProfile" + "AWS::Route53GlobalResolver::AccessToken" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::StorageProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html)" + "Resource schema for AWS::Route53GlobalResolver::AccessToken \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-accesstoken.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-storageprofile.json" + "$ref": "resources/aws-route53globalresolver-accesstoken.json" } }, "required": [ @@ -24796,9 +24794,9 @@ ], "additionalProperties": false }, - "AWS_StepFunctions_StateMachineAlias": { + "AWS_ManagedBlockchain_Node": { "type": "object", - "markdownDescription": "Resource schema for StateMachineAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html)", + "markdownDescription": "Resource Type definition for AWS::ManagedBlockchain::Node \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html)", "allOf": [ { "type": "object", @@ -24806,18 +24804,19 @@ "Type": { "type": "string", "enum": [ - "AWS::StepFunctions::StateMachineAlias" + "AWS::ManagedBlockchain::Node" ], "markdownEnumDescriptions": [ - "Resource schema for StateMachineAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html)" + "Resource Type definition for AWS::ManagedBlockchain::Node \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html)" ] }, "Properties": { - "$ref": "resources/aws-stepfunctions-statemachinealias.json" + "$ref": "resources/aws-managedblockchain-node.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24826,9 +24825,9 @@ ], "additionalProperties": false }, - "AWS_EC2_Instance": { + "AWS_CodeDeploy_DeploymentGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html)", + "markdownDescription": "Resource type definition for AWS::CodeDeploy::DeploymentGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)", "allOf": [ { "type": "object", @@ -24836,18 +24835,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::Instance" + "AWS::CodeDeploy::DeploymentGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html)" + "Resource type definition for AWS::CodeDeploy::DeploymentGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-instance.json" + "$ref": "resources/aws-codedeploy-deploymentgroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24856,9 +24856,9 @@ ], "additionalProperties": false }, - "AWS_DMS_ReplicationTask": { + "AWS_Pinpoint_Campaign": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DMS::ReplicationTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::Campaign \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html)", "allOf": [ { "type": "object", @@ -24866,14 +24866,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::ReplicationTask" + "AWS::Pinpoint::Campaign" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DMS::ReplicationTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html)" + "Resource Type definition for AWS::Pinpoint::Campaign \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-replicationtask.json" + "$ref": "resources/aws-pinpoint-campaign.json" } }, "required": [ @@ -24887,9 +24887,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_Mesh": { + "AWS_EC2_VPNConcentrator": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::Mesh \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html)", + "markdownDescription": "Describes a VPN concentrator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconcentrator.html)", "allOf": [ { "type": "object", @@ -24897,18 +24897,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::Mesh" + "AWS::EC2::VPNConcentrator" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::Mesh \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html)" + "Describes a VPN concentrator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconcentrator.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-mesh.json" + "$ref": "resources/aws-ec2-vpnconcentrator.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24917,9 +24918,9 @@ ], "additionalProperties": false }, - "AWS_EC2_RouteServerEndpoint": { + "AWS_Glue_DataQualityRuleset": { "type": "object", - "markdownDescription": "VPC Route Server Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::DataQualityRuleset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-dataqualityruleset.html)", "allOf": [ { "type": "object", @@ -24927,19 +24928,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::RouteServerEndpoint" + "AWS::Glue::DataQualityRuleset" ], "markdownEnumDescriptions": [ - "VPC Route Server Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html)" + "Resource Type definition for AWS::Glue::DataQualityRuleset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-dataqualityruleset.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-routeserverendpoint.json" + "$ref": "resources/aws-glue-dataqualityruleset.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -24948,9 +24948,9 @@ ], "additionalProperties": false }, - "AWS_EFS_FileSystem": { + "AWS_WorkSpacesWeb_NetworkSettings": { "type": "object", - "markdownDescription": "The ``AWS::EFS::FileSystem`` resource creates a new, empty file system in EFSlong (EFS). You must create a mount target ([AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)) to mount your EFS file system on an EC2 or other AWS cloud compute resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::NetworkSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-networksettings.html)", "allOf": [ { "type": "object", @@ -24958,18 +24958,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EFS::FileSystem" + "AWS::WorkSpacesWeb::NetworkSettings" ], "markdownEnumDescriptions": [ - "The ``AWS::EFS::FileSystem`` resource creates a new, empty file system in EFSlong (EFS). You must create a mount target ([AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)) to mount your EFS file system on an EC2 or other AWS cloud compute resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html)" + "Definition of AWS::WorkSpacesWeb::NetworkSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-networksettings.html)" ] }, "Properties": { - "$ref": "resources/aws-efs-filesystem.json" + "$ref": "resources/aws-workspacesweb-networksettings.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -24978,9 +24979,9 @@ ], "additionalProperties": false }, - "AWS_MemoryDB_User": { + "AWS_KinesisAnalyticsV2_ApplicationReferenceDataSource": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MemoryDB::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html)", "allOf": [ { "type": "object", @@ -24988,14 +24989,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MemoryDB::User" + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MemoryDB::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html)" + "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html)" ] }, "Properties": { - "$ref": "resources/aws-memorydb-user.json" + "$ref": "resources/aws-kinesisanalyticsv2-applicationreferencedatasource.json" } }, "required": [ @@ -25009,9 +25010,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TrafficMirrorFilterRule": { + "AWS_SQS_QueueInlinePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for for AWS::EC2::TrafficMirrorFilterRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html)", + "markdownDescription": "Schema for SQS QueueInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html)", "allOf": [ { "type": "object", @@ -25019,14 +25020,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TrafficMirrorFilterRule" + "AWS::SQS::QueueInlinePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for for AWS::EC2::TrafficMirrorFilterRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html)" + "Schema for SQS QueueInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-trafficmirrorfilterrule.json" + "$ref": "resources/aws-sqs-queueinlinepolicy.json" } }, "required": [ @@ -25040,9 +25041,9 @@ ], "additionalProperties": false }, - "AWS_IoT_SoftwarePackageVersion": { + "AWS_Deadline_Monitor": { "type": "object", - "markdownDescription": "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackageversion.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::Monitor \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-monitor.html)", "allOf": [ { "type": "object", @@ -25050,14 +25051,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::SoftwarePackageVersion" + "AWS::Deadline::Monitor" ], "markdownEnumDescriptions": [ - "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackageversion.html)" + "Resource Type definition for AWS::Deadline::Monitor \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-monitor.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-softwarepackageversion.json" + "$ref": "resources/aws-deadline-monitor.json" } }, "required": [ @@ -25071,9 +25072,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_StudioLifecycleConfig": { + "AWS_AppStream_DirectoryConfig": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::StudioLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-studiolifecycleconfig.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::DirectoryConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html)", "allOf": [ { "type": "object", @@ -25081,14 +25082,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::StudioLifecycleConfig" + "AWS::AppStream::DirectoryConfig" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::StudioLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-studiolifecycleconfig.html)" + "Resource Type definition for AWS::AppStream::DirectoryConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-studiolifecycleconfig.json" + "$ref": "resources/aws-appstream-directoryconfig.json" } }, "required": [ @@ -25102,9 +25103,9 @@ ], "additionalProperties": false }, - "AWS_ElasticBeanstalk_Environment": { + "AWS_CodeBuild_ReportGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticBeanstalk::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html)", + "markdownDescription": "Resource Type definition for AWS::CodeBuild::ReportGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html)", "allOf": [ { "type": "object", @@ -25112,14 +25113,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticBeanstalk::Environment" + "AWS::CodeBuild::ReportGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticBeanstalk::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html)" + "Resource Type definition for AWS::CodeBuild::ReportGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticbeanstalk-environment.json" + "$ref": "resources/aws-codebuild-reportgroup.json" } }, "required": [ @@ -25133,9 +25134,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_DeviceProfile": { + "AWS_Config_ConfigurationAggregator": { "type": "object", - "markdownDescription": "Device Profile's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html)", + "markdownDescription": "Resource Type definition for AWS::Config::ConfigurationAggregator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html)", "allOf": [ { "type": "object", @@ -25143,14 +25144,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::DeviceProfile" + "AWS::Config::ConfigurationAggregator" ], "markdownEnumDescriptions": [ - "Device Profile's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html)" + "Resource Type definition for AWS::Config::ConfigurationAggregator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-deviceprofile.json" + "$ref": "resources/aws-config-configurationaggregator.json" } }, "required": [ @@ -25163,9 +25164,9 @@ ], "additionalProperties": false }, - "AWS_Omics_WorkflowVersion": { + "AWS_Bedrock_AutomatedReasoningPolicyVersion": { "type": "object", - "markdownDescription": "Definition of AWS::Omics::WorkflowVersion Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflowversion.html)", + "markdownDescription": "Definition of AWS::Bedrock::AutomatedReasoningPolicyVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicyversion.html)", "allOf": [ { "type": "object", @@ -25173,14 +25174,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::WorkflowVersion" + "AWS::Bedrock::AutomatedReasoningPolicyVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::Omics::WorkflowVersion Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-workflowversion.html)" + "Definition of AWS::Bedrock::AutomatedReasoningPolicyVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicyversion.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-workflowversion.json" + "$ref": "resources/aws-bedrock-automatedreasoningpolicyversion.json" } }, "required": [ @@ -25194,9 +25195,9 @@ ], "additionalProperties": false }, - "AWS_CodeConnections_Connection": { + "AWS_IoTWireless_TaskDefinition": { "type": "object", - "markdownDescription": "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html)", + "markdownDescription": "Creates a gateway task definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html)", "allOf": [ { "type": "object", @@ -25204,14 +25205,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeConnections::Connection" + "AWS::IoTWireless::TaskDefinition" ], "markdownEnumDescriptions": [ - "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html)" + "Creates a gateway task definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-codeconnections-connection.json" + "$ref": "resources/aws-iotwireless-taskdefinition.json" } }, "required": [ @@ -25225,9 +25226,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_WebACLAssociation": { + "AWS_KinesisAnalytics_ApplicationOutput": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::WebACLAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisAnalytics::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html)", "allOf": [ { "type": "object", @@ -25235,14 +25236,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::WebACLAssociation" + "AWS::KinesisAnalytics::ApplicationOutput" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::WebACLAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html)" + "Resource Type definition for AWS::KinesisAnalytics::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-webaclassociation.json" + "$ref": "resources/aws-kinesisanalytics-applicationoutput.json" } }, "required": [ @@ -25256,9 +25257,9 @@ ], "additionalProperties": false }, - "AWS_KafkaConnect_CustomPlugin": { + "AWS_AppStream_ImageBuilder": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::ImageBuilder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html)", "allOf": [ { "type": "object", @@ -25266,14 +25267,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KafkaConnect::CustomPlugin" + "AWS::AppStream::ImageBuilder" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html)" + "Resource Type definition for AWS::AppStream::ImageBuilder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html)" ] }, "Properties": { - "$ref": "resources/aws-kafkaconnect-customplugin.json" + "$ref": "resources/aws-appstream-imagebuilder.json" } }, "required": [ @@ -25287,9 +25288,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancing_LoadBalancer": { + "AWS_DevOpsGuru_LogAnomalyDetectionIntegration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html)", + "markdownDescription": "This resource schema represents the LogAnomalyDetectionIntegration resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-loganomalydetectionintegration.html)", "allOf": [ { "type": "object", @@ -25297,19 +25298,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancing::LoadBalancer" + "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html)" + "This resource schema represents the LogAnomalyDetectionIntegration resource in the Amazon DevOps Guru. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-loganomalydetectionintegration.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancing-loadbalancer.json" + "$ref": "resources/aws-devopsguru-loganomalydetectionintegration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -25318,9 +25318,9 @@ ], "additionalProperties": false }, - "AWS_SecretsManager_RotationSchedule": { + "AWS_FinSpace_Environment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecretsManager::RotationSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html)", "allOf": [ { "type": "object", @@ -25328,14 +25328,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecretsManager::RotationSchedule" + "AWS::FinSpace::Environment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecretsManager::RotationSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-secretsmanager-rotationschedule.json" + "$ref": "resources/aws-finspace-environment.json" } }, "required": [ @@ -25349,9 +25349,9 @@ ], "additionalProperties": false }, - "AWS_RedshiftServerless_Workgroup": { + "AWS_RedshiftServerless_Namespace": { "type": "object", - "markdownDescription": "Definition of AWS::RedshiftServerless::Workgroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html)", + "markdownDescription": "Definition of AWS::RedshiftServerless::Namespace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html)", "allOf": [ { "type": "object", @@ -25359,14 +25359,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RedshiftServerless::Workgroup" + "AWS::RedshiftServerless::Namespace" ], "markdownEnumDescriptions": [ - "Definition of AWS::RedshiftServerless::Workgroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html)" + "Definition of AWS::RedshiftServerless::Namespace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html)" ] }, "Properties": { - "$ref": "resources/aws-redshiftserverless-workgroup.json" + "$ref": "resources/aws-redshiftserverless-namespace.json" } }, "required": [ @@ -25380,9 +25380,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_Function": { + "AWS_IoT_Policy": { "type": "object", - "markdownDescription": "Creates a CF function.\n To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function, and the function\u2019s stage.\n By default, when you create a function, it\u2019s in the ``DEVELOPMENT`` stage. In this stage, you can [test the function](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/test-function.html) in the CF console (or with ``TestFunction`` in the CF API).\n When you\u2019re ready to use your function with a CF distribution, publish the function to the ``LIVE`` stage. You can do this in the CF console, with ``PublishFunction`` in the CF API, or by updating the ``AWS::CloudFront::Function`` resource with the ``AutoPublish`` property set to ``true``. When the function is published to the ``LIVE`` stage, you can attach it to a distribution\u2019s cache behavior, using the function\u2019s ARN.\n To automatically publish the function to the ``LIVE`` stage when it\u2019s created, set the ``AutoPublish`` property to ``true``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::Policy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html)", "allOf": [ { "type": "object", @@ -25390,14 +25390,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::Function" + "AWS::IoT::Policy" ], "markdownEnumDescriptions": [ - "Creates a CF function.\n To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function, and the function\u2019s stage.\n By default, when you create a function, it\u2019s in the ``DEVELOPMENT`` stage. In this stage, you can [test the function](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/test-function.html) in the CF console (or with ``TestFunction`` in the CF API).\n When you\u2019re ready to use your function with a CF distribution, publish the function to the ``LIVE`` stage. You can do this in the CF console, with ``PublishFunction`` in the CF API, or by updating the ``AWS::CloudFront::Function`` resource with the ``AutoPublish`` property set to ``true``. When the function is published to the ``LIVE`` stage, you can attach it to a distribution\u2019s cache behavior, using the function\u2019s ARN.\n To automatically publish the function to the ``LIVE`` stage when it\u2019s created, set the ``AutoPublish`` property to ``true``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html)" + "Resource Type definition for AWS::IoT::Policy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-function.json" + "$ref": "resources/aws-iot-policy.json" } }, "required": [ @@ -25411,9 +25411,9 @@ ], "additionalProperties": false }, - "AWS_SecurityLake_SubscriberNotification": { + "AWS_WorkSpacesWeb_BrowserSettings": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecurityLake::SubscriberNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::BrowserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-browsersettings.html)", "allOf": [ { "type": "object", @@ -25421,19 +25421,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityLake::SubscriberNotification" + "AWS::WorkSpacesWeb::BrowserSettings" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecurityLake::SubscriberNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html)" + "Definition of AWS::WorkSpacesWeb::BrowserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-browsersettings.html)" ] }, "Properties": { - "$ref": "resources/aws-securitylake-subscribernotification.json" + "$ref": "resources/aws-workspacesweb-browsersettings.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -25442,9 +25441,9 @@ ], "additionalProperties": false }, - "AWS_IVS_RecordingConfiguration": { + "AWS_AppFlow_Flow": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::RecordingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html)", + "markdownDescription": "Resource schema for AWS::AppFlow::Flow. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html)", "allOf": [ { "type": "object", @@ -25452,14 +25451,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::RecordingConfiguration" + "AWS::AppFlow::Flow" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::RecordingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html)" + "Resource schema for AWS::AppFlow::Flow. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-recordingconfiguration.json" + "$ref": "resources/aws-appflow-flow.json" } }, "required": [ @@ -25473,9 +25472,9 @@ ], "additionalProperties": false }, - "AWS_ManagedBlockchain_Member": { + "AWS_Athena_PreparedStatement": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ManagedBlockchain::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html)", + "markdownDescription": "Resource schema for AWS::Athena::PreparedStatement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html)", "allOf": [ { "type": "object", @@ -25483,14 +25482,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ManagedBlockchain::Member" + "AWS::Athena::PreparedStatement" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ManagedBlockchain::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html)" + "Resource schema for AWS::Athena::PreparedStatement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html)" ] }, "Properties": { - "$ref": "resources/aws-managedblockchain-member.json" + "$ref": "resources/aws-athena-preparedstatement.json" } }, "required": [ @@ -25504,9 +25503,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_LicenseEndpoint": { + "AWS_Lightsail_Database": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::LicenseEndpoint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html)", "allOf": [ { "type": "object", @@ -25514,14 +25513,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::LicenseEndpoint" + "AWS::Lightsail::Database" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::LicenseEndpoint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html)" + "Resource Type definition for AWS::Lightsail::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-licenseendpoint.json" + "$ref": "resources/aws-lightsail-database.json" } }, "required": [ @@ -25535,9 +25534,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_ChannelPlacementGroup": { + "AWS_ServiceCatalog_ServiceAction": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::ChannelPlacementGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channelplacementgroup.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalog::ServiceAction \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceaction.html)", "allOf": [ { "type": "object", @@ -25545,18 +25544,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::ChannelPlacementGroup" + "AWS::ServiceCatalog::ServiceAction" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::ChannelPlacementGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channelplacementgroup.html)" + "Resource Schema for AWS::ServiceCatalog::ServiceAction \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceaction.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-channelplacementgroup.json" + "$ref": "resources/aws-servicecatalog-serviceaction.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -25565,9 +25565,9 @@ ], "additionalProperties": false }, - "AWS_Events_Archive": { + "AWS_AppMesh_VirtualGateway": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Events::Archive \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html)", "allOf": [ { "type": "object", @@ -25575,14 +25575,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::Archive" + "AWS::AppMesh::VirtualGateway" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Events::Archive \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html)" + "Resource Type definition for AWS::AppMesh::VirtualGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-events-archive.json" + "$ref": "resources/aws-appmesh-virtualgateway.json" } }, "required": [ @@ -25596,9 +25596,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_Fleet": { + "AWS_DirectConnect_DirectConnectGateway": { "type": "object", - "markdownDescription": "The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to host game servers. A fleet is a set of EC2 or Anywhere instances, each of which can host multiple game sessions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::DirectConnectGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-directconnectgateway.html)", "allOf": [ { "type": "object", @@ -25606,14 +25606,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::Fleet" + "AWS::DirectConnect::DirectConnectGateway" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to host game servers. A fleet is a set of EC2 or Anywhere instances, each of which can host multiple game sessions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html)" + "Resource Type definition for AWS::DirectConnect::DirectConnectGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-directconnectgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-fleet.json" + "$ref": "resources/aws-directconnect-directconnectgateway.json" } }, "required": [ @@ -25627,9 +25627,9 @@ ], "additionalProperties": false }, - "AWS_Route53_KeySigningKey": { + "AWS_S3Tables_TableBucketPolicy": { "type": "object", - "markdownDescription": "Represents a key signing key (KSK) associated with a hosted zone. You can only have two KSKs per hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html)", + "markdownDescription": "Applies an IAM resource policy to a table bucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucketpolicy.html)", "allOf": [ { "type": "object", @@ -25637,14 +25637,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::KeySigningKey" + "AWS::S3Tables::TableBucketPolicy" ], "markdownEnumDescriptions": [ - "Represents a key signing key (KSK) associated with a hosted zone. You can only have two KSKs per hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html)" + "Applies an IAM resource policy to a table bucket. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucketpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-keysigningkey.json" + "$ref": "resources/aws-s3tables-tablebucketpolicy.json" } }, "required": [ @@ -25658,9 +25658,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_GCMChannel": { + "AWS_AIOps_InvestigationGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::GCMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html)", + "markdownDescription": "Definition of AWS::AIOps::InvestigationGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html)", "allOf": [ { "type": "object", @@ -25668,14 +25668,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::GCMChannel" + "AWS::AIOps::InvestigationGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::GCMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html)" + "Definition of AWS::AIOps::InvestigationGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aiops-investigationgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-gcmchannel.json" + "$ref": "resources/aws-aiops-investigationgroup.json" } }, "required": [ @@ -25689,9 +25689,9 @@ ], "additionalProperties": false }, - "AWS_ControlTower_EnabledControl": { + "AWS_Chatbot_SlackChannelConfiguration": { "type": "object", - "markdownDescription": "Enables a control on a specified target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html)", + "markdownDescription": "Resource schema for AWS::Chatbot::SlackChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html)", "allOf": [ { "type": "object", @@ -25699,14 +25699,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ControlTower::EnabledControl" + "AWS::Chatbot::SlackChannelConfiguration" ], "markdownEnumDescriptions": [ - "Enables a control on a specified target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html)" + "Resource schema for AWS::Chatbot::SlackChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-controltower-enabledcontrol.json" + "$ref": "resources/aws-chatbot-slackchannelconfiguration.json" } }, "required": [ @@ -25720,9 +25720,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_IdMappingTable": { + "AWS_Detective_OrganizationAdmin": { "type": "object", - "markdownDescription": "Represents an association between an ID mapping workflow and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idmappingtable.html)", + "markdownDescription": "Resource schema for AWS::Detective::OrganizationAdmin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-organizationadmin.html)", "allOf": [ { "type": "object", @@ -25730,14 +25730,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::IdMappingTable" + "AWS::Detective::OrganizationAdmin" ], "markdownEnumDescriptions": [ - "Represents an association between an ID mapping workflow and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idmappingtable.html)" + "Resource schema for AWS::Detective::OrganizationAdmin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-organizationadmin.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-idmappingtable.json" + "$ref": "resources/aws-detective-organizationadmin.json" } }, "required": [ @@ -25751,9 +25751,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_InfrastructureConfiguration": { + "AWS_CE_AnomalySubscription": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::InfrastructureConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html)", + "markdownDescription": "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. Create subscription to be notified \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html)", "allOf": [ { "type": "object", @@ -25761,14 +25761,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::InfrastructureConfiguration" + "AWS::CE::AnomalySubscription" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::InfrastructureConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html)" + "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. Create subscription to be notified \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-infrastructureconfiguration.json" + "$ref": "resources/aws-ce-anomalysubscription.json" } }, "required": [ @@ -25782,9 +25782,9 @@ ], "additionalProperties": false }, - "AWS_DynamoDB_GlobalTable": { + "AWS_MPA_ApprovalTeam": { "type": "object", - "markdownDescription": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html)", + "markdownDescription": "Resource Type definition for AWS::MPA::ApprovalTeam. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-approvalteam.html)", "allOf": [ { "type": "object", @@ -25792,14 +25792,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DynamoDB::GlobalTable" + "AWS::MPA::ApprovalTeam" ], "markdownEnumDescriptions": [ - "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html)" + "Resource Type definition for AWS::MPA::ApprovalTeam. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-approvalteam.html)" ] }, "Properties": { - "$ref": "resources/aws-dynamodb-globaltable.json" + "$ref": "resources/aws-mpa-approvalteam.json" } }, "required": [ @@ -25813,9 +25813,9 @@ ], "additionalProperties": false }, - "AWS_EventSchemas_RegistryPolicy": { + "AWS_DMS_ReplicationSubnetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EventSchemas::RegistryPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html)", + "markdownDescription": "Resource Type definition for AWS::DMS::ReplicationSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html)", "allOf": [ { "type": "object", @@ -25823,14 +25823,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EventSchemas::RegistryPolicy" + "AWS::DMS::ReplicationSubnetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EventSchemas::RegistryPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html)" + "Resource Type definition for AWS::DMS::ReplicationSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-eventschemas-registrypolicy.json" + "$ref": "resources/aws-dms-replicationsubnetgroup.json" } }, "required": [ @@ -25844,9 +25844,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_StackSet": { + "AWS_SSO_ApplicationAssignment": { "type": "object", - "markdownDescription": "StackSet as a resource provides one-click experience for provisioning a StackSet and StackInstances \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html)", + "markdownDescription": "Resource Type definition for SSO application access grant to a user or group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-applicationassignment.html)", "allOf": [ { "type": "object", @@ -25854,14 +25854,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::StackSet" + "AWS::SSO::ApplicationAssignment" ], "markdownEnumDescriptions": [ - "StackSet as a resource provides one-click experience for provisioning a StackSet and StackInstances \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html)" + "Resource Type definition for SSO application access grant to a user or group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-applicationassignment.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-stackset.json" + "$ref": "resources/aws-sso-applicationassignment.json" } }, "required": [ @@ -25875,9 +25875,9 @@ ], "additionalProperties": false }, - "AWS_SSM_MaintenanceWindowTarget": { + "AWS_EC2_VPCGatewayAttachment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSM::MaintenanceWindowTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtarget.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcgatewayattachment.html)", "allOf": [ { "type": "object", @@ -25885,14 +25885,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::MaintenanceWindowTarget" + "AWS::EC2::VPCGatewayAttachment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSM::MaintenanceWindowTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtarget.html)" + "Resource Type definition for AWS::EC2::VPCGatewayAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcgatewayattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-maintenancewindowtarget.json" + "$ref": "resources/aws-ec2-vpcgatewayattachment.json" } }, "required": [ @@ -25906,9 +25906,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AIPrompt": { + "AWS_SMSVOICE_SenderId": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AIPrompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiprompt.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::SenderId \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html)", "allOf": [ { "type": "object", @@ -25916,14 +25916,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AIPrompt" + "AWS::SMSVOICE::SenderId" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AIPrompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiprompt.html)" + "Resource Type definition for AWS::SMSVOICE::SenderId \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-aiprompt.json" + "$ref": "resources/aws-smsvoice-senderid.json" } }, "required": [ @@ -25937,9 +25937,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_TrustedEntitySet": { + "AWS_S3_AccessGrantsLocation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::TrustedEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-trustedentityset.html)", + "markdownDescription": "The AWS::S3::AccessGrantsLocation resource is an Amazon S3 resource type hosted in an access grants instance which can be the target of S3 access grants. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantslocation.html)", "allOf": [ { "type": "object", @@ -25947,14 +25947,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::TrustedEntitySet" + "AWS::S3::AccessGrantsLocation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::TrustedEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-trustedentityset.html)" + "The AWS::S3::AccessGrantsLocation resource is an Amazon S3 resource type hosted in an access grants instance which can be the target of S3 access grants. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantslocation.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-trustedentityset.json" + "$ref": "resources/aws-s3-accessgrantslocation.json" } }, "required": [ @@ -25968,9 +25968,9 @@ ], "additionalProperties": false }, - "AWS_CodeArtifact_PackageGroup": { + "AWS_MediaPackageV2_OriginEndpoint": { "type": "object", - "markdownDescription": "The resource schema to create a CodeArtifact package group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html)", + "markdownDescription": "

Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpoint.html)", "allOf": [ { "type": "object", @@ -25978,14 +25978,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeArtifact::PackageGroup" + "AWS::MediaPackageV2::OriginEndpoint" ], "markdownEnumDescriptions": [ - "The resource schema to create a CodeArtifact package group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html)" + "

Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-codeartifact-packagegroup.json" + "$ref": "resources/aws-mediapackagev2-originendpoint.json" } }, "required": [ @@ -25999,9 +25999,9 @@ ], "additionalProperties": false }, - "AWS_FSx_Volume": { + "AWS_DataZone_GroupProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::FSx::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-volume.html)", + "markdownDescription": "Group profiles represent groups of Amazon DataZone users. Groups can be manually created, or mapped to Active Directory groups of enterprise customers. In Amazon DataZone, groups serve two purposes. First, a group can map to a team of users in the organizational chart, and thus reduce the administrative work of a Amazon DataZone project owner when there are new employees joining or leaving a team. Second, corporate administrators use Active Directory groups to manage and update user statuses and so Amazon DataZone domain administrators can use these group memberships to implement Amazon DataZone domain policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-groupprofile.html)", "allOf": [ { "type": "object", @@ -26009,14 +26009,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FSx::Volume" + "AWS::DataZone::GroupProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::FSx::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-volume.html)" + "Group profiles represent groups of Amazon DataZone users. Groups can be manually created, or mapped to Active Directory groups of enterprise customers. In Amazon DataZone, groups serve two purposes. First, a group can map to a team of users in the organizational chart, and thus reduce the administrative work of a Amazon DataZone project owner when there are new employees joining or leaving a team. Second, corporate administrators use Active Directory groups to manage and update user statuses and so Amazon DataZone domain administrators can use these group memberships to implement Amazon DataZone domain policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-groupprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-fsx-volume.json" + "$ref": "resources/aws-datazone-groupprofile.json" } }, "required": [ @@ -26030,9 +26030,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationEFS": { + "AWS_MediaLive_InputSecurityGroup": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationEFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html)", + "markdownDescription": "Resource Type definition for AWS::MediaLive::InputSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html)", "allOf": [ { "type": "object", @@ -26040,19 +26040,18 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationEFS" + "AWS::MediaLive::InputSecurityGroup" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationEFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html)" + "Resource Type definition for AWS::MediaLive::InputSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationefs.json" + "$ref": "resources/aws-medialive-inputsecuritygroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -26061,9 +26060,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_Member": { + "AWS_BedrockAgentCore_Gateway": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html)", + "markdownDescription": "Definition of AWS::BedrockAgentCore::Gateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gateway.html)", "allOf": [ { "type": "object", @@ -26071,14 +26070,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::Member" + "AWS::BedrockAgentCore::Gateway" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html)" + "Definition of AWS::BedrockAgentCore::Gateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gateway.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-member.json" + "$ref": "resources/aws-bedrockagentcore-gateway.json" } }, "required": [ @@ -26092,9 +26091,9 @@ ], "additionalProperties": false }, - "AWS_IoT_CACertificate": { + "AWS_RDS_DBSubnetGroup": { "type": "object", - "markdownDescription": "Registers a CA Certificate in IoT. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html)", + "markdownDescription": "The ``AWS::RDS::DBSubnetGroup`` resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. \n For more information, see [Working with DB subnet groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html)", "allOf": [ { "type": "object", @@ -26102,14 +26101,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::CACertificate" + "AWS::RDS::DBSubnetGroup" ], "markdownEnumDescriptions": [ - "Registers a CA Certificate in IoT. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html)" + "The ``AWS::RDS::DBSubnetGroup`` resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. \n For more information, see [Working with DB subnet groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-cacertificate.json" + "$ref": "resources/aws-rds-dbsubnetgroup.json" } }, "required": [ @@ -26123,9 +26122,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCDHCPOptionsAssociation": { + "AWS_DataSync_Agent": { "type": "object", - "markdownDescription": "Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html)", + "markdownDescription": "Resource schema for AWS::DataSync::Agent. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html)", "allOf": [ { "type": "object", @@ -26133,19 +26132,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::DataSync::Agent" ], "markdownEnumDescriptions": [ - "Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html)" + "Resource schema for AWS::DataSync::Agent. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcdhcpoptionsassociation.json" + "$ref": "resources/aws-datasync-agent.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -26154,9 +26152,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_ExtensionAssociation": { + "AWS_Deadline_Queue": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html)", "allOf": [ { "type": "object", @@ -26164,18 +26162,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::ExtensionAssociation" + "AWS::Deadline::Queue" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html)" + "Resource Type definition for AWS::Deadline::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-extensionassociation.json" + "$ref": "resources/aws-deadline-queue.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -26184,9 +26183,9 @@ ], "additionalProperties": false }, - "AWS_LicenseManager_License": { + "AWS_BedrockAgentCore_Memory": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::LicenseManager::License \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::Memory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-memory.html)", "allOf": [ { "type": "object", @@ -26194,14 +26193,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LicenseManager::License" + "AWS::BedrockAgentCore::Memory" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::LicenseManager::License \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html)" + "Resource Type definition for AWS::BedrockAgentCore::Memory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-memory.html)" ] }, "Properties": { - "$ref": "resources/aws-licensemanager-license.json" + "$ref": "resources/aws-bedrockagentcore-memory.json" } }, "required": [ @@ -26215,9 +26214,9 @@ ], "additionalProperties": false }, - "AWS_CodeGuruReviewer_RepositoryAssociation": { + "AWS_CustomerProfiles_EventTrigger": { "type": "object", - "markdownDescription": "This resource schema represents the RepositoryAssociation resource in the Amazon CodeGuru Reviewer service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html)", + "markdownDescription": "An event trigger resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventtrigger.html)", "allOf": [ { "type": "object", @@ -26225,14 +26224,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeGuruReviewer::RepositoryAssociation" + "AWS::CustomerProfiles::EventTrigger" ], "markdownEnumDescriptions": [ - "This resource schema represents the RepositoryAssociation resource in the Amazon CodeGuru Reviewer service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html)" + "An event trigger resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventtrigger.html)" ] }, "Properties": { - "$ref": "resources/aws-codegurureviewer-repositoryassociation.json" + "$ref": "resources/aws-customerprofiles-eventtrigger.json" } }, "required": [ @@ -26246,9 +26245,9 @@ ], "additionalProperties": false }, - "AWS_IVS_StorageConfiguration": { + "AWS_EC2_TrafficMirrorSession": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::StorageConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html)", + "markdownDescription": "Resource schema for AWS::EC2::TrafficMirrorSession \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html)", "allOf": [ { "type": "object", @@ -26256,14 +26255,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::StorageConfiguration" + "AWS::EC2::TrafficMirrorSession" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::StorageConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html)" + "Resource schema for AWS::EC2::TrafficMirrorSession \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-storageconfiguration.json" + "$ref": "resources/aws-ec2-trafficmirrorsession.json" } }, "required": [ @@ -26277,9 +26276,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_Template": { + "AWS_IoTFleetWise_DecoderManifest": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::Template Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-template.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::DecoderManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-decodermanifest.html)", "allOf": [ { "type": "object", @@ -26287,14 +26286,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::Template" + "AWS::IoTFleetWise::DecoderManifest" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::Template Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-template.html)" + "Definition of AWS::IoTFleetWise::DecoderManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-decodermanifest.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-template.json" + "$ref": "resources/aws-iotfleetwise-decodermanifest.json" } }, "required": [ @@ -26308,9 +26307,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_DataCellsFilter": { + "AWS_ServiceCatalogAppRegistry_AttributeGroup": { "type": "object", - "markdownDescription": "A resource schema representing a Lake Formation Data Cells Filter. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datacellsfilter.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroup.html)", "allOf": [ { "type": "object", @@ -26318,14 +26317,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::DataCellsFilter" + "AWS::ServiceCatalogAppRegistry::AttributeGroup" ], "markdownEnumDescriptions": [ - "A resource schema representing a Lake Formation Data Cells Filter. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datacellsfilter.html)" + "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-datacellsfilter.json" + "$ref": "resources/aws-servicecatalogappregistry-attributegroup.json" } }, "required": [ @@ -26339,9 +26338,9 @@ ], "additionalProperties": false }, - "AWS_SES_ConfigurationSetEventDestination": { + "AWS_GameLift_ContainerFleet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html)", + "markdownDescription": "The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html)", "allOf": [ { "type": "object", @@ -26349,14 +26348,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::ConfigurationSetEventDestination" + "AWS::GameLift::ContainerFleet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html)" + "The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-configurationseteventdestination.json" + "$ref": "resources/aws-gamelift-containerfleet.json" } }, "required": [ @@ -26370,9 +26369,9 @@ ], "additionalProperties": false }, - "AWS_Signer_ProfilePermission": { + "AWS_Logs_Delivery": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html)", + "markdownDescription": "This structure contains information about one delivery in your account.\n\nA delivery is a connection between a logical delivery source and a logical delivery destination.\n\nFor more information, see [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)", "allOf": [ { "type": "object", @@ -26380,14 +26379,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Signer::ProfilePermission" + "AWS::Logs::Delivery" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html)" + "This structure contains information about one delivery in your account.\n\nA delivery is a connection between a logical delivery source and a logical delivery destination.\n\nFor more information, see [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)" ] }, "Properties": { - "$ref": "resources/aws-signer-profilepermission.json" + "$ref": "resources/aws-logs-delivery.json" } }, "required": [ @@ -26401,9 +26400,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_PolicyAssociation": { + "AWS_Pinpoint_APNSSandboxChannel": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::PolicyAssociation resource represents the AWS Security Hub Central Configuration Policy associations in your Target. Only the AWS Security Hub delegated administrator can create the resouce from the home region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-policyassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnssandboxchannel.html)", "allOf": [ { "type": "object", @@ -26411,14 +26410,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::PolicyAssociation" + "AWS::Pinpoint::APNSSandboxChannel" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::PolicyAssociation resource represents the AWS Security Hub Central Configuration Policy associations in your Target. Only the AWS Security Hub delegated administrator can create the resouce from the home region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-policyassociation.html)" + "Resource Type definition for AWS::Pinpoint::APNSSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnssandboxchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-policyassociation.json" + "$ref": "resources/aws-pinpoint-apnssandboxchannel.json" } }, "required": [ @@ -26432,9 +26431,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_DataSource": { + "AWS_AppStream_User": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html)", "allOf": [ { "type": "object", @@ -26442,14 +26441,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::DataSource" + "AWS::AppStream::User" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::DataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html)" + "Resource Type definition for AWS::AppStream::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-datasource.json" + "$ref": "resources/aws-appstream-user.json" } }, "required": [ @@ -26463,9 +26462,9 @@ ], "additionalProperties": false }, - "AWS_EMR_InstanceFleetConfig": { + "AWS_Redshift_EventSubscription": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EMR::InstanceFleetConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancefleetconfig.html)", + "markdownDescription": "The `AWS::Redshift::EventSubscription` resource creates an Amazon Redshift Event Subscription. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html)", "allOf": [ { "type": "object", @@ -26473,14 +26472,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::InstanceFleetConfig" + "AWS::Redshift::EventSubscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EMR::InstanceFleetConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancefleetconfig.html)" + "The `AWS::Redshift::EventSubscription` resource creates an Amazon Redshift Event Subscription. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-instancefleetconfig.json" + "$ref": "resources/aws-redshift-eventsubscription.json" } }, "required": [ @@ -26494,9 +26493,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryReadiness_Cell": { + "AWS_GuardDuty_Detector": { "type": "object", - "markdownDescription": "The API Schema for AWS Route53 Recovery Readiness Cells. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-cell.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::Detector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html)", "allOf": [ { "type": "object", @@ -26504,18 +26503,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryReadiness::Cell" + "AWS::GuardDuty::Detector" ], "markdownEnumDescriptions": [ - "The API Schema for AWS Route53 Recovery Readiness Cells. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoveryreadiness-cell.html)" + "Resource Type definition for AWS::GuardDuty::Detector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoveryreadiness-cell.json" + "$ref": "resources/aws-guardduty-detector.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -26524,9 +26524,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_OriginRequestPolicy": { + "AWS_SecurityAgent_AgentSpace": { "type": "object", - "markdownDescription": "An origin request policy.\n When it's attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:\n + The request body and the URL path (without the domain name) from the viewer request.\n + The headers that CloudFront automatically includes in every origin request, including ``Host``, ``User-Agent``, and ``X-Amz-Cf-Id``.\n + All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.\n \n CloudFront sends a request when it can't find an object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use ``CachePolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html)", + "markdownDescription": "Resource Type definition for AWS::SecurityAgent::AgentSpace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-agentspace.html)", "allOf": [ { "type": "object", @@ -26534,14 +26534,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::OriginRequestPolicy" + "AWS::SecurityAgent::AgentSpace" ], "markdownEnumDescriptions": [ - "An origin request policy.\n When it's attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:\n + The request body and the URL path (without the domain name) from the viewer request.\n + The headers that CloudFront automatically includes in every origin request, including ``Host``, ``User-Agent``, and ``X-Amz-Cf-Id``.\n + All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.\n \n CloudFront sends a request when it can't find an object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use ``CachePolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html)" + "Resource Type definition for AWS::SecurityAgent::AgentSpace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-agentspace.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-originrequestpolicy.json" + "$ref": "resources/aws-securityagent-agentspace.json" } }, "required": [ @@ -26555,9 +26555,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Resource": { + "AWS_SageMaker_ImageVersion": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Resource`` resource creates a resource in an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ImageVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html)", "allOf": [ { "type": "object", @@ -26565,14 +26565,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Resource" + "AWS::SageMaker::ImageVersion" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Resource`` resource creates a resource in an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)" + "Resource Type definition for AWS::SageMaker::ImageVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-resource.json" + "$ref": "resources/aws-sagemaker-imageversion.json" } }, "required": [ @@ -26586,9 +26586,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Instance": { + "AWS_Cognito_Terms": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::Terms \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-terms.html)", "allOf": [ { "type": "object", @@ -26596,14 +26596,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Instance" + "AWS::Cognito::Terms" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html)" + "Resource Type definition for AWS::Cognito::Terms \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-terms.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-instance.json" + "$ref": "resources/aws-cognito-terms.json" } }, "required": [ @@ -26617,9 +26617,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_DecoderManifest": { + "AWS_Config_OrganizationConfigRule": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::DecoderManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-decodermanifest.html)", + "markdownDescription": "Resource Type definition for AWS::Config::OrganizationConfigRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html)", "allOf": [ { "type": "object", @@ -26627,14 +26627,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::DecoderManifest" + "AWS::Config::OrganizationConfigRule" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::DecoderManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-decodermanifest.html)" + "Resource Type definition for AWS::Config::OrganizationConfigRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-decodermanifest.json" + "$ref": "resources/aws-config-organizationconfigrule.json" } }, "required": [ @@ -26648,9 +26648,9 @@ ], "additionalProperties": false }, - "AWS_Connect_ContactFlowVersion": { + "AWS_EC2_SubnetCidrBlock": { "type": "object", - "markdownDescription": "Resource Type Definition for ContactFlowVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowversion.html)", + "markdownDescription": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html)", "allOf": [ { "type": "object", @@ -26658,14 +26658,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::ContactFlowVersion" + "AWS::EC2::SubnetCidrBlock" ], "markdownEnumDescriptions": [ - "Resource Type Definition for ContactFlowVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowversion.html)" + "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-contactflowversion.json" + "$ref": "resources/aws-ec2-subnetcidrblock.json" } }, "required": [ @@ -26679,9 +26679,9 @@ ], "additionalProperties": false }, - "AWS_Connect_ViewVersion": { + "AWS_FraudDetector_EventType": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::ViewVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-viewversion.html)", + "markdownDescription": "A resource schema for an EventType in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html)", "allOf": [ { "type": "object", @@ -26689,14 +26689,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::ViewVersion" + "AWS::FraudDetector::EventType" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::ViewVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-viewversion.html)" + "A resource schema for an EventType in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-viewversion.json" + "$ref": "resources/aws-frauddetector-eventtype.json" } }, "required": [ @@ -26710,9 +26710,9 @@ ], "additionalProperties": false }, - "AWS_IVS_PublicKey": { + "AWS_SSM_Document": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::PublicKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-publickey.html)", + "markdownDescription": "The AWS::SSM::Document resource is an SSM document in AWS Systems Manager that defines the actions that Systems Manager performs, which can be used to set up and run commands on your instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html)", "allOf": [ { "type": "object", @@ -26720,18 +26720,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::PublicKey" + "AWS::SSM::Document" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::PublicKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-publickey.html)" + "The AWS::SSM::Document resource is an SSM document in AWS Systems Manager that defines the actions that Systems Manager performs, which can be used to set up and run commands on your instances. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-publickey.json" + "$ref": "resources/aws-ssm-document.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -26740,9 +26741,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_AccessPolicy": { + "AWS_BedrockMantle_Project": { "type": "object", - "markdownDescription": "Amazon OpenSearchServerless access policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-accesspolicy.html)", + "markdownDescription": "Resource type definition for AWS::BedrockMantle::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockmantle-project.html)", "allOf": [ { "type": "object", @@ -26750,14 +26751,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::AccessPolicy" + "AWS::BedrockMantle::Project" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchServerless access policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-accesspolicy.html)" + "Resource type definition for AWS::BedrockMantle::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockmantle-project.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-accesspolicy.json" + "$ref": "resources/aws-bedrockmantle-project.json" } }, "required": [ @@ -26771,9 +26772,9 @@ ], "additionalProperties": false }, - "AWS_DataPipeline_Pipeline": { + "AWS_Bedrock_EnforcedGuardrailConfiguration": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html)", + "markdownDescription": "Definition of AWS::Bedrock::EnforcedGuardrailConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-enforcedguardrailconfiguration.html)", "allOf": [ { "type": "object", @@ -26781,14 +26782,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::Bedrock::EnforcedGuardrailConfiguration" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html)" + "Definition of AWS::Bedrock::EnforcedGuardrailConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-enforcedguardrailconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-datapipeline-pipeline.json" + "$ref": "resources/aws-bedrock-enforcedguardrailconfiguration.json" } }, "required": [ @@ -26802,9 +26803,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackage_Asset": { + "AWS_ElasticBeanstalk_Application": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaPackage::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html)", + "markdownDescription": "The AWS::ElasticBeanstalk::Application resource specifies an Elastic Beanstalk application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html)", "allOf": [ { "type": "object", @@ -26812,19 +26813,18 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackage::Asset" + "AWS::ElasticBeanstalk::Application" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaPackage::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html)" + "The AWS::ElasticBeanstalk::Application resource specifies an Elastic Beanstalk application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackage-asset.json" + "$ref": "resources/aws-elasticbeanstalk-application.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -26833,9 +26833,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_ResourceGateway": { + "AWS_CustomerProfiles_Domain": { "type": "object", - "markdownDescription": "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)", + "markdownDescription": "A domain defined for 3rd party data source in Profile Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html)", "allOf": [ { "type": "object", @@ -26843,14 +26843,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::ResourceGateway" + "AWS::CustomerProfiles::Domain" ], "markdownEnumDescriptions": [ - "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)" + "A domain defined for 3rd party data source in Profile Service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-resourcegateway.json" + "$ref": "resources/aws-customerprofiles-domain.json" } }, "required": [ @@ -26864,9 +26864,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverQueryLoggingConfig": { + "AWS_Amplify_Branch": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfig.html)", + "markdownDescription": "The AWS::Amplify::Branch resource creates a new branch within an app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html)", "allOf": [ { "type": "object", @@ -26874,18 +26874,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverQueryLoggingConfig" + "AWS::Amplify::Branch" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::ResolverQueryLoggingConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfig.html)" + "The AWS::Amplify::Branch resource creates a new branch within an app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverqueryloggingconfig.json" + "$ref": "resources/aws-amplify-branch.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -26894,9 +26895,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_Application": { + "AWS_ODB_OdbNetwork": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html)", + "markdownDescription": "The AWS::ODB::OdbNetwork resource creates an ODB Network \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbnetwork.html)", "allOf": [ { "type": "object", @@ -26904,19 +26905,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::Application" + "AWS::ODB::OdbNetwork" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html)" + "The AWS::ODB::OdbNetwork resource creates an ODB Network \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbnetwork.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-application.json" + "$ref": "resources/aws-odb-odbnetwork.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -26925,9 +26925,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_Component": { + "AWS_Cognito_UserPoolUserToGroupAttachment": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::Component \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html)", "allOf": [ { "type": "object", @@ -26935,14 +26935,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::Component" + "AWS::Cognito::UserPoolUserToGroupAttachment" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::Component \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html)" + "Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-component.json" + "$ref": "resources/aws-cognito-userpoolusertogroupattachment.json" } }, "required": [ @@ -26956,9 +26956,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Partition": { + "AWS_Connect_PredefinedAttribute": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Partition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::PredefinedAttribute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-predefinedattribute.html)", "allOf": [ { "type": "object", @@ -26966,14 +26966,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Partition" + "AWS::Connect::PredefinedAttribute" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Partition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html)" + "Resource Type definition for AWS::Connect::PredefinedAttribute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-predefinedattribute.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-partition.json" + "$ref": "resources/aws-connect-predefinedattribute.json" } }, "required": [ @@ -26987,9 +26987,9 @@ ], "additionalProperties": false }, - "AWS_Neptune_DBParameterGroup": { + "AWS_MSK_ServerlessCluster": { "type": "object", - "markdownDescription": "AWS::Neptune::DBParameterGroup creates a new DB parameter group. This type can be declared in a template and referenced in the DBParameterGroupName parameter of AWS::Neptune::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::ServerlessCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html)", "allOf": [ { "type": "object", @@ -26997,14 +26997,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Neptune::DBParameterGroup" + "AWS::MSK::ServerlessCluster" ], "markdownEnumDescriptions": [ - "AWS::Neptune::DBParameterGroup creates a new DB parameter group. This type can be declared in a template and referenced in the DBParameterGroupName parameter of AWS::Neptune::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html)" + "Resource Type definition for AWS::MSK::ServerlessCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html)" ] }, "Properties": { - "$ref": "resources/aws-neptune-dbparametergroup.json" + "$ref": "resources/aws-msk-serverlesscluster.json" } }, "required": [ @@ -27018,9 +27018,9 @@ ], "additionalProperties": false }, - "AWS_Pipes_Pipe": { + "AWS_OpenSearchServerless_Collection": { "type": "object", - "markdownDescription": "Definition of AWS::Pipes::Pipe Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html)", + "markdownDescription": "Amazon OpenSearchServerless collection resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-collection.html)", "allOf": [ { "type": "object", @@ -27028,14 +27028,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pipes::Pipe" + "AWS::OpenSearchServerless::Collection" ], "markdownEnumDescriptions": [ - "Definition of AWS::Pipes::Pipe Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html)" + "Amazon OpenSearchServerless collection resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-collection.html)" ] }, "Properties": { - "$ref": "resources/aws-pipes-pipe.json" + "$ref": "resources/aws-opensearchserverless-collection.json" } }, "required": [ @@ -27049,9 +27049,9 @@ ], "additionalProperties": false }, - "AWS_EC2_CustomerGateway": { + "AWS_AppMesh_VirtualRouter": { "type": "object", - "markdownDescription": "Specifies a customer gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualRouter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html)", "allOf": [ { "type": "object", @@ -27059,14 +27059,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::CustomerGateway" + "AWS::AppMesh::VirtualRouter" ], "markdownEnumDescriptions": [ - "Specifies a customer gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html)" + "Resource Type definition for AWS::AppMesh::VirtualRouter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-customergateway.json" + "$ref": "resources/aws-appmesh-virtualrouter.json" } }, "required": [ @@ -27080,9 +27080,9 @@ ], "additionalProperties": false }, - "AWS_RUM_AppMonitor": { + "AWS_GuardDuty_Master": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::RUM::AppMonitor \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rum-appmonitor.html)", + "markdownDescription": "GuardDuty Master resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html)", "allOf": [ { "type": "object", @@ -27090,14 +27090,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RUM::AppMonitor" + "AWS::GuardDuty::Master" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::RUM::AppMonitor \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rum-appmonitor.html)" + "GuardDuty Master resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html)" ] }, "Properties": { - "$ref": "resources/aws-rum-appmonitor.json" + "$ref": "resources/aws-guardduty-master.json" } }, "required": [ @@ -27111,9 +27111,9 @@ ], "additionalProperties": false }, - "AWS_IoT_AccountAuditConfiguration": { + "AWS_SSO_InstanceAccessControlAttributeConfiguration": { "type": "object", - "markdownDescription": "Configures the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html)", + "markdownDescription": "Resource Type definition for SSO InstanceAccessControlAttributeConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html)", "allOf": [ { "type": "object", @@ -27121,14 +27121,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::AccountAuditConfiguration" + "AWS::SSO::InstanceAccessControlAttributeConfiguration" ], "markdownEnumDescriptions": [ - "Configures the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html)" + "Resource Type definition for SSO InstanceAccessControlAttributeConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-accountauditconfiguration.json" + "$ref": "resources/aws-sso-instanceaccesscontrolattributeconfiguration.json" } }, "required": [ @@ -27142,9 +27142,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpaces_WorkspacesPool": { + "AWS_MediaPackageV2_OriginEndpointPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WorkSpaces::WorkspacesPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html)", + "markdownDescription": "

Represents a resource policy that allows or denies access to an origin endpoint.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpointpolicy.html)", "allOf": [ { "type": "object", @@ -27152,14 +27152,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpaces::WorkspacesPool" + "AWS::MediaPackageV2::OriginEndpointPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WorkSpaces::WorkspacesPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspacespool.html)" + "

Represents a resource policy that allows or denies access to an origin endpoint.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpointpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-workspaces-workspacespool.json" + "$ref": "resources/aws-mediapackagev2-originendpointpolicy.json" } }, "required": [ @@ -27173,9 +27173,9 @@ ], "additionalProperties": false }, - "AWS_XRay_ResourcePolicy": { + "AWS_ACMPCA_CertificateAuthorityActivation": { "type": "object", - "markdownDescription": "This schema provides construct and validation rules for AWS-XRay Resource Policy resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-resourcepolicy.html)", + "markdownDescription": "Used to install the certificate authority certificate and update the certificate authority status. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html)", "allOf": [ { "type": "object", @@ -27183,14 +27183,14 @@ "Type": { "type": "string", "enum": [ - "AWS::XRay::ResourcePolicy" + "AWS::ACMPCA::CertificateAuthorityActivation" ], "markdownEnumDescriptions": [ - "This schema provides construct and validation rules for AWS-XRay Resource Policy resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-resourcepolicy.html)" + "Used to install the certificate authority certificate and update the certificate authority status. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html)" ] }, "Properties": { - "$ref": "resources/aws-xray-resourcepolicy.json" + "$ref": "resources/aws-acmpca-certificateauthorityactivation.json" } }, "required": [ @@ -27204,9 +27204,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_VirtualGateway": { + "AWS_WAFv2_WebACL": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html)", + "markdownDescription": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html)", "allOf": [ { "type": "object", @@ -27214,14 +27214,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::VirtualGateway" + "AWS::WAFv2::WebACL" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::VirtualGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html)" + "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-virtualgateway.json" + "$ref": "resources/aws-wafv2-webacl.json" } }, "required": [ @@ -27235,9 +27235,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_Stack": { + "AWS_NetworkManager_Site": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html)", + "markdownDescription": "The AWS::NetworkManager::Site type describes a site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html)", "allOf": [ { "type": "object", @@ -27245,14 +27245,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::Stack" + "AWS::NetworkManager::Site" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::Stack \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html)" + "The AWS::NetworkManager::Site type describes a site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-stack.json" + "$ref": "resources/aws-networkmanager-site.json" } }, "required": [ @@ -27266,9 +27266,9 @@ ], "additionalProperties": false }, - "AWS_XRay_TransactionSearchConfig": { + "AWS_PCAConnectorAD_DirectoryRegistration": { "type": "object", - "markdownDescription": "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-transactionsearchconfig.html)", + "markdownDescription": "Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-directoryregistration.html)", "allOf": [ { "type": "object", @@ -27276,18 +27276,19 @@ "Type": { "type": "string", "enum": [ - "AWS::XRay::TransactionSearchConfig" + "AWS::PCAConnectorAD::DirectoryRegistration" ], "markdownEnumDescriptions": [ - "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-transactionsearchconfig.html)" + "Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-directoryregistration.html)" ] }, "Properties": { - "$ref": "resources/aws-xray-transactionsearchconfig.json" + "$ref": "resources/aws-pcaconnectorad-directoryregistration.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -27296,9 +27297,9 @@ ], "additionalProperties": false }, - "AWS_Backup_RestoreTestingSelection": { + "AWS_Kinesis_ResourcePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Backup::RestoreTestingSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html)", + "markdownDescription": "Resource Type definition for AWS::Kinesis::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -27306,14 +27307,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::RestoreTestingSelection" + "AWS::Kinesis::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Backup::RestoreTestingSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html)" + "Resource Type definition for AWS::Kinesis::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-restoretestingselection.json" + "$ref": "resources/aws-kinesis-resourcepolicy.json" } }, "required": [ @@ -27327,9 +27328,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Command": { + "AWS_Panorama_ApplicationInstance": { "type": "object", - "markdownDescription": "Represents the resource definition of AWS IoT Command. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-command.html)", + "markdownDescription": "Creates an application instance and deploys it to a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html)", "allOf": [ { "type": "object", @@ -27337,14 +27338,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Command" + "AWS::Panorama::ApplicationInstance" ], "markdownEnumDescriptions": [ - "Represents the resource definition of AWS IoT Command. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-command.html)" + "Creates an application instance and deploys it to a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-command.json" + "$ref": "resources/aws-panorama-applicationinstance.json" } }, "required": [ @@ -27358,9 +27359,9 @@ ], "additionalProperties": false }, - "AWS_IAM_AccessKey": { + "AWS_Athena_CapacityReservation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::AccessKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html)", + "markdownDescription": "Resource schema for AWS::Athena::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-capacityreservation.html)", "allOf": [ { "type": "object", @@ -27368,14 +27369,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::AccessKey" + "AWS::Athena::CapacityReservation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::AccessKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html)" + "Resource schema for AWS::Athena::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-capacityreservation.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-accesskey.json" + "$ref": "resources/aws-athena-capacityreservation.json" } }, "required": [ @@ -27389,9 +27390,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_ChannelNamespace": { + "AWS_VerifiedPermissions_Policy": { "type": "object", - "markdownDescription": "Resource schema for AppSync ChannelNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html)", + "markdownDescription": "Definition of AWS::VerifiedPermissions::Policy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policy.html)", "allOf": [ { "type": "object", @@ -27399,14 +27400,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::ChannelNamespace" + "AWS::VerifiedPermissions::Policy" ], "markdownEnumDescriptions": [ - "Resource schema for AppSync ChannelNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html)" + "Definition of AWS::VerifiedPermissions::Policy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policy.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-channelnamespace.json" + "$ref": "resources/aws-verifiedpermissions-policy.json" } }, "required": [ @@ -27420,9 +27421,9 @@ ], "additionalProperties": false }, - "AWS_Amplify_Domain": { + "AWS_GameLift_MatchmakingConfiguration": { "type": "object", - "markdownDescription": "The AWS::Amplify::Domain resource allows you to connect a custom domain to your app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html)", + "markdownDescription": "The AWS::GameLift::MatchmakingConfiguration resource creates an Amazon GameLift (GameLift) matchmaking configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html)", "allOf": [ { "type": "object", @@ -27430,14 +27431,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Amplify::Domain" + "AWS::GameLift::MatchmakingConfiguration" ], "markdownEnumDescriptions": [ - "The AWS::Amplify::Domain resource allows you to connect a custom domain to your app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html)" + "The AWS::GameLift::MatchmakingConfiguration resource creates an Amazon GameLift (GameLift) matchmaking configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-amplify-domain.json" + "$ref": "resources/aws-gamelift-matchmakingconfiguration.json" } }, "required": [ @@ -27451,9 +27452,9 @@ ], "additionalProperties": false }, - "AWS_IVS_PlaybackRestrictionPolicy": { + "AWS_RoboMaker_RobotApplicationVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html)", + "markdownDescription": "AWS::RoboMaker::RobotApplicationVersion resource creates an AWS RoboMaker RobotApplicationVersion. This helps you control which code your robot uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html)", "allOf": [ { "type": "object", @@ -27461,18 +27462,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::PlaybackRestrictionPolicy" + "AWS::RoboMaker::RobotApplicationVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html)" + "AWS::RoboMaker::RobotApplicationVersion resource creates an AWS RoboMaker RobotApplicationVersion. This helps you control which code your robot uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-playbackrestrictionpolicy.json" + "$ref": "resources/aws-robomaker-robotapplicationversion.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -27481,9 +27483,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_PublicTypeVersion": { + "AWS_SSO_PermissionSet": { "type": "object", - "markdownDescription": "Test and Publish a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html)", + "markdownDescription": "Resource Type definition for SSO PermissionSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-permissionset.html)", "allOf": [ { "type": "object", @@ -27491,18 +27493,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::PublicTypeVersion" + "AWS::SSO::PermissionSet" ], "markdownEnumDescriptions": [ - "Test and Publish a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html)" + "Resource Type definition for SSO PermissionSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-permissionset.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-publictypeversion.json" + "$ref": "resources/aws-sso-permissionset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -27511,9 +27514,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_AppImageConfig": { + "AWS_Omics_VariantStore": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::AppImageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html)", + "markdownDescription": "Definition of AWS::Omics::VariantStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-variantstore.html)", "allOf": [ { "type": "object", @@ -27521,14 +27524,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::AppImageConfig" + "AWS::Omics::VariantStore" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::AppImageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html)" + "Definition of AWS::Omics::VariantStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-variantstore.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-appimageconfig.json" + "$ref": "resources/aws-omics-variantstore.json" } }, "required": [ @@ -27542,9 +27545,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_VpcOrigin": { + "AWS_AutoScaling_ScheduledAction": { "type": "object", - "markdownDescription": "An Amazon CloudFront VPC origin. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html)", + "markdownDescription": "The AWS::AutoScaling::ScheduledAction resource specifies an Amazon EC2 Auto Scaling scheduled action so that the Auto Scaling group can change the number of instances available for your application in response to predictable load changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scheduledaction.html)", "allOf": [ { "type": "object", @@ -27552,14 +27555,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::VpcOrigin" + "AWS::AutoScaling::ScheduledAction" ], "markdownEnumDescriptions": [ - "An Amazon CloudFront VPC origin. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html)" + "The AWS::AutoScaling::ScheduledAction resource specifies an Amazon EC2 Auto Scaling scheduled action so that the Auto Scaling group can change the number of instances available for your application in response to predictable load changes. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-scheduledaction.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-vpcorigin.json" + "$ref": "resources/aws-autoscaling-scheduledaction.json" } }, "required": [ @@ -27573,9 +27576,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_RegexPatternSet": { + "AWS_RDS_Integration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::RegexPatternSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html)", + "markdownDescription": "A zero-ETL integration with Amazon Redshift. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html)", "allOf": [ { "type": "object", @@ -27583,14 +27586,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::RegexPatternSet" + "AWS::RDS::Integration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::RegexPatternSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html)" + "A zero-ETL integration with Amazon Redshift. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-regexpatternset.json" + "$ref": "resources/aws-rds-integration.json" } }, "required": [ @@ -27604,9 +27607,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_FuotaTask": { + "AWS_Redshift_ClusterSecurityGroup": { "type": "object", - "markdownDescription": "Create and manage FUOTA tasks. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html)", + "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html)", "allOf": [ { "type": "object", @@ -27614,14 +27617,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::FuotaTask" + "AWS::Redshift::ClusterSecurityGroup" ], "markdownEnumDescriptions": [ - "Create and manage FUOTA tasks. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html)" + "Resource Type definition for AWS::Redshift::ClusterSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-fuotatask.json" + "$ref": "resources/aws-redshift-clustersecuritygroup.json" } }, "required": [ @@ -27635,9 +27638,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_ServiceNetworkVpcAssociation": { + "AWS_AppSync_DomainNameApiAssociation": { "type": "object", - "markdownDescription": "Associates a VPC with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkvpcassociation.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::DomainNameApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)", "allOf": [ { "type": "object", @@ -27645,18 +27648,19 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::ServiceNetworkVpcAssociation" + "AWS::AppSync::DomainNameApiAssociation" ], "markdownEnumDescriptions": [ - "Associates a VPC with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkvpcassociation.html)" + "Resource Type definition for AWS::AppSync::DomainNameApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-servicenetworkvpcassociation.json" + "$ref": "resources/aws-appsync-domainnameapiassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -27665,9 +27669,9 @@ ], "additionalProperties": false }, - "AWS_Cloud9_EnvironmentEC2": { + "AWS_EntityResolution_IdMappingWorkflow": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cloud9::EnvironmentEC2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html)", + "markdownDescription": "IdMappingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idmappingworkflow.html)", "allOf": [ { "type": "object", @@ -27675,14 +27679,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cloud9::EnvironmentEC2" + "AWS::EntityResolution::IdMappingWorkflow" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cloud9::EnvironmentEC2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html)" + "IdMappingWorkflow defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idmappingworkflow.html)" ] }, "Properties": { - "$ref": "resources/aws-cloud9-environmentec2.json" + "$ref": "resources/aws-entityresolution-idmappingworkflow.json" } }, "required": [ @@ -27696,9 +27700,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_Link": { + "AWS_SageMaker_ModelPackageGroup": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::Link type describes a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelPackageGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackagegroup.html)", "allOf": [ { "type": "object", @@ -27706,14 +27710,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::Link" + "AWS::SageMaker::ModelPackageGroup" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::Link type describes a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html)" + "Resource Type definition for AWS::SageMaker::ModelPackageGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackagegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-link.json" + "$ref": "resources/aws-sagemaker-modelpackagegroup.json" } }, "required": [ @@ -27727,9 +27731,9 @@ ], "additionalProperties": false }, - "AWS_Connect_QuickConnect": { + "AWS_QuickSight_Dashboard": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::QuickConnect \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html)", + "markdownDescription": "Definition of the AWS::QuickSight::Dashboard Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html)", "allOf": [ { "type": "object", @@ -27737,14 +27741,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::QuickConnect" + "AWS::QuickSight::Dashboard" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::QuickConnect \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html)" + "Definition of the AWS::QuickSight::Dashboard Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-quickconnect.json" + "$ref": "resources/aws-quicksight-dashboard.json" } }, "required": [ @@ -27758,9 +27762,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_SubscriptionTarget": { + "AWS_Notifications_ManagedNotificationAdditionalChannelAssociation": { "type": "object", - "markdownDescription": "Subscription targets enables one to access the data to which you have subscribed in your projects. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html)", + "markdownDescription": "Resource Type definition for AWS::Notifications::ManagedNotificationAdditionalChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationadditionalchannelassociation.html)", "allOf": [ { "type": "object", @@ -27768,14 +27772,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::SubscriptionTarget" + "AWS::Notifications::ManagedNotificationAdditionalChannelAssociation" ], "markdownEnumDescriptions": [ - "Subscription targets enables one to access the data to which you have subscribed in your projects. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html)" + "Resource Type definition for AWS::Notifications::ManagedNotificationAdditionalChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationadditionalchannelassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-subscriptiontarget.json" + "$ref": "resources/aws-notifications-managednotificationadditionalchannelassociation.json" } }, "required": [ @@ -27789,9 +27793,9 @@ ], "additionalProperties": false }, - "AWS_S3Express_BucketPolicy": { + "AWS_CleanRoomsML_ConfiguredModelAlgorithmAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::S3Express::BucketPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-bucketpolicy.html)", + "markdownDescription": "Definition of AWS::CleanRoomsML::ConfiguredModelAlgorithmAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-configuredmodelalgorithmassociation.html)", "allOf": [ { "type": "object", @@ -27799,14 +27803,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Express::BucketPolicy" + "AWS::CleanRoomsML::ConfiguredModelAlgorithmAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::S3Express::BucketPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-bucketpolicy.html)" + "Definition of AWS::CleanRoomsML::ConfiguredModelAlgorithmAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-configuredmodelalgorithmassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-s3express-bucketpolicy.json" + "$ref": "resources/aws-cleanroomsml-configuredmodelalgorithmassociation.json" } }, "required": [ @@ -27820,9 +27824,9 @@ ], "additionalProperties": false }, - "AWS_RolesAnywhere_Profile": { + "AWS_Glue_Catalog": { "type": "object", - "markdownDescription": "Definition of AWS::RolesAnywhere::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html)", + "markdownDescription": "Creates a catalog in the Glue Data Catalog. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-catalog.html)", "allOf": [ { "type": "object", @@ -27830,14 +27834,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RolesAnywhere::Profile" + "AWS::Glue::Catalog" ], "markdownEnumDescriptions": [ - "Definition of AWS::RolesAnywhere::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html)" + "Creates a catalog in the Glue Data Catalog. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-catalog.html)" ] }, "Properties": { - "$ref": "resources/aws-rolesanywhere-profile.json" + "$ref": "resources/aws-glue-catalog.json" } }, "required": [ @@ -27851,9 +27855,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_Variable": { + "AWS_CloudFront_Distribution": { "type": "object", - "markdownDescription": "A resource schema for a Variable in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html)", + "markdownDescription": "A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)", "allOf": [ { "type": "object", @@ -27861,14 +27865,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::Variable" + "AWS::CloudFront::Distribution" ], "markdownEnumDescriptions": [ - "A resource schema for a Variable in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html)" + "A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-variable.json" + "$ref": "resources/aws-cloudfront-distribution.json" } }, "required": [ @@ -27882,9 +27886,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_EventStream": { + "AWS_ARCZonalShift_ZonalAutoshiftConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::EventStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html)", + "markdownDescription": "Definition of AWS::ARCZonalShift::ZonalAutoshiftConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-zonalautoshiftconfiguration.html)", "allOf": [ { "type": "object", @@ -27892,19 +27896,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::EventStream" + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::EventStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html)" + "Definition of AWS::ARCZonalShift::ZonalAutoshiftConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-arczonalshift-zonalautoshiftconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-eventstream.json" + "$ref": "resources/aws-arczonalshift-zonalautoshiftconfiguration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -27913,9 +27916,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_Site": { + "AWS_EC2_Subnet": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::Site type describes a site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html)", + "markdownDescription": "Specifies a subnet for the specified VPC.\n For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.\n For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)", "allOf": [ { "type": "object", @@ -27923,14 +27926,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::Site" + "AWS::EC2::Subnet" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::Site type describes a site. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html)" + "Specifies a subnet for the specified VPC.\n For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.\n For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-site.json" + "$ref": "resources/aws-ec2-subnet.json" } }, "required": [ @@ -27944,9 +27947,9 @@ ], "additionalProperties": false }, - "AWS_RolesAnywhere_CRL": { + "AWS_IoT_ThingType": { "type": "object", - "markdownDescription": "Definition of AWS::RolesAnywhere::CRL Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-crl.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::ThingType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html)", "allOf": [ { "type": "object", @@ -27954,19 +27957,18 @@ "Type": { "type": "string", "enum": [ - "AWS::RolesAnywhere::CRL" + "AWS::IoT::ThingType" ], "markdownEnumDescriptions": [ - "Definition of AWS::RolesAnywhere::CRL Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-crl.html)" + "Resource Type definition for AWS::IoT::ThingType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html)" ] }, "Properties": { - "$ref": "resources/aws-rolesanywhere-crl.json" + "$ref": "resources/aws-iot-thingtype.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -27975,9 +27977,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_MonitoringSchedule": { + "AWS_ImageBuilder_DistributionConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::MonitoringSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::DistributionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html)", "allOf": [ { "type": "object", @@ -27985,14 +27987,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::MonitoringSchedule" + "AWS::ImageBuilder::DistributionConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::MonitoringSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html)" + "Resource schema for AWS::ImageBuilder::DistributionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-monitoringschedule.json" + "$ref": "resources/aws-imagebuilder-distributionconfiguration.json" } }, "required": [ @@ -28006,9 +28008,9 @@ ], "additionalProperties": false }, - "AWS_Evidently_Project": { + "AWS_SimSpaceWeaver_Simulation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Evidently::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html)", + "markdownDescription": "AWS::SimSpaceWeaver::Simulation resource creates an AWS Simulation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html)", "allOf": [ { "type": "object", @@ -28016,14 +28018,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Evidently::Project" + "AWS::SimSpaceWeaver::Simulation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Evidently::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html)" + "AWS::SimSpaceWeaver::Simulation resource creates an AWS Simulation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html)" ] }, "Properties": { - "$ref": "resources/aws-evidently-project.json" + "$ref": "resources/aws-simspaceweaver-simulation.json" } }, "required": [ @@ -28037,9 +28039,9 @@ ], "additionalProperties": false }, - "AWS_Evidently_Segment": { + "AWS_BedrockAgentCore_RuntimeEndpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Evidently::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-segment.html)", + "markdownDescription": "Resource definition for AWS::BedrockAgentCore::RuntimeEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtimeendpoint.html)", "allOf": [ { "type": "object", @@ -28047,14 +28049,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Evidently::Segment" + "AWS::BedrockAgentCore::RuntimeEndpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Evidently::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-segment.html)" + "Resource definition for AWS::BedrockAgentCore::RuntimeEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtimeendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-evidently-segment.json" + "$ref": "resources/aws-bedrockagentcore-runtimeendpoint.json" } }, "required": [ @@ -28068,9 +28070,9 @@ ], "additionalProperties": false }, - "AWS_SNS_Subscription": { + "AWS_Wisdom_AIAgent": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SNS::Subscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html)", + "markdownDescription": "Definition of AWS::Wisdom::AIAgent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html)", "allOf": [ { "type": "object", @@ -28078,14 +28080,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SNS::Subscription" + "AWS::Wisdom::AIAgent" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SNS::Subscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html)" + "Definition of AWS::Wisdom::AIAgent Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html)" ] }, "Properties": { - "$ref": "resources/aws-sns-subscription.json" + "$ref": "resources/aws-wisdom-aiagent.json" } }, "required": [ @@ -28099,9 +28101,9 @@ ], "additionalProperties": false }, - "AWS_Glue_CustomEntityType": { + "AWS_ResourceExplorer2_Index": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::CustomEntityType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html)", + "markdownDescription": "Definition of AWS::ResourceExplorer2::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-index.html)", "allOf": [ { "type": "object", @@ -28109,18 +28111,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::CustomEntityType" + "AWS::ResourceExplorer2::Index" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::CustomEntityType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html)" + "Definition of AWS::ResourceExplorer2::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-index.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-customentitytype.json" + "$ref": "resources/aws-resourceexplorer2-index.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -28129,9 +28132,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_AcceptedPortfolioShare": { + "AWS_Route53GlobalResolver_HostedZoneAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::HostedZoneAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-hostedzoneassociation.html)", "allOf": [ { "type": "object", @@ -28139,14 +28142,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::AcceptedPortfolioShare" + "AWS::Route53GlobalResolver::HostedZoneAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html)" + "Resource schema for AWS::Route53GlobalResolver::HostedZoneAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-hostedzoneassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-acceptedportfolioshare.json" + "$ref": "resources/aws-route53globalresolver-hostedzoneassociation.json" } }, "required": [ @@ -28160,9 +28163,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_App": { + "AWS_DataSync_LocationNFS": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html)", + "markdownDescription": "Resource schema for AWS::DataSync::LocationNFS \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html)", "allOf": [ { "type": "object", @@ -28170,14 +28173,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::App" + "AWS::DataSync::LocationNFS" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html)" + "Resource schema for AWS::DataSync::LocationNFS \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-app.json" + "$ref": "resources/aws-datasync-locationnfs.json" } }, "required": [ @@ -28191,9 +28194,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_Alias": { + "AWS_IoTAnalytics_Pipeline": { "type": "object", - "markdownDescription": "The AWS::GameLift::Alias resource creates an alias for an Amazon GameLift (GameLift) fleet destination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html)", + "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html)", "allOf": [ { "type": "object", @@ -28201,14 +28204,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::Alias" + "AWS::IoTAnalytics::Pipeline" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::Alias resource creates an alias for an Amazon GameLift (GameLift) fleet destination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html)" + "Resource Type definition for AWS::IoTAnalytics::Pipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-alias.json" + "$ref": "resources/aws-iotanalytics-pipeline.json" } }, "required": [ @@ -28222,9 +28225,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_ContainerFleet": { + "AWS_ServiceCatalog_CloudFormationProduct": { "type": "object", - "markdownDescription": "The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::CloudFormationProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html)", "allOf": [ { "type": "object", @@ -28232,14 +28235,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::ContainerFleet" + "AWS::ServiceCatalog::CloudFormationProduct" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html)" + "Resource Type definition for AWS::ServiceCatalog::CloudFormationProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-containerfleet.json" + "$ref": "resources/aws-servicecatalog-cloudformationproduct.json" } }, "required": [ @@ -28253,9 +28256,9 @@ ], "additionalProperties": false }, - "AWS_RDS_OptionGroup": { + "AWS_CloudFront_CachePolicy": { "type": "object", - "markdownDescription": "The ``AWS::RDS::OptionGroup`` resource creates or updates an option group, to enable and configure features that are specific to a particular DB engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html)", + "markdownDescription": "A cache policy.\n When it's attached to a cache behavior, the cache policy determines the following:\n + The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.\n + The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.\n \n The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but *not* include them in the cache key, use ``OriginRequestPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html)", "allOf": [ { "type": "object", @@ -28263,14 +28266,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::OptionGroup" + "AWS::CloudFront::CachePolicy" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::OptionGroup`` resource creates or updates an option group, to enable and configure features that are specific to a particular DB engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html)" + "A cache policy.\n When it's attached to a cache behavior, the cache policy determines the following:\n + The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.\n + The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.\n \n The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but *not* include them in the cache key, use ``OriginRequestPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-optiongroup.json" + "$ref": "resources/aws-cloudfront-cachepolicy.json" } }, "required": [ @@ -28284,9 +28287,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalyticsV2_Application": { + "AWS_CloudFormation_ModuleDefaultVersion": { "type": "object", - "markdownDescription": "Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see [Creating an Application](https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html)", + "markdownDescription": "A module that has been registered in the CloudFormation registry as the default version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html)", "allOf": [ { "type": "object", @@ -28294,19 +28297,18 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalyticsV2::Application" + "AWS::CloudFormation::ModuleDefaultVersion" ], "markdownEnumDescriptions": [ - "Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see [Creating an Application](https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html)" + "A module that has been registered in the CloudFormation registry as the default version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalyticsv2-application.json" + "$ref": "resources/aws-cloudformation-moduledefaultversion.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -28315,9 +28317,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAMResourceDiscoveryAssociation": { + "AWS_AppFlow_ConnectorProfile": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAMResourceDiscoveryAssociation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscoveryassociation.html)", + "markdownDescription": "Resource Type definition for AWS::AppFlow::ConnectorProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html)", "allOf": [ { "type": "object", @@ -28325,14 +28327,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAMResourceDiscoveryAssociation" + "AWS::AppFlow::ConnectorProfile" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAMResourceDiscoveryAssociation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscoveryassociation.html)" + "Resource Type definition for AWS::AppFlow::ConnectorProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipamresourcediscoveryassociation.json" + "$ref": "resources/aws-appflow-connectorprofile.json" } }, "required": [ @@ -28346,9 +28348,9 @@ ], "additionalProperties": false }, - "AWS_ElasticBeanstalk_ConfigurationTemplate": { + "AWS_NetworkFirewall_Firewall": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html)", + "markdownDescription": "Resource type definition for AWS::NetworkFirewall::Firewall \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)", "allOf": [ { "type": "object", @@ -28356,14 +28358,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticBeanstalk::ConfigurationTemplate" + "AWS::NetworkFirewall::Firewall" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html)" + "Resource type definition for AWS::NetworkFirewall::Firewall \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticbeanstalk-configurationtemplate.json" + "$ref": "resources/aws-networkfirewall-firewall.json" } }, "required": [ @@ -28377,9 +28379,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SecurityGroupVpcAssociation": { + "AWS_NetworkManager_SiteToSiteVpnAttachment": { "type": "object", - "markdownDescription": "Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupvpcassociation.html)", + "markdownDescription": "AWS::NetworkManager::SiteToSiteVpnAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-sitetositevpnattachment.html)", "allOf": [ { "type": "object", @@ -28387,14 +28389,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SecurityGroupVpcAssociation" + "AWS::NetworkManager::SiteToSiteVpnAttachment" ], "markdownEnumDescriptions": [ - "Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupvpcassociation.html)" + "AWS::NetworkManager::SiteToSiteVpnAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-sitetositevpnattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-securitygroupvpcassociation.json" + "$ref": "resources/aws-networkmanager-sitetositevpnattachment.json" } }, "required": [ @@ -28408,9 +28410,9 @@ ], "additionalProperties": false }, - "AWS_KafkaConnect_WorkerConfiguration": { + "AWS_EC2_SpotFleet": { "type": "object", - "markdownDescription": "The configuration of the workers, which are the processes that run the connector logic. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::SpotFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html)", "allOf": [ { "type": "object", @@ -28418,14 +28420,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KafkaConnect::WorkerConfiguration" + "AWS::EC2::SpotFleet" ], "markdownEnumDescriptions": [ - "The configuration of the workers, which are the processes that run the connector logic. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html)" + "Resource Type definition for AWS::EC2::SpotFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html)" ] }, "Properties": { - "$ref": "resources/aws-kafkaconnect-workerconfiguration.json" + "$ref": "resources/aws-ec2-spotfleet.json" } }, "required": [ @@ -28439,9 +28441,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_DomainNameV2": { + "AWS_SageMaker_AppImageConfig": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApiGateway::DomainNameV2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::AppImageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html)", "allOf": [ { "type": "object", @@ -28449,18 +28451,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::DomainNameV2" + "AWS::SageMaker::AppImageConfig" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApiGateway::DomainNameV2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html)" + "Resource Type definition for AWS::SageMaker::AppImageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-domainnamev2.json" + "$ref": "resources/aws-sagemaker-appimageconfig.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -28469,9 +28472,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_Limit": { + "AWS_GuardDuty_Member": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::Limit Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-limit.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html)", "allOf": [ { "type": "object", @@ -28479,14 +28482,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::Limit" + "AWS::GuardDuty::Member" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::Limit Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-limit.html)" + "Resource Type definition for AWS::GuardDuty::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-limit.json" + "$ref": "resources/aws-guardduty-member.json" } }, "required": [ @@ -28500,9 +28503,9 @@ ], "additionalProperties": false }, - "AWS_Route53Profiles_Profile": { + "AWS_EC2_Host": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53Profiles::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profile.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::Host \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html)", "allOf": [ { "type": "object", @@ -28510,14 +28513,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Profiles::Profile" + "AWS::EC2::Host" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53Profiles::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profile.html)" + "Resource Type definition for AWS::EC2::Host \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html)" ] }, "Properties": { - "$ref": "resources/aws-route53profiles-profile.json" + "$ref": "resources/aws-ec2-host.json" } }, "required": [ @@ -28531,9 +28534,9 @@ ], "additionalProperties": false }, - "AWS_ControlTower_LandingZone": { + "AWS_EC2_RouteTable": { "type": "object", - "markdownDescription": "Definition of AWS::ControlTower::LandingZone Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html)", + "markdownDescription": "Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.\n For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html)", "allOf": [ { "type": "object", @@ -28541,14 +28544,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ControlTower::LandingZone" + "AWS::EC2::RouteTable" ], "markdownEnumDescriptions": [ - "Definition of AWS::ControlTower::LandingZone Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html)" + "Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.\n For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html)" ] }, "Properties": { - "$ref": "resources/aws-controltower-landingzone.json" + "$ref": "resources/aws-ec2-routetable.json" } }, "required": [ @@ -28562,9 +28565,9 @@ ], "additionalProperties": false }, - "AWS_S3Express_AccessPoint": { + "AWS_GreengrassV2_ComponentVersion": { "type": "object", - "markdownDescription": "The AWS::S3Express::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-accesspoint.html)", + "markdownDescription": "Resource for Greengrass component version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html)", "allOf": [ { "type": "object", @@ -28572,19 +28575,18 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Express::AccessPoint" + "AWS::GreengrassV2::ComponentVersion" ], "markdownEnumDescriptions": [ - "The AWS::S3Express::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-accesspoint.html)" + "Resource for Greengrass component version. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html)" ] }, "Properties": { - "$ref": "resources/aws-s3express-accesspoint.json" + "$ref": "resources/aws-greengrassv2-componentversion.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -28593,9 +28595,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_EventSourceMapping": { + "AWS_SSMGuiConnect_Preferences": { "type": "object", - "markdownDescription": "The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an event source and an LAMlong function. LAM reads items from the event source and triggers the function.\n For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source. \n + [Configuring a Dynamo DB stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping) \n + [Configuring a Kinesis stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping) \n + [Configuring an SQS queue as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) \n + [Configuring an MQ broker as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) \n + [Configuring MSK as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html) \n + [Configuring Self-Managed Apache Kafka as an event source](https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html) \n + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html)", + "markdownDescription": "Definition of AWS::SSMGuiConnect::Preferences Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmguiconnect-preferences.html)", "allOf": [ { "type": "object", @@ -28603,19 +28605,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::EventSourceMapping" + "AWS::SSMGuiConnect::Preferences" ], "markdownEnumDescriptions": [ - "The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an event source and an LAMlong function. LAM reads items from the event source and triggers the function.\n For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source. \n + [Configuring a Dynamo DB stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping) \n + [Configuring a Kinesis stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping) \n + [Configuring an SQS queue as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) \n + [Configuring an MQ broker as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) \n + [Configuring MSK as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html) \n + [Configuring Self-Managed Apache Kafka as an event source](https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html) \n + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html)" + "Definition of AWS::SSMGuiConnect::Preferences Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmguiconnect-preferences.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-eventsourcemapping.json" + "$ref": "resources/aws-ssmguiconnect-preferences.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -28624,9 +28625,9 @@ ], "additionalProperties": false }, - "AWS_S3Tables_TableBucket": { + "AWS_CloudFormation_StackSet": { "type": "object", - "markdownDescription": "Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html)", + "markdownDescription": "StackSet as a resource provides one-click experience for provisioning a StackSet and StackInstances \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html)", "allOf": [ { "type": "object", @@ -28634,14 +28635,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Tables::TableBucket" + "AWS::CloudFormation::StackSet" ], "markdownEnumDescriptions": [ - "Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-tablebucket.html)" + "StackSet as a resource provides one-click experience for provisioning a StackSet and StackInstances \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html)" ] }, "Properties": { - "$ref": "resources/aws-s3tables-tablebucket.json" + "$ref": "resources/aws-cloudformation-stackset.json" } }, "required": [ @@ -28655,9 +28656,9 @@ ], "additionalProperties": false }, - "AWS_FinSpace_Environment": { + "AWS_LakeFormation_DataLakeSettings": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html)", + "markdownDescription": "Resource Type definition for AWS::LakeFormation::DataLakeSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html)", "allOf": [ { "type": "object", @@ -28665,19 +28666,18 @@ "Type": { "type": "string", "enum": [ - "AWS::FinSpace::Environment" + "AWS::LakeFormation::DataLakeSettings" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html)" + "Resource Type definition for AWS::LakeFormation::DataLakeSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html)" ] }, "Properties": { - "$ref": "resources/aws-finspace-environment.json" + "$ref": "resources/aws-lakeformation-datalakesettings.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -28686,9 +28686,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_Owner": { + "AWS_Location_Tracker": { "type": "object", - "markdownDescription": "A owner can set up authorization permissions on their resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-owner.html)", + "markdownDescription": "Definition of AWS::Location::Tracker Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html)", "allOf": [ { "type": "object", @@ -28696,14 +28696,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::Owner" + "AWS::Location::Tracker" ], "markdownEnumDescriptions": [ - "A owner can set up authorization permissions on their resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-owner.html)" + "Definition of AWS::Location::Tracker Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-owner.json" + "$ref": "resources/aws-location-tracker.json" } }, "required": [ @@ -28717,9 +28717,9 @@ ], "additionalProperties": false }, - "AWS_IoT_ThingPrincipalAttachment": { + "AWS_NeptuneGraph_GraphSnapshot": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html)", + "markdownDescription": "Resource Type definition for AWS::NeptuneGraph::GraphSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graphsnapshot.html)", "allOf": [ { "type": "object", @@ -28727,14 +28727,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::ThingPrincipalAttachment" + "AWS::NeptuneGraph::GraphSnapshot" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::ThingPrincipalAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html)" + "Resource Type definition for AWS::NeptuneGraph::GraphSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graphsnapshot.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-thingprincipalattachment.json" + "$ref": "resources/aws-neptunegraph-graphsnapshot.json" } }, "required": [ @@ -28748,9 +28748,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_FlowEntitlement": { + "AWS_IoTWireless_NetworkAnalyzerConfiguration": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::FlowEntitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html)", + "markdownDescription": "Create and manage NetworkAnalyzerConfiguration resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-networkanalyzerconfiguration.html)", "allOf": [ { "type": "object", @@ -28758,14 +28758,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::FlowEntitlement" + "AWS::IoTWireless::NetworkAnalyzerConfiguration" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::FlowEntitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html)" + "Create and manage NetworkAnalyzerConfiguration resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-networkanalyzerconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-flowentitlement.json" + "$ref": "resources/aws-iotwireless-networkanalyzerconfiguration.json" } }, "required": [ @@ -28779,9 +28779,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCEndpointService": { + "AWS_ServiceCatalog_TagOptionAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCEndpointService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html)", "allOf": [ { "type": "object", @@ -28789,14 +28789,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCEndpointService" + "AWS::ServiceCatalog::TagOptionAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCEndpointService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html)" + "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcendpointservice.json" + "$ref": "resources/aws-servicecatalog-tagoptionassociation.json" } }, "required": [ @@ -28809,9 +28809,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_LayerVersionPermission": { + "AWS_Comprehend_DocumentClassifier": { "type": "object", - "markdownDescription": "Schema for Lambda LayerVersionPermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html)", + "markdownDescription": "Document Classifier enables training document classifier models. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-documentclassifier.html)", "allOf": [ { "type": "object", @@ -28819,14 +28819,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::LayerVersionPermission" + "AWS::Comprehend::DocumentClassifier" ], "markdownEnumDescriptions": [ - "Schema for Lambda LayerVersionPermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html)" + "Document Classifier enables training document classifier models. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-documentclassifier.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-layerversionpermission.json" + "$ref": "resources/aws-comprehend-documentclassifier.json" } }, "required": [ @@ -28840,9 +28840,9 @@ ], "additionalProperties": false }, - "AWS_MSK_Cluster": { + "AWS_Glue_Registry": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html)", + "markdownDescription": "This resource creates a Registry for authoring schemas as part of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html)", "allOf": [ { "type": "object", @@ -28850,14 +28850,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::Cluster" + "AWS::Glue::Registry" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html)" + "This resource creates a Registry for authoring schemas as part of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-cluster.json" + "$ref": "resources/aws-glue-registry.json" } }, "required": [ @@ -28871,9 +28871,9 @@ ], "additionalProperties": false }, - "AWS_Inspector_ResourceGroup": { + "AWS_Route53GlobalResolver_DnsView": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Inspector::ResourceGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::DnsView \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-dnsview.html)", "allOf": [ { "type": "object", @@ -28881,14 +28881,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Inspector::ResourceGroup" + "AWS::Route53GlobalResolver::DnsView" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Inspector::ResourceGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html)" + "Resource schema for AWS::Route53GlobalResolver::DnsView \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-dnsview.html)" ] }, "Properties": { - "$ref": "resources/aws-inspector-resourcegroup.json" + "$ref": "resources/aws-route53globalresolver-dnsview.json" } }, "required": [ @@ -28902,9 +28902,9 @@ ], "additionalProperties": false }, - "AWS_MediaTailor_LiveSource": { + "AWS_DataSync_LocationFSxONTAP": { "type": "object", - "markdownDescription": "Definition of AWS::MediaTailor::LiveSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-livesource.html)", + "markdownDescription": "Resource Type definition for AWS::DataSync::LocationFSxONTAP. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxontap.html)", "allOf": [ { "type": "object", @@ -28912,14 +28912,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaTailor::LiveSource" + "AWS::DataSync::LocationFSxONTAP" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaTailor::LiveSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-livesource.html)" + "Resource Type definition for AWS::DataSync::LocationFSxONTAP. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxontap.html)" ] }, "Properties": { - "$ref": "resources/aws-mediatailor-livesource.json" + "$ref": "resources/aws-datasync-locationfsxontap.json" } }, "required": [ @@ -28933,9 +28933,9 @@ ], "additionalProperties": false }, - "AWS_CE_CostCategory": { + "AWS_ApplicationSignals_GroupingConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CE::CostCategory. Cost Category enables you to map your cost and usage into meaningful categories. You can use Cost Category to organize your costs using a rule-based engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html)", + "markdownDescription": "Resource Type definition for AWS::ApplicationSignals::GroupingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-groupingconfiguration.html)", "allOf": [ { "type": "object", @@ -28943,14 +28943,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CE::CostCategory" + "AWS::ApplicationSignals::GroupingConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CE::CostCategory. Cost Category enables you to map your cost and usage into meaningful categories. You can use Cost Category to organize your costs using a rule-based engine. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html)" + "Resource Type definition for AWS::ApplicationSignals::GroupingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-groupingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-ce-costcategory.json" + "$ref": "resources/aws-applicationsignals-groupingconfiguration.json" } }, "required": [ @@ -28964,9 +28964,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_PortfolioProductAssociation": { + "AWS_OpsWorks_Layer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::Layer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html)", "allOf": [ { "type": "object", @@ -28974,18 +28974,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::PortfolioProductAssociation" + "AWS::OpsWorks::Layer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html)" + "Resource Type definition for AWS::OpsWorks::Layer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-portfolioproductassociation.json" + "$ref": "resources/aws-opsworks-layer.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -28994,9 +28995,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_User": { + "AWS_CloudFront_KeyValueStore": { "type": "object", - "markdownDescription": "Definition of AWS::Transfer::User Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html)", + "markdownDescription": "The key value store. Use this to separate data from function code, allowing you to update data without having to publish a new version of a function. The key value store holds keys and their corresponding values. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keyvaluestore.html)", "allOf": [ { "type": "object", @@ -29004,14 +29005,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::User" + "AWS::CloudFront::KeyValueStore" ], "markdownEnumDescriptions": [ - "Definition of AWS::Transfer::User Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html)" + "The key value store. Use this to separate data from function code, allowing you to update data without having to publish a new version of a function. The key value store holds keys and their corresponding values. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keyvaluestore.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-user.json" + "$ref": "resources/aws-cloudfront-keyvaluestore.json" } }, "required": [ @@ -29025,9 +29026,9 @@ ], "additionalProperties": false }, - "AWS_SSO_Assignment": { + "AWS_PCAConnectorAD_TemplateGroupAccessControlEntry": { "type": "object", - "markdownDescription": "Resource Type definition for SSO assignmet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-assignment.html)", + "markdownDescription": "Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-templategroupaccesscontrolentry.html)", "allOf": [ { "type": "object", @@ -29035,14 +29036,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSO::Assignment" + "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" ], "markdownEnumDescriptions": [ - "Resource Type definition for SSO assignmet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-assignment.html)" + "Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-templategroupaccesscontrolentry.html)" ] }, "Properties": { - "$ref": "resources/aws-sso-assignment.json" + "$ref": "resources/aws-pcaconnectorad-templategroupaccesscontrolentry.json" } }, "required": [ @@ -29056,9 +29057,9 @@ ], "additionalProperties": false }, - "AWS_Connect_IntegrationAssociation": { + "AWS_OpsWorks_App": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::IntegrationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html)", "allOf": [ { "type": "object", @@ -29066,14 +29067,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::IntegrationAssociation" + "AWS::OpsWorks::App" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::IntegrationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html)" + "Resource Type definition for AWS::OpsWorks::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-integrationassociation.json" + "$ref": "resources/aws-opsworks-app.json" } }, "required": [ @@ -29087,9 +29088,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPool": { + "AWS_CleanRooms_Collaboration": { "type": "object", - "markdownDescription": "Definition of AWS::Cognito::UserPool Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html)", + "markdownDescription": "Represents a collaboration between AWS accounts that allows for secure data collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html)", "allOf": [ { "type": "object", @@ -29097,18 +29098,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPool" + "AWS::CleanRooms::Collaboration" ], "markdownEnumDescriptions": [ - "Definition of AWS::Cognito::UserPool Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html)" + "Represents a collaboration between AWS accounts that allows for secure data collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpool.json" + "$ref": "resources/aws-cleanrooms-collaboration.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -29117,9 +29119,9 @@ ], "additionalProperties": false }, - "AWS_Connect_SecurityKey": { + "AWS_IVS_PlaybackKeyPair": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::SecurityKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securitykey.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::PlaybackKeyPair \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html)", "allOf": [ { "type": "object", @@ -29127,19 +29129,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::SecurityKey" + "AWS::IVS::PlaybackKeyPair" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::SecurityKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securitykey.html)" + "Resource Type definition for AWS::IVS::PlaybackKeyPair \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-securitykey.json" + "$ref": "resources/aws-ivs-playbackkeypair.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -29148,9 +29149,9 @@ ], "additionalProperties": false }, - "AWS_BedrockAgentCore_CodeInterpreterCustom": { + "AWS_ManagedBlockchain_Member": { "type": "object", - "markdownDescription": "Resource definition for AWS::BedrockAgentCore::CodeInterpreterCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-codeinterpretercustom.html)", + "markdownDescription": "Resource Type definition for AWS::ManagedBlockchain::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html)", "allOf": [ { "type": "object", @@ -29158,14 +29159,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BedrockAgentCore::CodeInterpreterCustom" + "AWS::ManagedBlockchain::Member" ], "markdownEnumDescriptions": [ - "Resource definition for AWS::BedrockAgentCore::CodeInterpreterCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-codeinterpretercustom.html)" + "Resource Type definition for AWS::ManagedBlockchain::Member \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrockagentcore-codeinterpretercustom.json" + "$ref": "resources/aws-managedblockchain-member.json" } }, "required": [ @@ -29179,9 +29180,9 @@ ], "additionalProperties": false }, - "AWS_Connect_Queue": { + "AWS_CleanRooms_Membership": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html)", + "markdownDescription": "Represents an AWS account that is a part of a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-membership.html)", "allOf": [ { "type": "object", @@ -29189,14 +29190,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::Queue" + "AWS::CleanRooms::Membership" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html)" + "Represents an AWS account that is a part of a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-membership.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-queue.json" + "$ref": "resources/aws-cleanrooms-membership.json" } }, "required": [ @@ -29210,9 +29211,9 @@ ], "additionalProperties": false }, - "AWS_GlobalAccelerator_Accelerator": { + "AWS_IoTWireless_ServiceProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::Accelerator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html)", "allOf": [ { "type": "object", @@ -29220,19 +29221,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GlobalAccelerator::Accelerator" + "AWS::IoTWireless::ServiceProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GlobalAccelerator::Accelerator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-globalaccelerator-accelerator.json" + "$ref": "resources/aws-iotwireless-serviceprofile.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -29241,9 +29241,9 @@ ], "additionalProperties": false }, - "AWS_AppFlow_Connector": { + "AWS_IdentityStore_Group": { "type": "object", - "markdownDescription": "Resource schema for AWS::AppFlow::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html)", + "markdownDescription": "Resource Type definition for AWS::IdentityStore::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-group.html)", "allOf": [ { "type": "object", @@ -29251,14 +29251,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppFlow::Connector" + "AWS::IdentityStore::Group" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::AppFlow::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html)" + "Resource Type definition for AWS::IdentityStore::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-group.html)" ] }, "Properties": { - "$ref": "resources/aws-appflow-connector.json" + "$ref": "resources/aws-identitystore-group.json" } }, "required": [ @@ -29272,9 +29272,9 @@ ], "additionalProperties": false }, - "AWS_Connect_UserHierarchyStructure": { + "AWS_QBusiness_Permission": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::UserHierarchyStructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchystructure.html)", + "markdownDescription": "Definition of AWS::QBusiness::Permission Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-permission.html)", "allOf": [ { "type": "object", @@ -29282,14 +29282,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::UserHierarchyStructure" + "AWS::QBusiness::Permission" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::UserHierarchyStructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchystructure.html)" + "Definition of AWS::QBusiness::Permission Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-permission.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-userhierarchystructure.json" + "$ref": "resources/aws-qbusiness-permission.json" } }, "required": [ @@ -29303,9 +29303,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryControl_ControlPanel": { + "AWS_SageMaker_NotebookInstance": { "type": "object", - "markdownDescription": "AWS Route53 Recovery Control Control Panel resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-controlpanel.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::NotebookInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html)", "allOf": [ { "type": "object", @@ -29313,14 +29313,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryControl::ControlPanel" + "AWS::SageMaker::NotebookInstance" ], "markdownEnumDescriptions": [ - "AWS Route53 Recovery Control Control Panel resource schema . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-controlpanel.html)" + "Resource Type definition for AWS::SageMaker::NotebookInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoverycontrol-controlpanel.json" + "$ref": "resources/aws-sagemaker-notebookinstance.json" } }, "required": [ @@ -29334,9 +29334,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_ConnectPeer": { + "AWS_ElasticLoadBalancingV2_Listener": { "type": "object", - "markdownDescription": "AWS::NetworkManager::ConnectPeer Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectpeer.html)", + "markdownDescription": "Specifies a listener for an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html)", "allOf": [ { "type": "object", @@ -29344,14 +29344,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::ConnectPeer" + "AWS::ElasticLoadBalancingV2::Listener" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::ConnectPeer Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectpeer.html)" + "Specifies a listener for an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-connectpeer.json" + "$ref": "resources/aws-elasticloadbalancingv2-listener.json" } }, "required": [ @@ -29365,9 +29365,9 @@ ], "additionalProperties": false }, - "AWS_Route53_DNSSEC": { + "AWS_AutoScaling_AutoScalingGroup": { "type": "object", - "markdownDescription": "Resource used to control (enable/disable) DNSSEC in a specific hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html)", + "markdownDescription": "The ``AWS::AutoScaling::AutoScalingGroup`` resource defines an Amazon EC2 Auto Scaling group, which is a collection of Amazon EC2 instances that are treated as a logical grouping for the purposes of automatic scaling and management. \n For more information about Amazon EC2 Auto Scaling, see the [Amazon EC2 Auto Scaling User Guide](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). \n Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) or a launch configuration. We strongly recommend that you do not use launch configurations. For more information, see [Launch configurations](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html) in the *Amazon EC2 Auto Scaling User Guide*.\n For help migrating from launch configurations to launch templates, see [Migrate CloudFormation stacks from launch configurations to launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-launch-configurations-with-cloudformation.html) in the *Amazon EC2 Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)", "allOf": [ { "type": "object", @@ -29375,14 +29375,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::DNSSEC" + "AWS::AutoScaling::AutoScalingGroup" ], "markdownEnumDescriptions": [ - "Resource used to control (enable/disable) DNSSEC in a specific hosted zone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html)" + "The ``AWS::AutoScaling::AutoScalingGroup`` resource defines an Amazon EC2 Auto Scaling group, which is a collection of Amazon EC2 instances that are treated as a logical grouping for the purposes of automatic scaling and management. \n For more information about Amazon EC2 Auto Scaling, see the [Amazon EC2 Auto Scaling User Guide](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). \n Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) or a launch configuration. We strongly recommend that you do not use launch configurations. For more information, see [Launch configurations](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html) in the *Amazon EC2 Auto Scaling User Guide*.\n For help migrating from launch configurations to launch templates, see [Migrate CloudFormation stacks from launch configurations to launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-launch-configurations-with-cloudformation.html) in the *Amazon EC2 Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-dnssec.json" + "$ref": "resources/aws-autoscaling-autoscalinggroup.json" } }, "required": [ @@ -29396,9 +29396,9 @@ ], "additionalProperties": false }, - "AWS_IAM_VirtualMFADevice": { + "AWS_IoT_AccountAuditConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::VirtualMFADevice \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html)", + "markdownDescription": "Configures the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html)", "allOf": [ { "type": "object", @@ -29406,14 +29406,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::VirtualMFADevice" + "AWS::IoT::AccountAuditConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::VirtualMFADevice \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html)" + "Configures the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-virtualmfadevice.json" + "$ref": "resources/aws-iot-accountauditconfiguration.json" } }, "required": [ @@ -29427,9 +29427,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_Instance": { + "AWS_KafkaConnect_CustomPlugin": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html)", "allOf": [ { "type": "object", @@ -29437,14 +29437,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::Instance" + "AWS::KafkaConnect::CustomPlugin" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-instance.json" + "$ref": "resources/aws-kafkaconnect-customplugin.json" } }, "required": [ @@ -29458,9 +29458,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationObjectStorage": { + "AWS_InspectorV2_CodeSecurityScanConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DataSync::LocationObjectStorage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html)", + "markdownDescription": "Inspector CodeSecurityScanConfiguration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityscanconfiguration.html)", "allOf": [ { "type": "object", @@ -29468,14 +29468,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationObjectStorage" + "AWS::InspectorV2::CodeSecurityScanConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DataSync::LocationObjectStorage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html)" + "Inspector CodeSecurityScanConfiguration resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-codesecurityscanconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationobjectstorage.json" + "$ref": "resources/aws-inspectorv2-codesecurityscanconfiguration.json" } }, "required": [ @@ -29488,9 +29488,9 @@ ], "additionalProperties": false }, - "AWS_SecurityLake_AwsLogSource": { + "AWS_IdentityStore_GroupMembership": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecurityLake::AwsLogSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html)", + "markdownDescription": "Resource Type Definition for AWS:IdentityStore::GroupMembership \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html)", "allOf": [ { "type": "object", @@ -29498,14 +29498,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityLake::AwsLogSource" + "AWS::IdentityStore::GroupMembership" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecurityLake::AwsLogSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html)" + "Resource Type Definition for AWS:IdentityStore::GroupMembership \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html)" ] }, "Properties": { - "$ref": "resources/aws-securitylake-awslogsource.json" + "$ref": "resources/aws-identitystore-groupmembership.json" } }, "required": [ @@ -29519,9 +29519,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Account": { + "AWS_OpsWorks_ElasticLoadBalancerAttachment": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs. To avoid overwriting other roles, you should only have one ``AWS::ApiGateway::Account`` resource per region per account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::ElasticLoadBalancerAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elasticloadbalancerattachment.html)", "allOf": [ { "type": "object", @@ -29529,18 +29529,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Account" + "AWS::OpsWorks::ElasticLoadBalancerAttachment" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs. To avoid overwriting other roles, you should only have one ``AWS::ApiGateway::Account`` resource per region per account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html)" + "Resource Type definition for AWS::OpsWorks::ElasticLoadBalancerAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elasticloadbalancerattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-account.json" + "$ref": "resources/aws-opsworks-elasticloadbalancerattachment.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -29549,9 +29550,9 @@ ], "additionalProperties": false }, - "AWS_EC2_EIPAssociation": { + "AWS_EC2_TransitGatewayMulticastGroupSource": { "type": "object", - "markdownDescription": "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html)", + "markdownDescription": "The AWS::EC2::TransitGatewayMulticastGroupSource registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html)", "allOf": [ { "type": "object", @@ -29559,18 +29560,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::EIPAssociation" + "AWS::EC2::TransitGatewayMulticastGroupSource" ], "markdownEnumDescriptions": [ - "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html)" + "The AWS::EC2::TransitGatewayMulticastGroupSource registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-eipassociation.json" + "$ref": "resources/aws-ec2-transitgatewaymulticastgroupsource.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -29579,9 +29581,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_Api": { + "AWS_Shield_Protection": { "type": "object", - "markdownDescription": "Resource schema for AppSync Api \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html)", + "markdownDescription": "Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, AWS Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protection.html)", "allOf": [ { "type": "object", @@ -29589,14 +29591,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::Api" + "AWS::Shield::Protection" ], "markdownEnumDescriptions": [ - "Resource schema for AppSync Api \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html)" + "Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, AWS Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protection.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-api.json" + "$ref": "resources/aws-shield-protection.json" } }, "required": [ @@ -29610,9 +29612,9 @@ ], "additionalProperties": false }, - "AWS_SSMQuickSetup_ConfigurationManager": { + "AWS_EKS_Capability": { "type": "object", - "markdownDescription": "Definition of AWS::SSMQuickSetup::ConfigurationManager Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-configurationmanager.html)", + "markdownDescription": "Resource Type definition for EKS Capability. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-capability.html)", "allOf": [ { "type": "object", @@ -29620,14 +29622,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMQuickSetup::ConfigurationManager" + "AWS::EKS::Capability" ], "markdownEnumDescriptions": [ - "Definition of AWS::SSMQuickSetup::ConfigurationManager Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-configurationmanager.html)" + "Resource Type definition for EKS Capability. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-capability.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmquicksetup-configurationmanager.json" + "$ref": "resources/aws-eks-capability.json" } }, "required": [ @@ -29641,9 +29643,9 @@ ], "additionalProperties": false }, - "AWS_DAX_Cluster": { + "AWS_MediaTailor_Channel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DAX::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html)", + "markdownDescription": "Definition of AWS::MediaTailor::Channel Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html)", "allOf": [ { "type": "object", @@ -29651,14 +29653,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DAX::Cluster" + "AWS::MediaTailor::Channel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DAX::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html)" + "Definition of AWS::MediaTailor::Channel Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html)" ] }, "Properties": { - "$ref": "resources/aws-dax-cluster.json" + "$ref": "resources/aws-mediatailor-channel.json" } }, "required": [ @@ -29672,9 +29674,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_GroupVersion": { + "AWS_Glue_SchemaVersionMetadata": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::GroupVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html)", + "markdownDescription": "This resource adds Key-Value metadata to a Schema version of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html)", "allOf": [ { "type": "object", @@ -29682,14 +29684,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::GroupVersion" + "AWS::Glue::SchemaVersionMetadata" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::GroupVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html)" + "This resource adds Key-Value metadata to a Schema version of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-groupversion.json" + "$ref": "resources/aws-glue-schemaversionmetadata.json" } }, "required": [ @@ -29703,9 +29705,9 @@ ], "additionalProperties": false }, - "AWS_DMS_DataMigration": { + "AWS_CloudFormation_PublicTypeVersion": { "type": "object", - "markdownDescription": "Resource schema for AWS::DMS::DataMigration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html)", + "markdownDescription": "Test and Publish a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html)", "allOf": [ { "type": "object", @@ -29713,19 +29715,18 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::DataMigration" + "AWS::CloudFormation::PublicTypeVersion" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DMS::DataMigration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html)" + "Test and Publish a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-datamigration.json" + "$ref": "resources/aws-cloudformation-publictypeversion.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -29734,9 +29735,9 @@ ], "additionalProperties": false }, - "AWS_AutoScaling_AutoScalingGroup": { + "AWS_GlobalAccelerator_EndpointGroup": { "type": "object", - "markdownDescription": "The ``AWS::AutoScaling::AutoScalingGroup`` resource defines an Amazon EC2 Auto Scaling group, which is a collection of Amazon EC2 instances that are treated as a logical grouping for the purposes of automatic scaling and management. \n For more information about Amazon EC2 Auto Scaling, see the [Amazon EC2 Auto Scaling User Guide](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). \n Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) or a launch configuration. We strongly recommend that you do not use launch configurations. For more information, see [Launch configurations](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html) in the *Amazon EC2 Auto Scaling User Guide*.\n For help migrating from launch configurations to launch templates, see [Migrate CloudFormation stacks from launch configurations to launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-launch-configurations-with-cloudformation.html) in the *Amazon EC2 Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)", + "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::EndpointGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html)", "allOf": [ { "type": "object", @@ -29744,14 +29745,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScaling::AutoScalingGroup" + "AWS::GlobalAccelerator::EndpointGroup" ], "markdownEnumDescriptions": [ - "The ``AWS::AutoScaling::AutoScalingGroup`` resource defines an Amazon EC2 Auto Scaling group, which is a collection of Amazon EC2 instances that are treated as a logical grouping for the purposes of automatic scaling and management. \n For more information about Amazon EC2 Auto Scaling, see the [Amazon EC2 Auto Scaling User Guide](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). \n Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) or a launch configuration. We strongly recommend that you do not use launch configurations. For more information, see [Launch configurations](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html) in the *Amazon EC2 Auto Scaling User Guide*.\n For help migrating from launch configurations to launch templates, see [Migrate CloudFormation stacks from launch configurations to launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-launch-configurations-with-cloudformation.html) in the *Amazon EC2 Auto Scaling User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)" + "Resource Type definition for AWS::GlobalAccelerator::EndpointGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscaling-autoscalinggroup.json" + "$ref": "resources/aws-globalaccelerator-endpointgroup.json" } }, "required": [ @@ -29765,9 +29766,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_CodeSigningConfig": { + "AWS_WorkSpacesWeb_TrustStore": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lambda::CodeSigningConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::TrustStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-truststore.html)", "allOf": [ { "type": "object", @@ -29775,14 +29776,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::CodeSigningConfig" + "AWS::WorkSpacesWeb::TrustStore" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lambda::CodeSigningConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html)" + "Definition of AWS::WorkSpacesWeb::TrustStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-truststore.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-codesigningconfig.json" + "$ref": "resources/aws-workspacesweb-truststore.json" } }, "required": [ @@ -29796,9 +29797,9 @@ ], "additionalProperties": false }, - "AWS_EKS_Addon": { + "AWS_Glue_Classifier": { "type": "object", - "markdownDescription": "Resource Schema for AWS::EKS::Addon \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Classifier \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html)", "allOf": [ { "type": "object", @@ -29806,19 +29807,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::Addon" + "AWS::Glue::Classifier" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::EKS::Addon \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html)" + "Resource Type definition for AWS::Glue::Classifier \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-addon.json" + "$ref": "resources/aws-glue-classifier.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -29827,9 +29827,9 @@ ], "additionalProperties": false }, - "AWS_MSK_ServerlessCluster": { + "AWS_CloudFormation_Stack": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::ServerlessCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html)", + "markdownDescription": "The AWS::CloudFormation::Stack resource nests a stack as a resource in a top-level template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stack.html)", "allOf": [ { "type": "object", @@ -29837,14 +29837,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::ServerlessCluster" + "AWS::CloudFormation::Stack" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::ServerlessCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html)" + "The AWS::CloudFormation::Stack resource nests a stack as a resource in a top-level template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stack.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-serverlesscluster.json" + "$ref": "resources/aws-cloudformation-stack.json" } }, "required": [ @@ -29858,9 +29858,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBSecurityGroupIngress": { + "AWS_Connect_TaskTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::RDS::DBSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroupingress.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::TaskTemplate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-tasktemplate.html)", "allOf": [ { "type": "object", @@ -29868,14 +29868,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBSecurityGroupIngress" + "AWS::Connect::TaskTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::RDS::DBSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroupingress.html)" + "Resource Type definition for AWS::Connect::TaskTemplate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-tasktemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbsecuritygroupingress.json" + "$ref": "resources/aws-connect-tasktemplate.json" } }, "required": [ @@ -29889,9 +29889,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_DomainUnit": { + "AWS_Connect_PhoneNumber": { "type": "object", - "markdownDescription": "A domain unit enables you to easily organize your assets and other domain entities under specific business units and teams. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domainunit.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-phonenumber.html)", "allOf": [ { "type": "object", @@ -29899,14 +29899,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::DomainUnit" + "AWS::Connect::PhoneNumber" ], "markdownEnumDescriptions": [ - "A domain unit enables you to easily organize your assets and other domain entities under specific business units and teams. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domainunit.html)" + "Resource Type definition for AWS::Connect::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-phonenumber.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-domainunit.json" + "$ref": "resources/aws-connect-phonenumber.json" } }, "required": [ @@ -29920,9 +29920,9 @@ ], "additionalProperties": false }, - "AWS_Config_ConfigRule": { + "AWS_BedrockAgentCore_Policy": { "type": "object", - "markdownDescription": "You must first create and start the CC configuration recorder in order to create CC managed rules with CFNlong. For more information, see [Managing the Configuration Recorder](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html).\n Adds or updates an CC rule to evaluate if your AWS resources comply with your desired configurations. For information on how many CC rules you can have per account, see [Service Limits](https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) in the *Developer Guide*.\n There are two types of rules: *Managed Rules* and *Custom Rules*. You can use the ``ConfigRule`` resource to create both CC Managed Rules and CC Custom Rules.\n CC Managed Rules are predefined, customizable rules created by CC. For a list of managed rules, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). If you are adding an CC managed rule, you must specify the rule's identifier for the ``SourceIdentifier`` key.\n CC Custom Rules are rules that you create from scratch. There are two ways to create CC custom rules: with Lambda functions ([Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/gettingstarted-concepts.html#gettingstarted-concepts-function)) and with CFNGUARDshort ([Guard GitHub Repository](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-guard)), a policy-as-code language. CC custom rules created with LAMlong are called *Custom Lambda Rules* and CC custom rules created with CFNGUARDshort are called *Custom Policy Rules*.\n If you are adding a new CC Custom LAM rule, you first need to create an LAMlong function that the rule invokes to evaluate your resources. When you use the ``ConfigRule`` resource to add a Custom LAM rule to CC, you must specify the Amazon Resource Name (ARN) that LAMlong assigns to the function. You specify the ARN in the ``SourceIdentifier`` key. This key is part of the ``Source`` object, which is part of the ``ConfigRule`` object. \n For any new CC rule that you add, specify the ``ConfigRuleName`` in the ``ConfigRule`` object. Do not specify the ``ConfigRuleArn`` or the ``ConfigRuleId``. These values are generated by CC for new rules.\n If you are updating a rule that you added previously, you can specify the rule by ``ConfigRuleName``, ``ConfigRuleId``, or ``ConfigRuleArn`` in the ``ConfigRule`` data type that you use in this request.\n For more information about developing and using CC rules, see [Evaluating Resources with Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::Policy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-policy.html)", "allOf": [ { "type": "object", @@ -29930,14 +29930,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::ConfigRule" + "AWS::BedrockAgentCore::Policy" ], "markdownEnumDescriptions": [ - "You must first create and start the CC configuration recorder in order to create CC managed rules with CFNlong. For more information, see [Managing the Configuration Recorder](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html).\n Adds or updates an CC rule to evaluate if your AWS resources comply with your desired configurations. For information on how many CC rules you can have per account, see [Service Limits](https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) in the *Developer Guide*.\n There are two types of rules: *Managed Rules* and *Custom Rules*. You can use the ``ConfigRule`` resource to create both CC Managed Rules and CC Custom Rules.\n CC Managed Rules are predefined, customizable rules created by CC. For a list of managed rules, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). If you are adding an CC managed rule, you must specify the rule's identifier for the ``SourceIdentifier`` key.\n CC Custom Rules are rules that you create from scratch. There are two ways to create CC custom rules: with Lambda functions ([Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/gettingstarted-concepts.html#gettingstarted-concepts-function)) and with CFNGUARDshort ([Guard GitHub Repository](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-guard)), a policy-as-code language. CC custom rules created with LAMlong are called *Custom Lambda Rules* and CC custom rules created with CFNGUARDshort are called *Custom Policy Rules*.\n If you are adding a new CC Custom LAM rule, you first need to create an LAMlong function that the rule invokes to evaluate your resources. When you use the ``ConfigRule`` resource to add a Custom LAM rule to CC, you must specify the Amazon Resource Name (ARN) that LAMlong assigns to the function. You specify the ARN in the ``SourceIdentifier`` key. This key is part of the ``Source`` object, which is part of the ``ConfigRule`` object. \n For any new CC rule that you add, specify the ``ConfigRuleName`` in the ``ConfigRule`` object. Do not specify the ``ConfigRuleArn`` or the ``ConfigRuleId``. These values are generated by CC for new rules.\n If you are updating a rule that you added previously, you can specify the rule by ``ConfigRuleName``, ``ConfigRuleId``, or ``ConfigRuleArn`` in the ``ConfigRule`` data type that you use in this request.\n For more information about developing and using CC rules, see [Evaluating Resources with Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html)" + "Resource Type definition for AWS::BedrockAgentCore::Policy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-policy.html)" ] }, "Properties": { - "$ref": "resources/aws-config-configrule.json" + "$ref": "resources/aws-bedrockagentcore-policy.json" } }, "required": [ @@ -29951,9 +29951,9 @@ ], "additionalProperties": false }, - "AWS_Route53Profiles_ProfileResourceAssociation": { + "AWS_Route53_HealthCheck": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53Profiles::ProfileResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileresourceassociation.html)", + "markdownDescription": "Resource schema for AWS::Route53::HealthCheck. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html)", "allOf": [ { "type": "object", @@ -29961,14 +29961,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Profiles::ProfileResourceAssociation" + "AWS::Route53::HealthCheck" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53Profiles::ProfileResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileresourceassociation.html)" + "Resource schema for AWS::Route53::HealthCheck. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html)" ] }, "Properties": { - "$ref": "resources/aws-route53profiles-profileresourceassociation.json" + "$ref": "resources/aws-route53-healthcheck.json" } }, "required": [ @@ -29982,9 +29982,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_Fleet": { + "AWS_Pinpoint_VoiceChannel": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::Fleet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-fleet.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::VoiceChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-voicechannel.html)", "allOf": [ { "type": "object", @@ -29992,14 +29992,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::Fleet" + "AWS::Pinpoint::VoiceChannel" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::Fleet Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-fleet.html)" + "Resource Type definition for AWS::Pinpoint::VoiceChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-voicechannel.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-fleet.json" + "$ref": "resources/aws-pinpoint-voicechannel.json" } }, "required": [ @@ -30013,9 +30013,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "AWS_IAM_Policy": { "type": "object", - "markdownDescription": "Resource Type definition for Local Gateway Route Table Virtual Interface Group Association which describes a local gateway route table virtual interface group association for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevirtualinterfacegroupassociation.html)", + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM group, user or role.\n An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *User Guide*.\n The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.\n For information about policy documents, see [Creating policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *User Guide*.\n For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*.\n This resource does not support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). The following inline policy resource types support drift detection:\n + [AWS::IAM::GroupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html) \n + [AWS::IAM::RolePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html) \n + [AWS::IAM::UserPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)", "allOf": [ { "type": "object", @@ -30023,14 +30023,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" + "AWS::IAM::Policy" ], "markdownEnumDescriptions": [ - "Resource Type definition for Local Gateway Route Table Virtual Interface Group Association which describes a local gateway route table virtual interface group association for a local gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevirtualinterfacegroupassociation.html)" + "Adds or updates an inline policy document that is embedded in the specified IAM group, user or role.\n An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *User Guide*.\n The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.\n For information about policy documents, see [Creating policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *User Guide*.\n For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*.\n This resource does not support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). The following inline policy resource types support drift detection:\n + [AWS::IAM::GroupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html) \n + [AWS::IAM::RolePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html) \n + [AWS::IAM::UserPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-localgatewayroutetablevirtualinterfacegroupassociation.json" + "$ref": "resources/aws-iam-policy.json" } }, "required": [ @@ -30044,9 +30044,9 @@ ], "additionalProperties": false }, - "AWS_MPA_IdentitySource": { + "AWS_Wisdom_AIPromptVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MPA::IdentitySource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-identitysource.html)", + "markdownDescription": "Definition of AWS::Wisdom::AIPromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aipromptversion.html)", "allOf": [ { "type": "object", @@ -30054,14 +30054,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MPA::IdentitySource" + "AWS::Wisdom::AIPromptVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MPA::IdentitySource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mpa-identitysource.html)" + "Definition of AWS::Wisdom::AIPromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aipromptversion.html)" ] }, "Properties": { - "$ref": "resources/aws-mpa-identitysource.json" + "$ref": "resources/aws-wisdom-aipromptversion.json" } }, "required": [ @@ -30075,9 +30075,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverConfig": { + "AWS_MWAA_Environment": { "type": "object", - "markdownDescription": "Resource schema for AWS::Route53Resolver::ResolverConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html)", + "markdownDescription": "Resource schema for AWS::MWAA::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html)", "allOf": [ { "type": "object", @@ -30085,14 +30085,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverConfig" + "AWS::MWAA::Environment" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Route53Resolver::ResolverConfig. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html)" + "Resource schema for AWS::MWAA::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverconfig.json" + "$ref": "resources/aws-mwaa-environment.json" } }, "required": [ @@ -30106,9 +30106,9 @@ ], "additionalProperties": false }, - "AWS_S3Outposts_AccessPoint": { + "AWS_S3Files_FileSystem": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::S3Outposts::AccessPoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html)", + "markdownDescription": "Resource Type definition for AWS::S3Files::FileSystem \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-filesystem.html)", "allOf": [ { "type": "object", @@ -30116,14 +30116,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Outposts::AccessPoint" + "AWS::S3Files::FileSystem" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::S3Outposts::AccessPoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html)" + "Resource Type definition for AWS::S3Files::FileSystem \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3files-filesystem.html)" ] }, "Properties": { - "$ref": "resources/aws-s3outposts-accesspoint.json" + "$ref": "resources/aws-s3files-filesystem.json" } }, "required": [ @@ -30137,9 +30137,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalyticsV2_ApplicationCloudWatchLoggingOption": { + "AWS_ApplicationSignals_ServiceLevelObjective": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html)", + "markdownDescription": "Resource Type definition for AWS::ApplicationSignals::ServiceLevelObjective \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html)", "allOf": [ { "type": "object", @@ -30147,14 +30147,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + "AWS::ApplicationSignals::ServiceLevelObjective" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html)" + "Resource Type definition for AWS::ApplicationSignals::ServiceLevelObjective \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json" + "$ref": "resources/aws-applicationsignals-servicelevelobjective.json" } }, "required": [ @@ -30168,9 +30168,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_UserProfile": { + "AWS_Neptune_EventSubscription": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-userprofile.html)", + "markdownDescription": "Resource Type definition for AWS::Neptune::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-eventsubscription.html)", "allOf": [ { "type": "object", @@ -30178,14 +30178,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::UserProfile" + "AWS::Neptune::EventSubscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-userprofile.html)" + "Resource Type definition for AWS::Neptune::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-eventsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-userprofile.json" + "$ref": "resources/aws-neptune-eventsubscription.json" } }, "required": [ @@ -30199,9 +30199,9 @@ ], "additionalProperties": false }, - "AWS_EMR_SecurityConfiguration": { + "AWS_EC2_ClientVpnTargetNetworkAssociation": { "type": "object", - "markdownDescription": "Use a SecurityConfiguration resource to configure data encryption, Kerberos authentication, and Amazon S3 authorization for EMRFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnTargetNetworkAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html)", "allOf": [ { "type": "object", @@ -30209,14 +30209,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::SecurityConfiguration" + "AWS::EC2::ClientVpnTargetNetworkAssociation" ], "markdownEnumDescriptions": [ - "Use a SecurityConfiguration resource to configure data encryption, Kerberos authentication, and Amazon S3 authorization for EMRFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html)" + "Resource Type definition for AWS::EC2::ClientVpnTargetNetworkAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-securityconfiguration.json" + "$ref": "resources/aws-ec2-clientvpntargetnetworkassociation.json" } }, "required": [ @@ -30230,9 +30230,9 @@ ], "additionalProperties": false }, - "AWS_SSMIncidents_ResponsePlan": { + "AWS_Route53_CidrCollection": { "type": "object", - "markdownDescription": "Resource type definition for AWS::SSMIncidents::ResponsePlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-responseplan.html)", + "markdownDescription": "Resource Type definition for AWS::Route53::CidrCollection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html)", "allOf": [ { "type": "object", @@ -30240,14 +30240,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMIncidents::ResponsePlan" + "AWS::Route53::CidrCollection" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::SSMIncidents::ResponsePlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-responseplan.html)" + "Resource Type definition for AWS::Route53::CidrCollection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmincidents-responseplan.json" + "$ref": "resources/aws-route53-cidrcollection.json" } }, "required": [ @@ -30261,9 +30261,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCBlockPublicAccessExclusion": { + "AWS_NetworkManager_CoreNetwork": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCBlockPublicAccessExclusion. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessexclusion.html)", + "markdownDescription": "AWS::NetworkManager::CoreNetwork Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-corenetwork.html)", "allOf": [ { "type": "object", @@ -30271,14 +30271,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCBlockPublicAccessExclusion" + "AWS::NetworkManager::CoreNetwork" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCBlockPublicAccessExclusion. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessexclusion.html)" + "AWS::NetworkManager::CoreNetwork Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-corenetwork.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcblockpublicaccessexclusion.json" + "$ref": "resources/aws-networkmanager-corenetwork.json" } }, "required": [ @@ -30292,9 +30292,9 @@ ], "additionalProperties": false }, - "AWS_SSM_MaintenanceWindow": { + "AWS_RUM_AppMonitor": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSM::MaintenanceWindow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html)", + "markdownDescription": "Resource Type definition for AWS::RUM::AppMonitor \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rum-appmonitor.html)", "allOf": [ { "type": "object", @@ -30302,14 +30302,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::MaintenanceWindow" + "AWS::RUM::AppMonitor" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSM::MaintenanceWindow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html)" + "Resource Type definition for AWS::RUM::AppMonitor \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rum-appmonitor.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-maintenancewindow.json" + "$ref": "resources/aws-rum-appmonitor.json" } }, "required": [ @@ -30323,9 +30323,9 @@ ], "additionalProperties": false }, - "AWS_Proton_EnvironmentTemplate": { + "AWS_CloudFormation_HookDefaultVersion": { "type": "object", - "markdownDescription": "Definition of AWS::Proton::EnvironmentTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmenttemplate.html)", + "markdownDescription": "Set a version as default version for a hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html)", "allOf": [ { "type": "object", @@ -30333,14 +30333,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Proton::EnvironmentTemplate" + "AWS::CloudFormation::HookDefaultVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::Proton::EnvironmentTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmenttemplate.html)" + "Set a version as default version for a hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html)" ] }, "Properties": { - "$ref": "resources/aws-proton-environmenttemplate.json" + "$ref": "resources/aws-cloudformation-hookdefaultversion.json" } }, "required": [ @@ -30353,9 +30353,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ModelExplainabilityJobDefinition": { + "AWS_Batch_ServiceEnvironment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelExplainabilityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelexplainabilityjobdefinition.html)", + "markdownDescription": "Resource Type definition for AWS::Batch::ServiceEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html)", "allOf": [ { "type": "object", @@ -30363,14 +30363,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ModelExplainabilityJobDefinition" + "AWS::Batch::ServiceEnvironment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ModelExplainabilityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelexplainabilityjobdefinition.html)" + "Resource Type definition for AWS::Batch::ServiceEnvironment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-serviceenvironment.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-modelexplainabilityjobdefinition.json" + "$ref": "resources/aws-batch-serviceenvironment.json" } }, "required": [ @@ -30384,9 +30384,9 @@ ], "additionalProperties": false }, - "AWS_Timestream_ScheduledQuery": { + "AWS_QBusiness_WebExperience": { "type": "object", - "markdownDescription": "The AWS::Timestream::ScheduledQuery resource creates a Timestream Scheduled Query. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-scheduledquery.html)", + "markdownDescription": "Definition of AWS::QBusiness::WebExperience Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-webexperience.html)", "allOf": [ { "type": "object", @@ -30394,14 +30394,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Timestream::ScheduledQuery" + "AWS::QBusiness::WebExperience" ], "markdownEnumDescriptions": [ - "The AWS::Timestream::ScheduledQuery resource creates a Timestream Scheduled Query. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-scheduledquery.html)" + "Definition of AWS::QBusiness::WebExperience Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-webexperience.html)" ] }, "Properties": { - "$ref": "resources/aws-timestream-scheduledquery.json" + "$ref": "resources/aws-qbusiness-webexperience.json" } }, "required": [ @@ -30415,9 +30415,9 @@ ], "additionalProperties": false }, - "AWS_IoT_SoftwarePackage": { + "AWS_LakeFormation_Resource": { "type": "object", - "markdownDescription": "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackage.html)", + "markdownDescription": "Resource Type definition for AWS::LakeFormation::Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html)", "allOf": [ { "type": "object", @@ -30425,18 +30425,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::SoftwarePackage" + "AWS::LakeFormation::Resource" ], "markdownEnumDescriptions": [ - "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackage.html)" + "Resource Type definition for AWS::LakeFormation::Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-softwarepackage.json" + "$ref": "resources/aws-lakeformation-resource.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -30445,9 +30446,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_SmsTemplate": { + "AWS_QuickSight_Theme": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::SmsTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smstemplate.html)", + "markdownDescription": "Definition of the AWS::QuickSight::Theme Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-theme.html)", "allOf": [ { "type": "object", @@ -30455,14 +30456,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::SmsTemplate" + "AWS::QuickSight::Theme" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::SmsTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smstemplate.html)" + "Definition of the AWS::QuickSight::Theme Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-theme.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-smstemplate.json" + "$ref": "resources/aws-quicksight-theme.json" } }, "required": [ @@ -30476,9 +30477,9 @@ ], "additionalProperties": false }, - "AWS_S3Tables_Namespace": { + "AWS_KafkaConnect_WorkerConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::S3Tables::Namespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html)", + "markdownDescription": "The configuration of the workers, which are the processes that run the connector logic. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html)", "allOf": [ { "type": "object", @@ -30486,14 +30487,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Tables::Namespace" + "AWS::KafkaConnect::WorkerConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::S3Tables::Namespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-namespace.html)" + "The configuration of the workers, which are the processes that run the connector logic. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-s3tables-namespace.json" + "$ref": "resources/aws-kafkaconnect-workerconfiguration.json" } }, "required": [ @@ -30507,9 +30508,9 @@ ], "additionalProperties": false }, - "AWS_EntityResolution_SchemaMapping": { + "AWS_Glue_TableOptimizer": { "type": "object", - "markdownDescription": "SchemaMapping defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-schemamapping.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::TableOptimizer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html)", "allOf": [ { "type": "object", @@ -30517,14 +30518,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EntityResolution::SchemaMapping" + "AWS::Glue::TableOptimizer" ], "markdownEnumDescriptions": [ - "SchemaMapping defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-schemamapping.html)" + "Resource Type definition for AWS::Glue::TableOptimizer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html)" ] }, "Properties": { - "$ref": "resources/aws-entityresolution-schemamapping.json" + "$ref": "resources/aws-glue-tableoptimizer.json" } }, "required": [ @@ -30538,9 +30539,9 @@ ], "additionalProperties": false }, - "AWS_FIS_ExperimentTemplate": { + "AWS_Greengrass_ResourceDefinition": { "type": "object", - "markdownDescription": "Resource schema for AWS::FIS::ExperimentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::ResourceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html)", "allOf": [ { "type": "object", @@ -30548,14 +30549,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FIS::ExperimentTemplate" + "AWS::Greengrass::ResourceDefinition" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::FIS::ExperimentTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html)" + "Resource Type definition for AWS::Greengrass::ResourceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-fis-experimenttemplate.json" + "$ref": "resources/aws-greengrass-resourcedefinition.json" } }, "required": [ @@ -30569,9 +30570,9 @@ ], "additionalProperties": false }, - "AWS_IoT_DomainConfiguration": { + "AWS_IAM_ManagedPolicy": { "type": "object", - "markdownDescription": "Create and manage a Domain Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html)", + "markdownDescription": "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html)", "allOf": [ { "type": "object", @@ -30579,18 +30580,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::DomainConfiguration" + "AWS::IAM::ManagedPolicy" ], "markdownEnumDescriptions": [ - "Create and manage a Domain Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html)" + "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-domainconfiguration.json" + "$ref": "resources/aws-iam-managedpolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -30599,9 +30601,9 @@ ], "additionalProperties": false }, - "AWS_Backup_BackupPlan": { + "AWS_ApiGateway_BasePathMapping": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Backup::BackupPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html)", + "markdownDescription": "The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL. Supported only for public custom domain names. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html)", "allOf": [ { "type": "object", @@ -30609,14 +30611,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::BackupPlan" + "AWS::ApiGateway::BasePathMapping" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Backup::BackupPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html)" + "The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL. Supported only for public custom domain names. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-backupplan.json" + "$ref": "resources/aws-apigateway-basepathmapping.json" } }, "required": [ @@ -30630,9 +30632,9 @@ ], "additionalProperties": false }, - "AWS_Config_ConfigurationRecorder": { + "AWS_Route53GlobalResolver_FirewallRule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::ConfigurationRecorder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::FirewallRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-firewallrule.html)", "allOf": [ { "type": "object", @@ -30640,14 +30642,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::ConfigurationRecorder" + "AWS::Route53GlobalResolver::FirewallRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::ConfigurationRecorder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html)" + "Resource schema for AWS::Route53GlobalResolver::FirewallRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-firewallrule.html)" ] }, "Properties": { - "$ref": "resources/aws-config-configurationrecorder.json" + "$ref": "resources/aws-route53globalresolver-firewallrule.json" } }, "required": [ @@ -30661,9 +30663,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_Listener": { + "AWS_QBusiness_Index": { "type": "object", - "markdownDescription": "Creates a listener for a service. Before you start using your Amazon VPC Lattice service, you must add one or more listeners. A listener is a process that checks for connection requests to your services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-listener.html)", + "markdownDescription": "Definition of AWS::QBusiness::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-index.html)", "allOf": [ { "type": "object", @@ -30671,14 +30673,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::Listener" + "AWS::QBusiness::Index" ], "markdownEnumDescriptions": [ - "Creates a listener for a service. Before you start using your Amazon VPC Lattice service, you must add one or more listeners. A listener is a process that checks for connection requests to your services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-listener.html)" + "Definition of AWS::QBusiness::Index Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-index.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-listener.json" + "$ref": "resources/aws-qbusiness-index.json" } }, "required": [ @@ -30692,9 +30694,9 @@ ], "additionalProperties": false }, - "AWS_IAM_Role": { + "AWS_QuickSight_CustomPermissions": { "type": "object", - "markdownDescription": "Creates a new role for your AWS-account.\n For more information about roles, see [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) in the *IAM User Guide*. For information about quotas for role names and the number of roles you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)", + "markdownDescription": "Definition of the AWS::QuickSight::CustomPermissions Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-custompermissions.html)", "allOf": [ { "type": "object", @@ -30702,14 +30704,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::Role" + "AWS::QuickSight::CustomPermissions" ], "markdownEnumDescriptions": [ - "Creates a new role for your AWS-account.\n For more information about roles, see [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) in the *IAM User Guide*. For information about quotas for role names and the number of roles you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)" + "Definition of the AWS::QuickSight::CustomPermissions Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-custompermissions.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-role.json" + "$ref": "resources/aws-quicksight-custompermissions.json" } }, "required": [ @@ -30723,9 +30725,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorAD_Template": { + "AWS_Cassandra_Type": { "type": "object", - "markdownDescription": "Represents a template that defines certificate configurations, both for issuance and client handling \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-template.html)", + "markdownDescription": "Resource schema for AWS::Cassandra::Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-type.html)", "allOf": [ { "type": "object", @@ -30733,14 +30735,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorAD::Template" + "AWS::Cassandra::Type" ], "markdownEnumDescriptions": [ - "Represents a template that defines certificate configurations, both for issuance and client handling \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-template.html)" + "Resource schema for AWS::Cassandra::Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-type.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorad-template.json" + "$ref": "resources/aws-cassandra-type.json" } }, "required": [ @@ -30754,9 +30756,9 @@ ], "additionalProperties": false }, - "AWS_SQS_Queue": { + "AWS_Transfer_Certificate": { "type": "object", - "markdownDescription": "The ``AWS::SQS::Queue`` resource creates an SQS standard or FIFO queue.\n Keep the following caveats in mind:\n + If you don't specify the ``FifoQueue`` property, SQS creates a standard queue.\n You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Developer Guide*. \n + If you don't provide a value for a property, the queue is created with the default value for the property.\n + If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.\n + To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.\n \n For more information about creating FIFO (first-in-first-out) queues, see [Creating an queue ()](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/create-queue-cloudformation.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html)", + "markdownDescription": "Resource Type definition for AWS::Transfer::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html)", "allOf": [ { "type": "object", @@ -30764,18 +30766,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SQS::Queue" + "AWS::Transfer::Certificate" ], "markdownEnumDescriptions": [ - "The ``AWS::SQS::Queue`` resource creates an SQS standard or FIFO queue.\n Keep the following caveats in mind:\n + If you don't specify the ``FifoQueue`` property, SQS creates a standard queue.\n You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Developer Guide*. \n + If you don't provide a value for a property, the queue is created with the default value for the property.\n + If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.\n + To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.\n \n For more information about creating FIFO (first-in-first-out) queues, see [Creating an queue ()](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/create-queue-cloudformation.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html)" + "Resource Type definition for AWS::Transfer::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html)" ] }, "Properties": { - "$ref": "resources/aws-sqs-queue.json" + "$ref": "resources/aws-transfer-certificate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -30784,9 +30787,9 @@ ], "additionalProperties": false }, - "AWS_RedshiftServerless_Namespace": { + "AWS_Backup_BackupVault": { "type": "object", - "markdownDescription": "Definition of AWS::RedshiftServerless::Namespace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html)", + "markdownDescription": "Resource Type definition for AWS::Backup::BackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html)", "allOf": [ { "type": "object", @@ -30794,14 +30797,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RedshiftServerless::Namespace" + "AWS::Backup::BackupVault" ], "markdownEnumDescriptions": [ - "Definition of AWS::RedshiftServerless::Namespace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html)" + "Resource Type definition for AWS::Backup::BackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html)" ] }, "Properties": { - "$ref": "resources/aws-redshiftserverless-namespace.json" + "$ref": "resources/aws-backup-backupvault.json" } }, "required": [ @@ -30815,9 +30818,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IpPoolRouteTableAssociation": { + "AWS_ApiGateway_VpcLink": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::IpPoolRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ippoolroutetableassociation.html)", + "markdownDescription": "The ``AWS::ApiGateway::VpcLink`` resource creates an API Gateway VPC link for a REST API to access resources in an Amazon Virtual Private Cloud (VPC). For more information, see [vpclink:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateVpcLink.html) in the ``Amazon API Gateway REST API Reference``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html)", "allOf": [ { "type": "object", @@ -30825,14 +30828,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IpPoolRouteTableAssociation" + "AWS::ApiGateway::VpcLink" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::IpPoolRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ippoolroutetableassociation.html)" + "The ``AWS::ApiGateway::VpcLink`` resource creates an API Gateway VPC link for a REST API to access resources in an Amazon Virtual Private Cloud (VPC). For more information, see [vpclink:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateVpcLink.html) in the ``Amazon API Gateway REST API Reference``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ippoolroutetableassociation.json" + "$ref": "resources/aws-apigateway-vpclink.json" } }, "required": [ @@ -30846,9 +30849,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_OrganizationalUnitAssociation": { + "AWS_MediaConnect_FlowOutput": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Notifications::OrganizationalUnitAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-organizationalunitassociation.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::FlowOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html)", "allOf": [ { "type": "object", @@ -30856,14 +30859,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::OrganizationalUnitAssociation" + "AWS::MediaConnect::FlowOutput" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Notifications::OrganizationalUnitAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-organizationalunitassociation.html)" + "Resource schema for AWS::MediaConnect::FlowOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html)" ] }, "Properties": { - "$ref": "resources/aws-notifications-organizationalunitassociation.json" + "$ref": "resources/aws-mediaconnect-flowoutput.json" } }, "required": [ @@ -30877,9 +30880,9 @@ ], "additionalProperties": false }, - "AWS_MemoryDB_ACL": { + "AWS_IoTFleetWise_ModelManifest": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MemoryDB::ACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::ModelManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-modelmanifest.html)", "allOf": [ { "type": "object", @@ -30887,14 +30890,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MemoryDB::ACL" + "AWS::IoTFleetWise::ModelManifest" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MemoryDB::ACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html)" + "Definition of AWS::IoTFleetWise::ModelManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-modelmanifest.html)" ] }, "Properties": { - "$ref": "resources/aws-memorydb-acl.json" + "$ref": "resources/aws-iotfleetwise-modelmanifest.json" } }, "required": [ @@ -30908,9 +30911,9 @@ ], "additionalProperties": false }, - "AWS_PCAConnectorSCEP_Challenge": { + "AWS_DMS_DataMigration": { "type": "object", - "markdownDescription": "Represents a SCEP Challenge that is used for certificate enrollment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-challenge.html)", + "markdownDescription": "Resource schema for AWS::DMS::DataMigration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html)", "allOf": [ { "type": "object", @@ -30918,14 +30921,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PCAConnectorSCEP::Challenge" + "AWS::DMS::DataMigration" ], "markdownEnumDescriptions": [ - "Represents a SCEP Challenge that is used for certificate enrollment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-challenge.html)" + "Resource schema for AWS::DMS::DataMigration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-datamigration.html)" ] }, "Properties": { - "$ref": "resources/aws-pcaconnectorscep-challenge.json" + "$ref": "resources/aws-dms-datamigration.json" } }, "required": [ @@ -30939,9 +30942,9 @@ ], "additionalProperties": false }, - "AWS_MediaConvert_JobTemplate": { + "AWS_S3_StorageLensGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaConvert::JobTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html)", + "markdownDescription": "The AWS::S3::StorageLensGroup resource is an Amazon S3 resource type that you can use to create Storage Lens Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelensgroup.html)", "allOf": [ { "type": "object", @@ -30949,14 +30952,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConvert::JobTemplate" + "AWS::S3::StorageLensGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaConvert::JobTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html)" + "The AWS::S3::StorageLensGroup resource is an Amazon S3 resource type that you can use to create Storage Lens Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelensgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconvert-jobtemplate.json" + "$ref": "resources/aws-s3-storagelensgroup.json" } }, "required": [ @@ -30970,9 +30973,9 @@ ], "additionalProperties": false }, - "AWS_WAF_WebACL": { + "AWS_Grafana_Workspace": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html)", + "markdownDescription": "Definition of AWS::Grafana::Workspace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-grafana-workspace.html)", "allOf": [ { "type": "object", @@ -30980,14 +30983,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::WebACL" + "AWS::Grafana::Workspace" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html)" + "Definition of AWS::Grafana::Workspace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-grafana-workspace.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-webacl.json" + "$ref": "resources/aws-grafana-workspace.json" } }, "required": [ @@ -31001,9 +31004,9 @@ ], "additionalProperties": false }, - "AWS_IoT_TopicRule": { + "AWS_Organizations_Policy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::TopicRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html)", + "markdownDescription": "Policies in AWS Organizations enable you to manage different features of the AWS accounts in your organization. You can use policies when all features are enabled in your organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-policy.html)", "allOf": [ { "type": "object", @@ -31011,14 +31014,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::TopicRule" + "AWS::Organizations::Policy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::TopicRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html)" + "Policies in AWS Organizations enable you to manage different features of the AWS accounts in your organization. You can use policies when all features are enabled in your organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-policy.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-topicrule.json" + "$ref": "resources/aws-organizations-policy.json" } }, "required": [ @@ -31032,9 +31035,9 @@ ], "additionalProperties": false }, - "AWS_DMS_InstanceProfile": { + "AWS_WorkspacesInstances_WorkspaceInstance": { "type": "object", - "markdownDescription": "Resource schema for AWS::DMS::InstanceProfile. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html)", + "markdownDescription": "Resource Type definition for AWS::WorkspacesInstances::WorkspaceInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-workspaceinstance.html)", "allOf": [ { "type": "object", @@ -31042,14 +31045,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DMS::InstanceProfile" + "AWS::WorkspacesInstances::WorkspaceInstance" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DMS::InstanceProfile. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-instanceprofile.html)" + "Resource Type definition for AWS::WorkspacesInstances::WorkspaceInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-workspaceinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-dms-instanceprofile.json" + "$ref": "resources/aws-workspacesinstances-workspaceinstance.json" } }, "required": [ @@ -31062,9 +31065,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_CacheCluster": { + "AWS_SNS_TopicPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::CacheCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-cachecluster.html)", + "markdownDescription": "The ``AWS::SNS::TopicPolicy`` resource associates SNS topics with a policy. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sns-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicpolicy.html)", "allOf": [ { "type": "object", @@ -31072,14 +31075,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::CacheCluster" + "AWS::SNS::TopicPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::CacheCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-cachecluster.html)" + "The ``AWS::SNS::TopicPolicy`` resource associates SNS topics with a policy. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sns-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-cachecluster.json" + "$ref": "resources/aws-sns-topicpolicy.json" } }, "required": [ @@ -31093,9 +31096,9 @@ ], "additionalProperties": false }, - "AWS_Timestream_Table": { + "AWS_Greengrass_ResourceDefinitionVersion": { "type": "object", - "markdownDescription": "The AWS::Timestream::Table resource creates a Timestream Table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-table.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::ResourceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html)", "allOf": [ { "type": "object", @@ -31103,14 +31106,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Timestream::Table" + "AWS::Greengrass::ResourceDefinitionVersion" ], "markdownEnumDescriptions": [ - "The AWS::Timestream::Table resource creates a Timestream Table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-table.html)" + "Resource Type definition for AWS::Greengrass::ResourceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html)" ] }, "Properties": { - "$ref": "resources/aws-timestream-table.json" + "$ref": "resources/aws-greengrass-resourcedefinitionversion.json" } }, "required": [ @@ -31124,9 +31127,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_RateBasedRule": { + "AWS_ObservabilityAdmin_TelemetryEnrichment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::RateBasedRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html)", + "markdownDescription": "AWS::ObservabilityAdmin::TelemetryEnrichment cloudformation resource enables the resource tags for telemetry feature in CloudWatch to enrich infrastructure metrics with AWS resource tags. For more details: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/resource-tags-for-telemetry.html \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetryenrichment.html)", "allOf": [ { "type": "object", @@ -31134,19 +31137,18 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::RateBasedRule" + "AWS::ObservabilityAdmin::TelemetryEnrichment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::RateBasedRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html)" + "AWS::ObservabilityAdmin::TelemetryEnrichment cloudformation resource enables the resource tags for telemetry feature in CloudWatch to enrich infrastructure metrics with AWS resource tags. For more details: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/resource-tags-for-telemetry.html \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetryenrichment.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-ratebasedrule.json" + "$ref": "resources/aws-observabilityadmin-telemetryenrichment.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -31155,9 +31157,9 @@ ], "additionalProperties": false }, - "AWS_Logs_AccountPolicy": { + "AWS_WorkSpacesThinClient_Environment": { "type": "object", - "markdownDescription": "The AWS::Logs::AccountPolicy resource specifies a CloudWatch Logs AccountPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html)", + "markdownDescription": "Resource type definition for AWS::WorkSpacesThinClient::Environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html)", "allOf": [ { "type": "object", @@ -31165,14 +31167,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::AccountPolicy" + "AWS::WorkSpacesThinClient::Environment" ], "markdownEnumDescriptions": [ - "The AWS::Logs::AccountPolicy resource specifies a CloudWatch Logs AccountPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html)" + "Resource type definition for AWS::WorkSpacesThinClient::Environment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-accountpolicy.json" + "$ref": "resources/aws-workspacesthinclient-environment.json" } }, "required": [ @@ -31186,9 +31188,9 @@ ], "additionalProperties": false }, - "AWS_S3Outposts_Bucket": { + "AWS_MediaTailor_ChannelPolicy": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::S3Outposts::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html)", + "markdownDescription": "Definition of AWS::MediaTailor::ChannelPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channelpolicy.html)", "allOf": [ { "type": "object", @@ -31196,14 +31198,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3Outposts::Bucket" + "AWS::MediaTailor::ChannelPolicy" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::S3Outposts::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html)" + "Definition of AWS::MediaTailor::ChannelPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channelpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-s3outposts-bucket.json" + "$ref": "resources/aws-mediatailor-channelpolicy.json" } }, "required": [ @@ -31217,9 +31219,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_VpcEndpoint": { + "AWS_ServiceCatalog_StackSetConstraint": { "type": "object", - "markdownDescription": "Amazon OpenSearchServerless vpc endpoint resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-vpcendpoint.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::StackSetConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html)", "allOf": [ { "type": "object", @@ -31227,14 +31229,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::VpcEndpoint" + "AWS::ServiceCatalog::StackSetConstraint" ], "markdownEnumDescriptions": [ - "Amazon OpenSearchServerless vpc endpoint resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-vpcendpoint.html)" + "Resource Type definition for AWS::ServiceCatalog::StackSetConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-vpcendpoint.json" + "$ref": "resources/aws-servicecatalog-stacksetconstraint.json" } }, "required": [ @@ -31248,9 +31250,9 @@ ], "additionalProperties": false }, - "AWS_RAM_ResourceShare": { + "AWS_SSM_PatchBaseline": { "type": "object", - "markdownDescription": "Resource type definition for AWS::RAM::ResourceShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html)", + "markdownDescription": "Resource Type definition for AWS::SSM::PatchBaseline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html)", "allOf": [ { "type": "object", @@ -31258,14 +31260,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RAM::ResourceShare" + "AWS::SSM::PatchBaseline" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::RAM::ResourceShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html)" + "Resource Type definition for AWS::SSM::PatchBaseline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html)" ] }, "Properties": { - "$ref": "resources/aws-ram-resourceshare.json" + "$ref": "resources/aws-ssm-patchbaseline.json" } }, "required": [ @@ -31279,9 +31281,9 @@ ], "additionalProperties": false }, - "AWS_ACMPCA_CertificateAuthority": { + "AWS_Personalize_Dataset": { "type": "object", - "markdownDescription": "Private certificate authority. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html)", + "markdownDescription": "Resource schema for AWS::Personalize::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html)", "allOf": [ { "type": "object", @@ -31289,14 +31291,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ACMPCA::CertificateAuthority" + "AWS::Personalize::Dataset" ], "markdownEnumDescriptions": [ - "Private certificate authority. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html)" + "Resource schema for AWS::Personalize::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html)" ] }, "Properties": { - "$ref": "resources/aws-acmpca-certificateauthority.json" + "$ref": "resources/aws-personalize-dataset.json" } }, "required": [ @@ -31310,9 +31312,9 @@ ], "additionalProperties": false }, - "AWS_Neptune_DBInstance": { + "AWS_AmazonMQ_Configuration": { "type": "object", - "markdownDescription": "The AWS::Neptune::DBInstance resource creates an Amazon Neptune DB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html)", + "markdownDescription": "Resource Type definition for AWS::AmazonMQ::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html)", "allOf": [ { "type": "object", @@ -31320,14 +31322,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Neptune::DBInstance" + "AWS::AmazonMQ::Configuration" ], "markdownEnumDescriptions": [ - "The AWS::Neptune::DBInstance resource creates an Amazon Neptune DB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html)" + "Resource Type definition for AWS::AmazonMQ::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html)" ] }, "Properties": { - "$ref": "resources/aws-neptune-dbinstance.json" + "$ref": "resources/aws-amazonmq-configuration.json" } }, "required": [ @@ -31341,9 +31343,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_EventStream": { + "AWS_Shield_DRTAccess": { "type": "object", - "markdownDescription": "An Event Stream resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventstream.html)", + "markdownDescription": "Config the role and list of Amazon S3 log buckets used by the Shield Response Team (SRT) to access your AWS account while assisting with attack mitigation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-drtaccess.html)", "allOf": [ { "type": "object", @@ -31351,14 +31353,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::EventStream" + "AWS::Shield::DRTAccess" ], "markdownEnumDescriptions": [ - "An Event Stream resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventstream.html)" + "Config the role and list of Amazon S3 log buckets used by the Shield Response Team (SRT) to access your AWS account while assisting with attack mitigation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-drtaccess.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-eventstream.json" + "$ref": "resources/aws-shield-drtaccess.json" } }, "required": [ @@ -31372,9 +31374,9 @@ ], "additionalProperties": false }, - "AWS_CloudWatch_AnomalyDetector": { + "AWS_EC2_NetworkInterfacePermission": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudWatch::AnomalyDetector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::NetworkInterfacePermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html)", "allOf": [ { "type": "object", @@ -31382,18 +31384,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudWatch::AnomalyDetector" + "AWS::EC2::NetworkInterfacePermission" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudWatch::AnomalyDetector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html)" + "Resource Type definition for AWS::EC2::NetworkInterfacePermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudwatch-anomalydetector.json" + "$ref": "resources/aws-ec2-networkinterfacepermission.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31402,9 +31405,9 @@ ], "additionalProperties": false }, - "AWS_ODB_OdbPeeringConnection": { + "AWS_Cognito_ManagedLoginBranding": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ODB::OdbPeeringConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbpeeringconnection.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::ManagedLoginBranding \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-managedloginbranding.html)", "allOf": [ { "type": "object", @@ -31412,18 +31415,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ODB::OdbPeeringConnection" + "AWS::Cognito::ManagedLoginBranding" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ODB::OdbPeeringConnection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-odbpeeringconnection.html)" + "Resource Type definition for AWS::Cognito::ManagedLoginBranding \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-managedloginbranding.html)" ] }, "Properties": { - "$ref": "resources/aws-odb-odbpeeringconnection.json" + "$ref": "resources/aws-cognito-managedloginbranding.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31432,9 +31436,9 @@ ], "additionalProperties": false }, - "AWS_Detective_OrganizationAdmin": { + "AWS_IoT_Command": { "type": "object", - "markdownDescription": "Resource schema for AWS::Detective::OrganizationAdmin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-organizationadmin.html)", + "markdownDescription": "Represents the resource definition of AWS IoT Command. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-command.html)", "allOf": [ { "type": "object", @@ -31442,14 +31446,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Detective::OrganizationAdmin" + "AWS::IoT::Command" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Detective::OrganizationAdmin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-organizationadmin.html)" + "Represents the resource definition of AWS IoT Command. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-command.html)" ] }, "Properties": { - "$ref": "resources/aws-detective-organizationadmin.json" + "$ref": "resources/aws-iot-command.json" } }, "required": [ @@ -31463,9 +31467,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_Environment": { + "AWS_DAX_SubnetGroup": { "type": "object", - "markdownDescription": "Definition of AWS::DataZone::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environment.html)", + "markdownDescription": "Resource Type definition for AWS::DAX::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html)", "allOf": [ { "type": "object", @@ -31473,14 +31477,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::Environment" + "AWS::DAX::SubnetGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::DataZone::Environment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environment.html)" + "Resource Type definition for AWS::DAX::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-environment.json" + "$ref": "resources/aws-dax-subnetgroup.json" } }, "required": [ @@ -31494,9 +31498,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_Image": { + "AWS_Deadline_QueueFleetAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::QueueFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html)", "allOf": [ { "type": "object", @@ -31504,18 +31508,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::Image" + "AWS::Deadline::QueueFleetAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html)" + "Resource Type definition for AWS::Deadline::QueueFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-image.json" + "$ref": "resources/aws-deadline-queuefleetassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31524,9 +31529,9 @@ ], "additionalProperties": false }, - "AWS_CustomerProfiles_SegmentDefinition": { + "AWS_IAM_RolePolicy": { "type": "object", - "markdownDescription": "A segment definition resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-segmentdefinition.html)", + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM role.\n When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html). You can update a role's trust policy using [UpdateAssumeRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html). For information about roles, see [roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) in the *IAM User Guide*.\n A role can also have a managed policy attached to it. To attach a managed policy to a role, use [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed with a role, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html)", "allOf": [ { "type": "object", @@ -31534,14 +31539,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CustomerProfiles::SegmentDefinition" + "AWS::IAM::RolePolicy" ], "markdownEnumDescriptions": [ - "A segment definition resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-segmentdefinition.html)" + "Adds or updates an inline policy document that is embedded in the specified IAM role.\n When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html). You can update a role's trust policy using [UpdateAssumeRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html). For information about roles, see [roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) in the *IAM User Guide*.\n A role can also have a managed policy attached to it. To attach a managed policy to a role, use [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed with a role, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-customerprofiles-segmentdefinition.json" + "$ref": "resources/aws-iam-rolepolicy.json" } }, "required": [ @@ -31555,9 +31560,9 @@ ], "additionalProperties": false }, - "AWS_Connect_Rule": { + "AWS_ApiGatewayV2_Authorizer": { "type": "object", - "markdownDescription": "Creates a rule for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-rule.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::Authorizer`` resource creates an authorizer for a WebSocket API or an HTTP API. To learn more, see [Controlling and managing access to a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-control-access.html) and [Controlling and managing access to an HTTP API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html)", "allOf": [ { "type": "object", @@ -31565,14 +31570,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::Rule" + "AWS::ApiGatewayV2::Authorizer" ], "markdownEnumDescriptions": [ - "Creates a rule for the specified CON instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-rule.html)" + "The ``AWS::ApiGatewayV2::Authorizer`` resource creates an authorizer for a WebSocket API or an HTTP API. To learn more, see [Controlling and managing access to a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-control-access.html) and [Controlling and managing access to an HTTP API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-rule.json" + "$ref": "resources/aws-apigatewayv2-authorizer.json" } }, "required": [ @@ -31586,9 +31591,9 @@ ], "additionalProperties": false }, - "AWS_LicenseManager_Grant": { + "AWS_ApiGatewayV2_Route": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::Route`` resource creates a route for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html)", "allOf": [ { "type": "object", @@ -31596,18 +31601,19 @@ "Type": { "type": "string", "enum": [ - "AWS::LicenseManager::Grant" + "AWS::ApiGatewayV2::Route" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html)" + "The ``AWS::ApiGatewayV2::Route`` resource creates a route for an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html)" ] }, "Properties": { - "$ref": "resources/aws-licensemanager-grant.json" + "$ref": "resources/aws-apigatewayv2-route.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31616,9 +31622,9 @@ ], "additionalProperties": false }, - "AWS_Timestream_InfluxDBInstance": { + "AWS_ECS_TaskSet": { "type": "object", - "markdownDescription": "The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html)", + "markdownDescription": "Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html)", "allOf": [ { "type": "object", @@ -31626,18 +31632,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Timestream::InfluxDBInstance" + "AWS::ECS::TaskSet" ], "markdownEnumDescriptions": [ - "The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html)" + "Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html)" ] }, "Properties": { - "$ref": "resources/aws-timestream-influxdbinstance.json" + "$ref": "resources/aws-ecs-taskset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31646,9 +31653,9 @@ ], "additionalProperties": false }, - "AWS_Deadline_QueueLimitAssociation": { + "AWS_Connect_ContactFlowModule": { "type": "object", - "markdownDescription": "Definition of AWS::Deadline::QueueLimitAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::ContactFlowModule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html)", "allOf": [ { "type": "object", @@ -31656,14 +31663,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Deadline::QueueLimitAssociation" + "AWS::Connect::ContactFlowModule" ], "markdownEnumDescriptions": [ - "Definition of AWS::Deadline::QueueLimitAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html)" + "Resource Type definition for AWS::Connect::ContactFlowModule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html)" ] }, "Properties": { - "$ref": "resources/aws-deadline-queuelimitassociation.json" + "$ref": "resources/aws-connect-contactflowmodule.json" } }, "required": [ @@ -31677,9 +31684,9 @@ ], "additionalProperties": false }, - "AWS_Events_Connection": { + "AWS_ECS_ExpressGatewayService": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Events::Connection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html)", + "markdownDescription": "Resource Type definition for AWS::ECS::ExpressGatewayService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-expressgatewayservice.html)", "allOf": [ { "type": "object", @@ -31687,18 +31694,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::Connection" + "AWS::ECS::ExpressGatewayService" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Events::Connection. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html)" + "Resource Type definition for AWS::ECS::ExpressGatewayService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-expressgatewayservice.html)" ] }, "Properties": { - "$ref": "resources/aws-events-connection.json" + "$ref": "resources/aws-ecs-expressgatewayservice.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31707,9 +31715,9 @@ ], "additionalProperties": false }, - "AWS_SSMGuiConnect_Preferences": { + "AWS_CloudFront_ConnectionGroup": { "type": "object", - "markdownDescription": "Definition of AWS::SSMGuiConnect::Preferences Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmguiconnect-preferences.html)", + "markdownDescription": "The connection group for your distribution tenants. When you first create a distribution tenant and you don't specify a connection group, CloudFront will automatically create a default connection group for you. When you create a new distribution tenant and don't specify a connection group, the default one will be associated with your distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html)", "allOf": [ { "type": "object", @@ -31717,18 +31725,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMGuiConnect::Preferences" + "AWS::CloudFront::ConnectionGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::SSMGuiConnect::Preferences Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmguiconnect-preferences.html)" + "The connection group for your distribution tenants. When you first create a distribution tenant and you don't specify a connection group, CloudFront will automatically create a default connection group for you. When you create a new distribution tenant and don't specify a connection group, the default one will be associated with your distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmguiconnect-preferences.json" + "$ref": "resources/aws-cloudfront-connectiongroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -31737,9 +31746,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalogAppRegistry_AttributeGroup": { + "AWS_Config_ConformancePack": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroup.html)", + "markdownDescription": "A conformance pack is a collection of AWS Config rules and remediation actions that can be easily deployed as a single entity in an account and a region or across an entire AWS Organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html)", "allOf": [ { "type": "object", @@ -31747,14 +31756,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalogAppRegistry::AttributeGroup" + "AWS::Config::ConformancePack" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-attributegroup.html)" + "A conformance pack is a collection of AWS Config rules and remediation actions that can be easily deployed as a single entity in an account and a region or across an entire AWS Organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalogappregistry-attributegroup.json" + "$ref": "resources/aws-config-conformancepack.json" } }, "required": [ @@ -31768,9 +31777,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_UserPoolClient": { + "AWS_AppIntegrations_Application": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolClient \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html)", + "markdownDescription": "Resource Type definition for AWS:AppIntegrations::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html)", "allOf": [ { "type": "object", @@ -31778,14 +31787,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::UserPoolClient" + "AWS::AppIntegrations::Application" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::UserPoolClient \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html)" + "Resource Type definition for AWS:AppIntegrations::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-userpoolclient.json" + "$ref": "resources/aws-appintegrations-application.json" } }, "required": [ @@ -31799,9 +31808,9 @@ ], "additionalProperties": false }, - "AWS_Comprehend_DocumentClassifier": { + "AWS_PaymentCryptography_Key": { "type": "object", - "markdownDescription": "Document Classifier enables training document classifier models. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-documentclassifier.html)", + "markdownDescription": "Definition of AWS::PaymentCryptography::Key Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html)", "allOf": [ { "type": "object", @@ -31809,14 +31818,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Comprehend::DocumentClassifier" + "AWS::PaymentCryptography::Key" ], "markdownEnumDescriptions": [ - "Document Classifier enables training document classifier models. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-documentclassifier.html)" + "Definition of AWS::PaymentCryptography::Key Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html)" ] }, "Properties": { - "$ref": "resources/aws-comprehend-documentclassifier.json" + "$ref": "resources/aws-paymentcryptography-key.json" } }, "required": [ @@ -31830,9 +31839,9 @@ ], "additionalProperties": false }, - "AWS_SMSVOICE_PhoneNumber": { + "AWS_IoTEvents_DetectorModel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SMSVOICE::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html)", + "markdownDescription": "The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a *detector model* (a model of your equipment or process) using *states*. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*.\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) all detector instances created by the model are reset to their initial states. (The detector's ``state``, and the values of any variables and timers are reset.)\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) the version number of the detector model is incremented. (A detector model with version number 1 before the update has version number 2 after the update succeeds.)\n If you attempt to update a detector model using CFN and the update does not succeed, the system may, in some cases, restore the original detector model. When this occurs, the detector model's version is incremented twice (for example, from version 1 to version 3) and the detector instances are reset.\n Also, be aware that if you attempt to update several detector models at once using CFN, some updates may succeed and others fail. In this case, the effects on each detector model's detector instances and version number depend on whether the update succeeded or failed, with the results as stated. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html)", "allOf": [ { "type": "object", @@ -31840,14 +31849,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SMSVOICE::PhoneNumber" + "AWS::IoTEvents::DetectorModel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SMSVOICE::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html)" + "The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a *detector model* (a model of your equipment or process) using *states*. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*.\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) all detector instances created by the model are reset to their initial states. (The detector's ``state``, and the values of any variables and timers are reset.)\n When you successfully update a detector model (using the ITE console, ITE API or CLI commands, or CFN) the version number of the detector model is incremented. (A detector model with version number 1 before the update has version number 2 after the update succeeds.)\n If you attempt to update a detector model using CFN and the update does not succeed, the system may, in some cases, restore the original detector model. When this occurs, the detector model's version is incremented twice (for example, from version 1 to version 3) and the detector instances are reset.\n Also, be aware that if you attempt to update several detector models at once using CFN, some updates may succeed and others fail. In this case, the effects on each detector model's detector instances and version number depend on whether the update succeeded or failed, with the results as stated. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html)" ] }, "Properties": { - "$ref": "resources/aws-smsvoice-phonenumber.json" + "$ref": "resources/aws-iotevents-detectormodel.json" } }, "required": [ @@ -31861,9 +31870,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_Layer": { + "AWS_ElasticLoadBalancingV2_LoadBalancer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::Layer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html)", + "markdownDescription": "Specifies an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html)", "allOf": [ { "type": "object", @@ -31871,19 +31880,18 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::Layer" + "AWS::ElasticLoadBalancingV2::LoadBalancer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::Layer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html)" + "Specifies an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-layer.json" + "$ref": "resources/aws-elasticloadbalancingv2-loadbalancer.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -31892,9 +31900,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_Script": { + "AWS_CodeStarConnections_SyncConfiguration": { "type": "object", - "markdownDescription": "The AWS::GameLift::Script resource creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html)", + "markdownDescription": "Schema for AWS::CodeStarConnections::SyncConfiguration resource which is used to enables an AWS resource to be synchronized from a source-provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html)", "allOf": [ { "type": "object", @@ -31902,14 +31910,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::Script" + "AWS::CodeStarConnections::SyncConfiguration" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::Script resource creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html)" + "Schema for AWS::CodeStarConnections::SyncConfiguration resource which is used to enables an AWS resource to be synchronized from a source-provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-script.json" + "$ref": "resources/aws-codestarconnections-syncconfiguration.json" } }, "required": [ @@ -31923,9 +31931,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_Workflow": { + "AWS_ElastiCache_ReplicationGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Transfer::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-workflow.html)", + "markdownDescription": "Resource type definition for AWS::ElastiCache::ReplicationGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html)", "allOf": [ { "type": "object", @@ -31933,14 +31941,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::Workflow" + "AWS::ElastiCache::ReplicationGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Transfer::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-workflow.html)" + "Resource type definition for AWS::ElastiCache::ReplicationGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-workflow.json" + "$ref": "resources/aws-elasticache-replicationgroup.json" } }, "required": [ @@ -31954,9 +31962,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_Stack": { + "AWS_NetworkManager_ConnectPeer": { "type": "object", - "markdownDescription": "The AWS::CloudFormation::Stack resource nests a stack as a resource in a top-level template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stack.html)", + "markdownDescription": "AWS::NetworkManager::ConnectPeer Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectpeer.html)", "allOf": [ { "type": "object", @@ -31964,14 +31972,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::Stack" + "AWS::NetworkManager::ConnectPeer" ], "markdownEnumDescriptions": [ - "The AWS::CloudFormation::Stack resource nests a stack as a resource in a top-level template. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stack.html)" + "AWS::NetworkManager::ConnectPeer Resource Type Definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectpeer.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-stack.json" + "$ref": "resources/aws-networkmanager-connectpeer.json" } }, "required": [ @@ -31985,9 +31993,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_MessageTemplateVersion": { + "AWS_XRay_ResourcePolicy": { "type": "object", - "markdownDescription": "A version for the specified customer-managed message template within the specified knowledge base. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplateversion.html)", + "markdownDescription": "This schema provides construct and validation rules for AWS-XRay Resource Policy resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -31995,14 +32003,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::MessageTemplateVersion" + "AWS::XRay::ResourcePolicy" ], "markdownEnumDescriptions": [ - "A version for the specified customer-managed message template within the specified knowledge base. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplateversion.html)" + "This schema provides construct and validation rules for AWS-XRay Resource Policy resource parameters. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-messagetemplateversion.json" + "$ref": "resources/aws-xray-resourcepolicy.json" } }, "required": [ @@ -32016,9 +32024,9 @@ ], "additionalProperties": false }, - "AWS_SSM_ResourcePolicy": { + "AWS_DevOpsAgent_PrivateConnection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSM::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::DevOpsAgent::PrivateConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-privateconnection.html)", "allOf": [ { "type": "object", @@ -32026,14 +32034,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::ResourcePolicy" + "AWS::DevOpsAgent::PrivateConnection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSM::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcepolicy.html)" + "Resource Type definition for AWS::DevOpsAgent::PrivateConnection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsagent-privateconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-resourcepolicy.json" + "$ref": "resources/aws-devopsagent-privateconnection.json" } }, "required": [ @@ -32047,9 +32055,9 @@ ], "additionalProperties": false }, - "AWS_DataBrew_Project": { + "AWS_IVS_PlaybackRestrictionPolicy": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataBrew::Project. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html)", "allOf": [ { "type": "object", @@ -32057,19 +32065,18 @@ "Type": { "type": "string", "enum": [ - "AWS::DataBrew::Project" + "AWS::IVS::PlaybackRestrictionPolicy" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataBrew::Project. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html)" + "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-databrew-project.json" + "$ref": "resources/aws-ivs-playbackrestrictionpolicy.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -32078,9 +32085,9 @@ ], "additionalProperties": false }, - "AWS_Organizations_OrganizationalUnit": { + "AWS_CloudWatch_Dashboard": { "type": "object", - "markdownDescription": "You can use organizational units (OUs) to group accounts together to administer as a single unit. This greatly simplifies the management of your accounts. For example, you can attach a policy-based control to an OU, and all accounts within the OU automatically inherit the policy. You can create multiple OUs within a single organization, and you can create OUs within other OUs. Each OU can contain multiple accounts, and you can move accounts from one OU to another. However, OU names must be unique within a parent OU or root. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organizationalunit.html)", + "markdownDescription": "Resource Type definition for AWS::CloudWatch::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html)", "allOf": [ { "type": "object", @@ -32088,14 +32095,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Organizations::OrganizationalUnit" + "AWS::CloudWatch::Dashboard" ], "markdownEnumDescriptions": [ - "You can use organizational units (OUs) to group accounts together to administer as a single unit. This greatly simplifies the management of your accounts. For example, you can attach a policy-based control to an OU, and all accounts within the OU automatically inherit the policy. You can create multiple OUs within a single organization, and you can create OUs within other OUs. Each OU can contain multiple accounts, and you can move accounts from one OU to another. However, OU names must be unique within a parent OU or root. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organizationalunit.html)" + "Resource Type definition for AWS::CloudWatch::Dashboard \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html)" ] }, "Properties": { - "$ref": "resources/aws-organizations-organizationalunit.json" + "$ref": "resources/aws-cloudwatch-dashboard.json" } }, "required": [ @@ -32109,9 +32116,9 @@ ], "additionalProperties": false }, - "AWS_Location_Tracker": { + "AWS_AppMesh_GatewayRoute": { "type": "object", - "markdownDescription": "Definition of AWS::Location::Tracker Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::GatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html)", "allOf": [ { "type": "object", @@ -32119,14 +32126,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::Tracker" + "AWS::AppMesh::GatewayRoute" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::Tracker Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html)" + "Resource Type definition for AWS::AppMesh::GatewayRoute \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html)" ] }, "Properties": { - "$ref": "resources/aws-location-tracker.json" + "$ref": "resources/aws-appmesh-gatewayroute.json" } }, "required": [ @@ -32140,9 +32147,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_PromptVersion": { + "AWS_EventSchemas_Discoverer": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::PromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-promptversion.html)", + "markdownDescription": "Resource Type definition for AWS::EventSchemas::Discoverer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html)", "allOf": [ { "type": "object", @@ -32150,14 +32157,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::PromptVersion" + "AWS::EventSchemas::Discoverer" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::PromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-promptversion.html)" + "Resource Type definition for AWS::EventSchemas::Discoverer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-promptversion.json" + "$ref": "resources/aws-eventschemas-discoverer.json" } }, "required": [ @@ -32171,9 +32178,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Bucket": { + "AWS_OpenSearchServerless_AccessPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-bucket.html)", + "markdownDescription": "Amazon OpenSearchServerless access policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-accesspolicy.html)", "allOf": [ { "type": "object", @@ -32181,14 +32188,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Bucket" + "AWS::OpenSearchServerless::AccessPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Bucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-bucket.html)" + "Amazon OpenSearchServerless access policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-accesspolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-bucket.json" + "$ref": "resources/aws-opensearchserverless-accesspolicy.json" } }, "required": [ @@ -32202,9 +32209,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_ConnectAttachment": { + "AWS_EC2_IPAMScope": { "type": "object", - "markdownDescription": "AWS::NetworkManager::ConnectAttachment Resource Type Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectattachment.html)", + "markdownDescription": "Resource Schema of AWS::EC2::IPAMScope Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html)", "allOf": [ { "type": "object", @@ -32212,14 +32219,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::ConnectAttachment" + "AWS::EC2::IPAMScope" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::ConnectAttachment Resource Type Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectattachment.html)" + "Resource Schema of AWS::EC2::IPAMScope Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-connectattachment.json" + "$ref": "resources/aws-ec2-ipamscope.json" } }, "required": [ @@ -32233,9 +32240,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_User": { + "AWS_Backup_BackupSelection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html)", + "markdownDescription": "Resource Type definition for AWS::Backup::BackupSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html)", "allOf": [ { "type": "object", @@ -32243,14 +32250,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::User" + "AWS::Backup::BackupSelection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html)" + "Resource Type definition for AWS::Backup::BackupSelection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-user.json" + "$ref": "resources/aws-backup-backupselection.json" } }, "required": [ @@ -32264,9 +32271,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCBlockPublicAccessOptions": { + "AWS_Lambda_Url": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::VPCBlockPublicAccessOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessoptions.html)", + "markdownDescription": "Resource Type definition for AWS::Lambda::Url \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html)", "allOf": [ { "type": "object", @@ -32274,14 +32281,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCBlockPublicAccessOptions" + "AWS::Lambda::Url" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::VPCBlockPublicAccessOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessoptions.html)" + "Resource Type definition for AWS::Lambda::Url \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcblockpublicaccessoptions.json" + "$ref": "resources/aws-lambda-url.json" } }, "required": [ @@ -32295,9 +32302,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPNConnection": { + "AWS_IoT_TopicRule": { "type": "object", - "markdownDescription": "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnection.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::TopicRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html)", "allOf": [ { "type": "object", @@ -32305,14 +32312,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPNConnection" + "AWS::IoT::TopicRule" ], "markdownEnumDescriptions": [ - "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnection.html)" + "Resource Type definition for AWS::IoT::TopicRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpnconnection.json" + "$ref": "resources/aws-iot-topicrule.json" } }, "required": [ @@ -32326,9 +32333,9 @@ ], "additionalProperties": false }, - "AWS_IVS_Channel": { + "AWS_DirectConnect_Lag": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::Lag \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-lag.html)", "allOf": [ { "type": "object", @@ -32336,18 +32343,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::Channel" + "AWS::DirectConnect::Lag" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html)" + "Resource Type definition for AWS::DirectConnect::Lag \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-lag.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-channel.json" + "$ref": "resources/aws-directconnect-lag.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -32356,9 +32364,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_UsagePlan": { + "AWS_CertificateManager_Account": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::UsagePlan`` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*.\n In some cases clients can exceed the targets that you set. Don\u2019t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html)", + "markdownDescription": "Resource schema for AWS::CertificateManager::Account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-account.html)", "allOf": [ { "type": "object", @@ -32366,18 +32374,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::UsagePlan" + "AWS::CertificateManager::Account" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::UsagePlan`` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*.\n In some cases clients can exceed the targets that you set. Don\u2019t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html)" + "Resource schema for AWS::CertificateManager::Account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-account.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-usageplan.json" + "$ref": "resources/aws-certificatemanager-account.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -32386,9 +32395,9 @@ ], "additionalProperties": false }, - "AWS_Lex_Bot": { + "AWS_Personalize_Schema": { "type": "object", - "markdownDescription": "Amazon Lex conversational bot performing automated tasks such as ordering a pizza, booking a hotel, and so on. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-bot.html)", + "markdownDescription": "Resource schema for AWS::Personalize::Schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-schema.html)", "allOf": [ { "type": "object", @@ -32396,14 +32405,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lex::Bot" + "AWS::Personalize::Schema" ], "markdownEnumDescriptions": [ - "Amazon Lex conversational bot performing automated tasks such as ordering a pizza, booking a hotel, and so on. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-bot.html)" + "Resource schema for AWS::Personalize::Schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-schema.html)" ] }, "Properties": { - "$ref": "resources/aws-lex-bot.json" + "$ref": "resources/aws-personalize-schema.json" } }, "required": [ @@ -32417,9 +32426,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayMulticastGroupSource": { + "AWS_EC2_TransitGatewayConnect": { "type": "object", - "markdownDescription": "The AWS::EC2::TransitGatewayMulticastGroupSource registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html)", + "markdownDescription": "The AWS::EC2::TransitGatewayConnect type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html)", "allOf": [ { "type": "object", @@ -32427,14 +32436,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupSource" + "AWS::EC2::TransitGatewayConnect" ], "markdownEnumDescriptions": [ - "The AWS::EC2::TransitGatewayMulticastGroupSource registers and deregisters members and sources (network interfaces) with the transit gateway multicast group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html)" + "The AWS::EC2::TransitGatewayConnect type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewaymulticastgroupsource.json" + "$ref": "resources/aws-ec2-transitgatewayconnect.json" } }, "required": [ @@ -32448,9 +32457,9 @@ ], "additionalProperties": false }, - "AWS_IdentityStore_Group": { + "AWS_SMSVOICE_OptOutList": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IdentityStore::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-group.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::OptOutList \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html)", "allOf": [ { "type": "object", @@ -32458,19 +32467,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IdentityStore::Group" + "AWS::SMSVOICE::OptOutList" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IdentityStore::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-group.html)" + "Resource Type definition for AWS::SMSVOICE::OptOutList \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html)" ] }, "Properties": { - "$ref": "resources/aws-identitystore-group.json" + "$ref": "resources/aws-smsvoice-optoutlist.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -32479,9 +32487,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_NetworkAnalyzerConfiguration": { + "AWS_SMSVOICE_PhoneNumber": { "type": "object", - "markdownDescription": "Create and manage NetworkAnalyzerConfiguration resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-networkanalyzerconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html)", "allOf": [ { "type": "object", @@ -32489,14 +32497,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::NetworkAnalyzerConfiguration" + "AWS::SMSVOICE::PhoneNumber" ], "markdownEnumDescriptions": [ - "Create and manage NetworkAnalyzerConfiguration resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-networkanalyzerconfiguration.html)" + "Resource Type definition for AWS::SMSVOICE::PhoneNumber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-networkanalyzerconfiguration.json" + "$ref": "resources/aws-smsvoice-phonenumber.json" } }, "required": [ @@ -32510,9 +32518,9 @@ ], "additionalProperties": false }, - "AWS_RDS_CustomDBEngineVersion": { + "AWS_EC2_IPAMResourceDiscoveryAssociation": { "type": "object", - "markdownDescription": "Creates a custom DB engine version (CEV). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html)", + "markdownDescription": "Resource Schema of AWS::EC2::IPAMResourceDiscoveryAssociation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscoveryassociation.html)", "allOf": [ { "type": "object", @@ -32520,14 +32528,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::CustomDBEngineVersion" + "AWS::EC2::IPAMResourceDiscoveryAssociation" ], "markdownEnumDescriptions": [ - "Creates a custom DB engine version (CEV). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html)" + "Resource Schema of AWS::EC2::IPAMResourceDiscoveryAssociation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscoveryassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-customdbengineversion.json" + "$ref": "resources/aws-ec2-ipamresourcediscoveryassociation.json" } }, "required": [ @@ -32541,9 +32549,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_AppBlock": { + "AWS_Notifications_ChannelAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::AppBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html)", + "markdownDescription": "Resource Type definition for AWS::Notifications::ChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-channelassociation.html)", "allOf": [ { "type": "object", @@ -32551,14 +32559,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::AppBlock" + "AWS::Notifications::ChannelAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::AppBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html)" + "Resource Type definition for AWS::Notifications::ChannelAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-channelassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-appblock.json" + "$ref": "resources/aws-notifications-channelassociation.json" } }, "required": [ @@ -32572,9 +32580,9 @@ ], "additionalProperties": false }, - "AWS_AccessAnalyzer_Analyzer": { + "AWS_WorkspacesInstances_VolumeAssociation": { "type": "object", - "markdownDescription": "The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html)", + "markdownDescription": "Resource Type definition for AWS::WorkspacesInstances::VolumeAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volumeassociation.html)", "allOf": [ { "type": "object", @@ -32582,14 +32590,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AccessAnalyzer::Analyzer" + "AWS::WorkspacesInstances::VolumeAssociation" ], "markdownEnumDescriptions": [ - "The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html)" + "Resource Type definition for AWS::WorkspacesInstances::VolumeAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volumeassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-accessanalyzer-analyzer.json" + "$ref": "resources/aws-workspacesinstances-volumeassociation.json" } }, "required": [ @@ -32603,9 +32611,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_InAppTemplate": { + "AWS_S3_AccessPoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::InAppTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html)", + "markdownDescription": "The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html)", "allOf": [ { "type": "object", @@ -32613,14 +32621,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::InAppTemplate" + "AWS::S3::AccessPoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::InAppTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html)" + "The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-inapptemplate.json" + "$ref": "resources/aws-s3-accesspoint.json" } }, "required": [ @@ -32634,9 +32642,9 @@ ], "additionalProperties": false }, - "AWS_IoTTwinMaker_Scene": { + "AWS_CloudFront_DistributionTenant": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTTwinMaker::Scene \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-scene.html)", + "markdownDescription": "The distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html)", "allOf": [ { "type": "object", @@ -32644,14 +32652,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTTwinMaker::Scene" + "AWS::CloudFront::DistributionTenant" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTTwinMaker::Scene \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-scene.html)" + "The distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html)" ] }, "Properties": { - "$ref": "resources/aws-iottwinmaker-scene.json" + "$ref": "resources/aws-cloudfront-distributiontenant.json" } }, "required": [ @@ -32665,9 +32673,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackageV2_OriginEndpointPolicy": { + "AWS_GuardDuty_TrustedEntitySet": { "type": "object", - "markdownDescription": "

Represents a resource policy that allows or denies access to an origin endpoint.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpointpolicy.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::TrustedEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-trustedentityset.html)", "allOf": [ { "type": "object", @@ -32675,14 +32683,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackageV2::OriginEndpointPolicy" + "AWS::GuardDuty::TrustedEntitySet" ], "markdownEnumDescriptions": [ - "

Represents a resource policy that allows or denies access to an origin endpoint.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpointpolicy.html)" + "Resource Type definition for AWS::GuardDuty::TrustedEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-trustedentityset.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackagev2-originendpointpolicy.json" + "$ref": "resources/aws-guardduty-trustedentityset.json" } }, "required": [ @@ -32696,9 +32704,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_StackFleetAssociation": { + "AWS_ServiceDiscovery_PrivateDnsNamespace": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::StackFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::PrivateDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html)", "allOf": [ { "type": "object", @@ -32706,14 +32714,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::StackFleetAssociation" + "AWS::ServiceDiscovery::PrivateDnsNamespace" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::StackFleetAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html)" + "Resource Type definition for AWS::ServiceDiscovery::PrivateDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-stackfleetassociation.json" + "$ref": "resources/aws-servicediscovery-privatednsnamespace.json" } }, "required": [ @@ -32727,9 +32735,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_AggregatorV2": { + "AWS_RDS_DBCluster": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::AggregatorV2 resource represents the AWS Security Hub AggregatorV2 in your account. One aggregatorv2 resource is created for each account in non opt-in region in which you configure region linking mode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html)", + "markdownDescription": "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After 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 DB cluster 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, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)", "allOf": [ { "type": "object", @@ -32737,19 +32745,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::AggregatorV2" + "AWS::RDS::DBCluster" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::AggregatorV2 resource represents the AWS Security Hub AggregatorV2 in your account. One aggregatorv2 resource is created for each account in non opt-in region in which you configure region linking mode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html)" + "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After 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 DB cluster 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, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-aggregatorv2.json" + "$ref": "resources/aws-rds-dbcluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -32758,9 +32765,9 @@ ], "additionalProperties": false }, - "AWS_Glue_MLTransform": { + "AWS_VpcLattice_AccessLogSubscription": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::MLTransform \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html)", + "markdownDescription": "Enables access logs to be sent to Amazon CloudWatch, Amazon S3, and Amazon Kinesis Data Firehose. The service network owner can use the access logs to audit the services in the network. The service network owner will only see access logs from clients and services that are associated with their service network. Access log entries represent traffic originated from VPCs associated with that network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-accesslogsubscription.html)", "allOf": [ { "type": "object", @@ -32768,14 +32775,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::MLTransform" + "AWS::VpcLattice::AccessLogSubscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::MLTransform \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html)" + "Enables access logs to be sent to Amazon CloudWatch, Amazon S3, and Amazon Kinesis Data Firehose. The service network owner can use the access logs to audit the services in the network. The service network owner will only see access logs from clients and services that are associated with their service network. Access log entries represent traffic originated from VPCs associated with that network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-accesslogsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-mltransform.json" + "$ref": "resources/aws-vpclattice-accesslogsubscription.json" } }, "required": [ @@ -32789,9 +32796,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_SubscriptionDefinitionVersion": { + "AWS_DataPipeline_Pipeline": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::SubscriptionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html)", "allOf": [ { "type": "object", @@ -32799,14 +32806,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::SubscriptionDefinitionVersion" + "AWS::DataPipeline::Pipeline" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::SubscriptionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-subscriptiondefinitionversion.json" + "$ref": "resources/aws-datapipeline-pipeline.json" } }, "required": [ @@ -32820,9 +32827,9 @@ ], "additionalProperties": false }, - "AWS_ServiceDiscovery_HttpNamespace": { + "AWS_UXC_AccountCustomization": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::HttpNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html)", + "markdownDescription": "Resource schema for managing AWS account-level UX customization settings, including account color, visible services, and visible regions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-uxc-accountcustomization.html)", "allOf": [ { "type": "object", @@ -32830,19 +32837,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceDiscovery::HttpNamespace" + "AWS::UXC::AccountCustomization" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceDiscovery::HttpNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html)" + "Resource schema for managing AWS account-level UX customization settings, including account color, visible services, and visible regions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-uxc-accountcustomization.html)" ] }, "Properties": { - "$ref": "resources/aws-servicediscovery-httpnamespace.json" + "$ref": "resources/aws-uxc-accountcustomization.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -32851,9 +32857,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_Profile": { + "AWS_EventSchemas_RegistryPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Transfer::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-profile.html)", + "markdownDescription": "Resource Type definition for AWS::EventSchemas::RegistryPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html)", "allOf": [ { "type": "object", @@ -32861,14 +32867,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::Profile" + "AWS::EventSchemas::RegistryPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Transfer::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-profile.html)" + "Resource Type definition for AWS::EventSchemas::RegistryPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-profile.json" + "$ref": "resources/aws-eventschemas-registrypolicy.json" } }, "required": [ @@ -32882,9 +32888,9 @@ ], "additionalProperties": false }, - "AWS_Connect_ContactFlowModule": { + "AWS_QuickSight_Template": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::ContactFlowModule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html)", + "markdownDescription": "Definition of the AWS::QuickSight::Template Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-template.html)", "allOf": [ { "type": "object", @@ -32892,14 +32898,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::ContactFlowModule" + "AWS::QuickSight::Template" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::ContactFlowModule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html)" + "Definition of the AWS::QuickSight::Template Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-template.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-contactflowmodule.json" + "$ref": "resources/aws-quicksight-template.json" } }, "required": [ @@ -32913,9 +32919,9 @@ ], "additionalProperties": false }, - "AWS_Kinesis_ResourcePolicy": { + "AWS_GlobalAccelerator_Listener": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Kinesis::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::Listener \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html)", "allOf": [ { "type": "object", @@ -32923,14 +32929,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Kinesis::ResourcePolicy" + "AWS::GlobalAccelerator::Listener" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Kinesis::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html)" + "Resource Type definition for AWS::GlobalAccelerator::Listener \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesis-resourcepolicy.json" + "$ref": "resources/aws-globalaccelerator-listener.json" } }, "required": [ @@ -32944,9 +32950,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_Guardrail": { + "AWS_ServiceCatalogAppRegistry_Application": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::Guardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-application.html)", "allOf": [ { "type": "object", @@ -32954,14 +32960,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::Guardrail" + "AWS::ServiceCatalogAppRegistry::Application" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::Guardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html)" + "Resource Schema for AWS::ServiceCatalogAppRegistry::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-application.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-guardrail.json" + "$ref": "resources/aws-servicecatalogappregistry-application.json" } }, "required": [ @@ -32975,9 +32981,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Image": { + "AWS_Logs_AccountPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html)", + "markdownDescription": "The AWS::Logs::AccountPolicy resource specifies a CloudWatch Logs AccountPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html)", "allOf": [ { "type": "object", @@ -32985,14 +32991,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Image" + "AWS::Logs::AccountPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html)" + "The AWS::Logs::AccountPolicy resource specifies a CloudWatch Logs AccountPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-image.json" + "$ref": "resources/aws-logs-accountpolicy.json" } }, "required": [ @@ -33006,9 +33012,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_IdentityProvider": { + "AWS_EC2_SecurityGroup": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::IdentityProvider Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-identityprovider.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html)", "allOf": [ { "type": "object", @@ -33016,14 +33022,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::IdentityProvider" + "AWS::EC2::SecurityGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::IdentityProvider Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-identityprovider.html)" + "Resource Type definition for AWS::EC2::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-identityprovider.json" + "$ref": "resources/aws-ec2-securitygroup.json" } }, "required": [ @@ -33037,9 +33043,9 @@ ], "additionalProperties": false }, - "AWS_SSMContacts_Plan": { + "AWS_SNS_TopicInlinePolicy": { "type": "object", - "markdownDescription": "Engagement Plan for a SSM Incident Manager Contact. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-plan.html)", + "markdownDescription": "Schema for AWS::SNS::TopicInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html)", "allOf": [ { "type": "object", @@ -33047,18 +33053,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMContacts::Plan" + "AWS::SNS::TopicInlinePolicy" ], "markdownEnumDescriptions": [ - "Engagement Plan for a SSM Incident Manager Contact. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-plan.html)" + "Schema for AWS::SNS::TopicInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmcontacts-plan.json" + "$ref": "resources/aws-sns-topicinlinepolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -33067,9 +33074,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_CloudWatchAlarmTemplateGroup": { + "AWS_RDS_GlobalCluster": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::CloudWatchAlarmTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplategroup.html)", + "markdownDescription": "Resource Type definition for AWS::RDS::GlobalCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)", "allOf": [ { "type": "object", @@ -33077,19 +33084,18 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::CloudWatchAlarmTemplateGroup" + "AWS::RDS::GlobalCluster" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::CloudWatchAlarmTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplategroup.html)" + "Resource Type definition for AWS::RDS::GlobalCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-cloudwatchalarmtemplategroup.json" + "$ref": "resources/aws-rds-globalcluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -33098,9 +33104,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_HookVersion": { + "AWS_SSO_Application": { "type": "object", - "markdownDescription": "Publishes new or first hook version to AWS CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html)", + "markdownDescription": "Resource Type definition for Identity Center (SSO) Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-application.html)", "allOf": [ { "type": "object", @@ -33108,14 +33114,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::HookVersion" + "AWS::SSO::Application" ], "markdownEnumDescriptions": [ - "Publishes new or first hook version to AWS CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html)" + "Resource Type definition for Identity Center (SSO) Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-application.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-hookversion.json" + "$ref": "resources/aws-sso-application.json" } }, "required": [ @@ -33129,9 +33135,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_Task": { + "AWS_MSK_Topic": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::Task. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html)", + "markdownDescription": "Resource Type definition for AWS::MSK::Topic \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-topic.html)", "allOf": [ { "type": "object", @@ -33139,14 +33145,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::Task" + "AWS::MSK::Topic" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::Task. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html)" + "Resource Type definition for AWS::MSK::Topic \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-topic.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-task.json" + "$ref": "resources/aws-msk-topic.json" } }, "required": [ @@ -33160,9 +33166,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_SessionLogger": { + "AWS_CloudFormation_ModuleVersion": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::SessionLogger Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-sessionlogger.html)", + "markdownDescription": "A module that has been registered in the CloudFormation registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html)", "allOf": [ { "type": "object", @@ -33170,14 +33176,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::SessionLogger" + "AWS::CloudFormation::ModuleVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::SessionLogger Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-sessionlogger.html)" + "A module that has been registered in the CloudFormation registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-sessionlogger.json" + "$ref": "resources/aws-cloudformation-moduleversion.json" } }, "required": [ @@ -33191,9 +33197,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_NotificationConfiguration": { + "AWS_SSM_Association": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Notifications::NotificationConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationconfiguration.html)", + "markdownDescription": "The AWS::SSM::Association resource associates an SSM document in AWS Systems Manager with EC2 instances that contain a configuration agent to process the document. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html)", "allOf": [ { "type": "object", @@ -33201,14 +33207,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::NotificationConfiguration" + "AWS::SSM::Association" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Notifications::NotificationConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationconfiguration.html)" + "The AWS::SSM::Association resource associates an SSM document in AWS Systems Manager with EC2 instances that contain a configuration agent to process the document. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html)" ] }, "Properties": { - "$ref": "resources/aws-notifications-notificationconfiguration.json" + "$ref": "resources/aws-ssm-association.json" } }, "required": [ @@ -33222,9 +33228,9 @@ ], "additionalProperties": false }, - "AWS_NetworkFirewall_RuleGroup": { + "AWS_ImageBuilder_ContainerRecipe": { "type": "object", - "markdownDescription": "Resource type definition for AWS::NetworkFirewall::RuleGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::ContainerRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html)", "allOf": [ { "type": "object", @@ -33232,19 +33238,18 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkFirewall::RuleGroup" + "AWS::ImageBuilder::ContainerRecipe" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::NetworkFirewall::RuleGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html)" + "Resource schema for AWS::ImageBuilder::ContainerRecipe \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html)" ] }, "Properties": { - "$ref": "resources/aws-networkfirewall-rulegroup.json" + "$ref": "resources/aws-imagebuilder-containerrecipe.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -33253,9 +33258,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAMAllocation": { + "AWS_IoT_CertificateProvider": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAMAllocation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html)", + "markdownDescription": "Use the AWS::IoT::CertificateProvider resource to declare an AWS IoT Certificate Provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificateprovider.html)", "allOf": [ { "type": "object", @@ -33263,14 +33268,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAMAllocation" + "AWS::IoT::CertificateProvider" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAMAllocation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html)" + "Use the AWS::IoT::CertificateProvider resource to declare an AWS IoT Certificate Provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificateprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipamallocation.json" + "$ref": "resources/aws-iot-certificateprovider.json" } }, "required": [ @@ -33284,9 +33289,9 @@ ], "additionalProperties": false }, - "AWS_Location_RouteCalculator": { + "AWS_SecurityHub_SecurityControl": { "type": "object", - "markdownDescription": "Definition of AWS::Location::RouteCalculator Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html)", + "markdownDescription": "A security control in Security Hub describes a security best practice related to a specific resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-securitycontrol.html)", "allOf": [ { "type": "object", @@ -33294,14 +33299,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Location::RouteCalculator" + "AWS::SecurityHub::SecurityControl" ], "markdownEnumDescriptions": [ - "Definition of AWS::Location::RouteCalculator Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html)" + "A security control in Security Hub describes a security best practice related to a specific resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-securitycontrol.html)" ] }, "Properties": { - "$ref": "resources/aws-location-routecalculator.json" + "$ref": "resources/aws-securityhub-securitycontrol.json" } }, "required": [ @@ -33315,9 +33320,9 @@ ], "additionalProperties": false }, - "AWS_PaymentCryptography_Key": { + "AWS_IVS_EncoderConfiguration": { "type": "object", - "markdownDescription": "Definition of AWS::PaymentCryptography::Key Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::EncoderConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html)", "allOf": [ { "type": "object", @@ -33325,19 +33330,18 @@ "Type": { "type": "string", "enum": [ - "AWS::PaymentCryptography::Key" + "AWS::IVS::EncoderConfiguration" ], "markdownEnumDescriptions": [ - "Definition of AWS::PaymentCryptography::Key Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html)" + "Resource Type definition for AWS::IVS::EncoderConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-paymentcryptography-key.json" + "$ref": "resources/aws-ivs-encoderconfiguration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -33346,9 +33350,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationNFS": { + "AWS_RTBFabric_Link": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationNFS \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html)", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-link.html)", "allOf": [ { "type": "object", @@ -33356,14 +33360,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationNFS" + "AWS::RTBFabric::Link" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationNFS \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html)" + "Resource Type definition for AWS::RTBFabric::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-link.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationnfs.json" + "$ref": "resources/aws-rtbfabric-link.json" } }, "required": [ @@ -33377,9 +33381,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpaces_Workspace": { + "AWS_IoTTwinMaker_Workspace": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WorkSpaces::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html)", + "markdownDescription": "Resource schema for AWS::IoTTwinMaker::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-workspace.html)", "allOf": [ { "type": "object", @@ -33387,14 +33391,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpaces::Workspace" + "AWS::IoTTwinMaker::Workspace" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WorkSpaces::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html)" + "Resource schema for AWS::IoTTwinMaker::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-workspace.html)" ] }, "Properties": { - "$ref": "resources/aws-workspaces-workspace.json" + "$ref": "resources/aws-iottwinmaker-workspace.json" } }, "required": [ @@ -33408,9 +33412,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBProxyTargetGroup": { + "AWS_EC2_NetworkInsightsPath": { "type": "object", - "markdownDescription": "Resource schema for AWS::RDS::DBProxyTargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html)", + "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsPath \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html)", "allOf": [ { "type": "object", @@ -33418,14 +33422,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBProxyTargetGroup" + "AWS::EC2::NetworkInsightsPath" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::RDS::DBProxyTargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html)" + "Resource schema for AWS::EC2::NetworkInsightsPath \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbproxytargetgroup.json" + "$ref": "resources/aws-ec2-networkinsightspath.json" } }, "required": [ @@ -33439,9 +33443,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_SecurityGroup": { + "AWS_ElastiCache_ServerlessCache": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroup.html)", + "markdownDescription": "The AWS::ElastiCache::ServerlessCache resource creates an Amazon ElastiCache Serverless Cache. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html)", "allOf": [ { "type": "object", @@ -33449,14 +33453,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::SecurityGroup" + "AWS::ElastiCache::ServerlessCache" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::SecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroup.html)" + "The AWS::ElastiCache::ServerlessCache resource creates an Amazon ElastiCache Serverless Cache. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-securitygroup.json" + "$ref": "resources/aws-elasticache-serverlesscache.json" } }, "required": [ @@ -33470,9 +33474,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AIGuardrailVersion": { + "AWS_MediaConnect_FlowSource": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AIGuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrailversion.html)", + "markdownDescription": "Resource Type definition for AWS::MediaConnect::FlowSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html)", "allOf": [ { "type": "object", @@ -33480,14 +33484,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AIGuardrailVersion" + "AWS::MediaConnect::FlowSource" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AIGuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrailversion.html)" + "Resource Type definition for AWS::MediaConnect::FlowSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-aiguardrailversion.json" + "$ref": "resources/aws-mediaconnect-flowsource.json" } }, "required": [ @@ -33501,9 +33505,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_Server": { + "AWS_GameLift_Fleet": { "type": "object", - "markdownDescription": "Definition of AWS::Transfer::Server Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html)", + "markdownDescription": "The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to host game servers. A fleet is a set of EC2 or Anywhere instances, each of which can host multiple game sessions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html)", "allOf": [ { "type": "object", @@ -33511,18 +33515,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::Server" + "AWS::GameLift::Fleet" ], "markdownEnumDescriptions": [ - "Definition of AWS::Transfer::Server Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html)" + "The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to host game servers. A fleet is a set of EC2 or Anywhere instances, each of which can host multiple game sessions. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-server.json" + "$ref": "resources/aws-gamelift-fleet.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -33531,9 +33536,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBShardGroup": { + "AWS_DataBrew_Ruleset": { "type": "object", - "markdownDescription": "Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.\n Valid for: Aurora DB clusters only \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbshardgroup.html)", + "markdownDescription": "Resource schema for AWS::DataBrew::Ruleset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html)", "allOf": [ { "type": "object", @@ -33541,14 +33546,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBShardGroup" + "AWS::DataBrew::Ruleset" ], "markdownEnumDescriptions": [ - "Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.\n Valid for: Aurora DB clusters only \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbshardgroup.html)" + "Resource schema for AWS::DataBrew::Ruleset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbshardgroup.json" + "$ref": "resources/aws-databrew-ruleset.json" } }, "required": [ @@ -33562,9 +33567,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_WaitConditionHandle": { + "AWS_Interconnect_Connection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudFormation::WaitConditionHandle \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitconditionhandle.html)", + "markdownDescription": "Resource Type definition for AWS::Interconnect::Connection. Creates a managed network connection between AWS and a partner cloud service provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html)", "allOf": [ { "type": "object", @@ -33572,18 +33577,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::WaitConditionHandle" + "AWS::Interconnect::Connection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudFormation::WaitConditionHandle \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitconditionhandle.html)" + "Resource Type definition for AWS::Interconnect::Connection. Creates a managed network connection between AWS and a partner cloud service provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-waitconditionhandle.json" + "$ref": "resources/aws-interconnect-connection.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -33592,9 +33598,9 @@ ], "additionalProperties": false }, - "AWS_EC2_CapacityReservation": { + "AWS_EC2_RouteServerEndpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html)", + "markdownDescription": "VPC Route Server Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html)", "allOf": [ { "type": "object", @@ -33602,14 +33608,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::CapacityReservation" + "AWS::EC2::RouteServerEndpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html)" + "VPC Route Server Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-capacityreservation.json" + "$ref": "resources/aws-ec2-routeserverendpoint.json" } }, "required": [ @@ -33623,9 +33629,9 @@ ], "additionalProperties": false }, - "AWS_WAF_SizeConstraintSet": { + "AWS_Comprehend_Flywheel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html)", + "markdownDescription": "The AWS::Comprehend::Flywheel resource creates an Amazon Comprehend Flywheel that enables customer to train their model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-flywheel.html)", "allOf": [ { "type": "object", @@ -33633,14 +33639,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::SizeConstraintSet" + "AWS::Comprehend::Flywheel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html)" + "The AWS::Comprehend::Flywheel resource creates an Amazon Comprehend Flywheel that enables customer to train their model. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-comprehend-flywheel.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-sizeconstraintset.json" + "$ref": "resources/aws-comprehend-flywheel.json" } }, "required": [ @@ -33654,9 +33660,9 @@ ], "additionalProperties": false }, - "AWS_SecurityLake_DataLake": { + "AWS_Elasticsearch_Domain": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecurityLake::DataLake \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html)", + "markdownDescription": "Resource Type definition for AWS::Elasticsearch::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html)", "allOf": [ { "type": "object", @@ -33664,14 +33670,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityLake::DataLake" + "AWS::Elasticsearch::Domain" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecurityLake::DataLake \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html)" + "Resource Type definition for AWS::Elasticsearch::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-securitylake-datalake.json" + "$ref": "resources/aws-elasticsearch-domain.json" } }, "required": [ @@ -33684,9 +33690,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_EmailChannel": { + "AWS_SDB_Domain": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::EmailChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html)", + "markdownDescription": "Resource Type definition for AWS::SDB::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sdb-domain.html)", "allOf": [ { "type": "object", @@ -33694,19 +33700,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::EmailChannel" + "AWS::SDB::Domain" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::EmailChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html)" + "Resource Type definition for AWS::SDB::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sdb-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-emailchannel.json" + "$ref": "resources/aws-sdb-domain.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -33715,9 +33720,9 @@ ], "additionalProperties": false }, - "AWS_ECR_Repository": { + "AWS_KafkaConnect_Connector": { "type": "object", - "markdownDescription": "The ``AWS::ECR::Repository`` resource specifies an Amazon Elastic Container Registry (Amazon ECR) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR private repositories](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) in the *Amazon ECR User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html)", + "markdownDescription": "Resource Type definition for AWS::KafkaConnect::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html)", "allOf": [ { "type": "object", @@ -33725,18 +33730,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::Repository" + "AWS::KafkaConnect::Connector" ], "markdownEnumDescriptions": [ - "The ``AWS::ECR::Repository`` resource specifies an Amazon Elastic Container Registry (Amazon ECR) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR private repositories](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) in the *Amazon ECR User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html)" + "Resource Type definition for AWS::KafkaConnect::Connector \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-repository.json" + "$ref": "resources/aws-kafkaconnect-connector.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -33745,9 +33751,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_Prompt": { + "AWS_ApiGateway_UsagePlan": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::Prompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-prompt.html)", + "markdownDescription": "The ``AWS::ApiGateway::UsagePlan`` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*.\n In some cases clients can exceed the targets that you set. Don\u2019t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html)", "allOf": [ { "type": "object", @@ -33755,19 +33761,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::Prompt" + "AWS::ApiGateway::UsagePlan" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::Prompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-prompt.html)" + "The ``AWS::ApiGateway::UsagePlan`` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*.\n In some cases clients can exceed the targets that you set. Don\u2019t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-prompt.json" + "$ref": "resources/aws-apigateway-usageplan.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -33776,9 +33781,9 @@ ], "additionalProperties": false }, - "AWS_Cassandra_Keyspace": { + "AWS_CloudFront_Function": { "type": "object", - "markdownDescription": "Resource schema for AWS::Cassandra::Keyspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html)", + "markdownDescription": "Creates a CF function.\n To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function, and the function\u2019s stage.\n By default, when you create a function, it\u2019s in the ``DEVELOPMENT`` stage. In this stage, you can [test the function](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/test-function.html) in the CF console (or with ``TestFunction`` in the CF API).\n When you\u2019re ready to use your function with a CF distribution, publish the function to the ``LIVE`` stage. You can do this in the CF console, with ``PublishFunction`` in the CF API, or by updating the ``AWS::CloudFront::Function`` resource with the ``AutoPublish`` property set to ``true``. When the function is published to the ``LIVE`` stage, you can attach it to a distribution\u2019s cache behavior, using the function\u2019s ARN.\n To automatically publish the function to the ``LIVE`` stage when it\u2019s created, set the ``AutoPublish`` property to ``true``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html)", "allOf": [ { "type": "object", @@ -33786,18 +33791,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Cassandra::Keyspace" + "AWS::CloudFront::Function" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Cassandra::Keyspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html)" + "Creates a CF function.\n To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function, and the function\u2019s stage.\n By default, when you create a function, it\u2019s in the ``DEVELOPMENT`` stage. In this stage, you can [test the function](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/test-function.html) in the CF console (or with ``TestFunction`` in the CF API).\n When you\u2019re ready to use your function with a CF distribution, publish the function to the ``LIVE`` stage. You can do this in the CF console, with ``PublishFunction`` in the CF API, or by updating the ``AWS::CloudFront::Function`` resource with the ``AutoPublish`` property set to ``true``. When the function is published to the ``LIVE`` stage, you can attach it to a distribution\u2019s cache behavior, using the function\u2019s ARN.\n To automatically publish the function to the ``LIVE`` stage when it\u2019s created, set the ``AutoPublish`` property to ``true``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html)" ] }, "Properties": { - "$ref": "resources/aws-cassandra-keyspace.json" + "$ref": "resources/aws-cloudfront-function.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -33806,9 +33812,9 @@ ], "additionalProperties": false }, - "AWS_Forecast_DatasetGroup": { + "AWS_SecurityHub_Insight": { "type": "object", - "markdownDescription": "Represents a dataset group that holds a collection of related datasets \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-datasetgroup.html)", + "markdownDescription": "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html)", "allOf": [ { "type": "object", @@ -33816,14 +33822,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Forecast::DatasetGroup" + "AWS::SecurityHub::Insight" ], "markdownEnumDescriptions": [ - "Represents a dataset group that holds a collection of related datasets \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-datasetgroup.html)" + "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html)" ] }, "Properties": { - "$ref": "resources/aws-forecast-datasetgroup.json" + "$ref": "resources/aws-securityhub-insight.json" } }, "required": [ @@ -33837,9 +33843,9 @@ ], "additionalProperties": false }, - "AWS_Forecast_Dataset": { + "AWS_EC2_TrafficMirrorFilter": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::Forecast::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-dataset.html)", + "markdownDescription": "Resource schema for AWS::EC2::TrafficMirrorFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html)", "allOf": [ { "type": "object", @@ -33847,19 +33853,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Forecast::Dataset" + "AWS::EC2::TrafficMirrorFilter" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::Forecast::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-forecast-dataset.html)" + "Resource schema for AWS::EC2::TrafficMirrorFilter \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html)" ] }, "Properties": { - "$ref": "resources/aws-forecast-dataset.json" + "$ref": "resources/aws-ec2-trafficmirrorfilter.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -33868,9 +33873,9 @@ ], "additionalProperties": false }, - "AWS_EC2_RouteServerPropagation": { + "AWS_ConnectCampaigns_Campaign": { "type": "object", - "markdownDescription": "VPC Route Server Propagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html)", + "markdownDescription": "Definition of AWS::ConnectCampaigns::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaigns-campaign.html)", "allOf": [ { "type": "object", @@ -33878,14 +33883,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::RouteServerPropagation" + "AWS::ConnectCampaigns::Campaign" ], "markdownEnumDescriptions": [ - "VPC Route Server Propagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html)" + "Definition of AWS::ConnectCampaigns::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaigns-campaign.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-routeserverpropagation.json" + "$ref": "resources/aws-connectcampaigns-campaign.json" } }, "required": [ @@ -33899,9 +33904,9 @@ ], "additionalProperties": false }, - "AWS_RoboMaker_RobotApplicationVersion": { + "AWS_GuardDuty_ThreatIntelSet": { "type": "object", - "markdownDescription": "AWS::RoboMaker::RobotApplicationVersion resource creates an AWS RoboMaker RobotApplicationVersion. This helps you control which code your robot uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::ThreatIntelSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html)", "allOf": [ { "type": "object", @@ -33909,14 +33914,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RoboMaker::RobotApplicationVersion" + "AWS::GuardDuty::ThreatIntelSet" ], "markdownEnumDescriptions": [ - "AWS::RoboMaker::RobotApplicationVersion resource creates an AWS RoboMaker RobotApplicationVersion. This helps you control which code your robot uses. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html)" + "Resource Type definition for AWS::GuardDuty::ThreatIntelSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html)" ] }, "Properties": { - "$ref": "resources/aws-robomaker-robotapplicationversion.json" + "$ref": "resources/aws-guardduty-threatintelset.json" } }, "required": [ @@ -33930,9 +33935,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_CodeRepository": { + "AWS_SecurityHub_OrganizationConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::CodeRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-coderepository.html)", + "markdownDescription": "The AWS::SecurityHub::OrganizationConfiguration resource represents the configuration of your organization in Security Hub. Only the Security Hub administrator account can create Organization Configuration resource in each region and can opt-in to Central Configuration only in the aggregation region of FindingAggregator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-organizationconfiguration.html)", "allOf": [ { "type": "object", @@ -33940,14 +33945,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::CodeRepository" + "AWS::SecurityHub::OrganizationConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::CodeRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-coderepository.html)" + "The AWS::SecurityHub::OrganizationConfiguration resource represents the configuration of your organization in Security Hub. Only the Security Hub administrator account can create Organization Configuration resource in each region and can opt-in to Central Configuration only in the aggregation region of FindingAggregator. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-organizationconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-coderepository.json" + "$ref": "resources/aws-securityhub-organizationconfiguration.json" } }, "required": [ @@ -33961,9 +33966,9 @@ ], "additionalProperties": false }, - "AWS_ElasticBeanstalk_ApplicationVersion": { + "AWS_AppSync_ApiCache": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::ApiCache \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)", "allOf": [ { "type": "object", @@ -33971,14 +33976,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticBeanstalk::ApplicationVersion" + "AWS::AppSync::ApiCache" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html)" + "Resource Type definition for AWS::AppSync::ApiCache \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticbeanstalk-applicationversion.json" + "$ref": "resources/aws-appsync-apicache.json" } }, "required": [ @@ -33992,9 +33997,9 @@ ], "additionalProperties": false }, - "AWS_IAM_Group": { + "AWS_CloudTrail_Dashboard": { "type": "object", - "markdownDescription": "Creates a new group.\n For information about the number of groups you can create, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html)", + "markdownDescription": "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-dashboard.html)", "allOf": [ { "type": "object", @@ -34002,14 +34007,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::Group" + "AWS::CloudTrail::Dashboard" ], "markdownEnumDescriptions": [ - "Creates a new group.\n For information about the number of groups you can create, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html)" + "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-dashboard.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-group.json" + "$ref": "resources/aws-cloudtrail-dashboard.json" } }, "required": [ @@ -34022,9 +34027,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_ConfiguredTableAssociation": { + "AWS_Config_DeliveryChannel": { "type": "object", - "markdownDescription": "Represents a table that can be queried within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtableassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Config::DeliveryChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html)", "allOf": [ { "type": "object", @@ -34032,14 +34037,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::ConfiguredTableAssociation" + "AWS::Config::DeliveryChannel" ], "markdownEnumDescriptions": [ - "Represents a table that can be queried within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtableassociation.html)" + "Resource Type definition for AWS::Config::DeliveryChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-configuredtableassociation.json" + "$ref": "resources/aws-config-deliverychannel.json" } }, "required": [ @@ -34053,9 +34058,9 @@ ], "additionalProperties": false }, - "AWS_IoT_RoleAlias": { + "AWS_Evidently_Feature": { "type": "object", - "markdownDescription": "Use the AWS::IoT::RoleAlias resource to declare an AWS IoT RoleAlias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-rolealias.html)", + "markdownDescription": "Resource Type definition for AWS::Evidently::Feature. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html)", "allOf": [ { "type": "object", @@ -34063,14 +34068,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::RoleAlias" + "AWS::Evidently::Feature" ], "markdownEnumDescriptions": [ - "Use the AWS::IoT::RoleAlias resource to declare an AWS IoT RoleAlias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-rolealias.html)" + "Resource Type definition for AWS::Evidently::Feature. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-rolealias.json" + "$ref": "resources/aws-evidently-feature.json" } }, "required": [ @@ -34084,9 +34089,9 @@ ], "additionalProperties": false }, - "AWS_Neptune_DBCluster": { + "AWS_IVS_IngestConfiguration": { "type": "object", - "markdownDescription": "The AWS::Neptune::DBCluster resource creates an Amazon Neptune DB cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::IngestConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-ingestconfiguration.html)", "allOf": [ { "type": "object", @@ -34094,14 +34099,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Neptune::DBCluster" + "AWS::IVS::IngestConfiguration" ], "markdownEnumDescriptions": [ - "The AWS::Neptune::DBCluster resource creates an Amazon Neptune DB cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html)" + "Resource Type definition for AWS::IVS::IngestConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-ingestconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-neptune-dbcluster.json" + "$ref": "resources/aws-ivs-ingestconfiguration.json" } }, "required": [ @@ -34114,9 +34119,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_GeoMatchSet": { + "AWS_S3Vectors_Index": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::GeoMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html)", + "markdownDescription": "Resource Type definition for AWS::S3Vectors::Index \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3vectors-index.html)", "allOf": [ { "type": "object", @@ -34124,14 +34129,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::GeoMatchSet" + "AWS::S3Vectors::Index" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::GeoMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html)" + "Resource Type definition for AWS::S3Vectors::Index \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3vectors-index.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-geomatchset.json" + "$ref": "resources/aws-s3vectors-index.json" } }, "required": [ @@ -34145,9 +34150,9 @@ ], "additionalProperties": false }, - "AWS_SSMContacts_Rotation": { + "AWS_SSM_ResourceDataSync": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSMContacts::Rotation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html)", + "markdownDescription": "Resource Type definition for AWS::SSM::ResourceDataSync \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcedatasync.html)", "allOf": [ { "type": "object", @@ -34155,14 +34160,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMContacts::Rotation" + "AWS::SSM::ResourceDataSync" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSMContacts::Rotation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html)" + "Resource Type definition for AWS::SSM::ResourceDataSync \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcedatasync.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmcontacts-rotation.json" + "$ref": "resources/aws-ssm-resourcedatasync.json" } }, "required": [ @@ -34176,9 +34181,9 @@ ], "additionalProperties": false }, - "AWS_Config_StoredQuery": { + "AWS_RTBFabric_InboundExternalLink": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::StoredQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html)", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::InboundExternalLink Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-inboundexternallink.html)", "allOf": [ { "type": "object", @@ -34186,14 +34191,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::StoredQuery" + "AWS::RTBFabric::InboundExternalLink" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::StoredQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html)" + "Resource Type definition for AWS::RTBFabric::InboundExternalLink Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-inboundexternallink.html)" ] }, "Properties": { - "$ref": "resources/aws-config-storedquery.json" + "$ref": "resources/aws-rtbfabric-inboundexternallink.json" } }, "required": [ @@ -34207,9 +34212,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_ApplicationInferenceProfile": { + "AWS_ConnectCampaignsV2_Campaign": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html)", + "markdownDescription": "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaignsv2-campaign.html)", "allOf": [ { "type": "object", @@ -34217,14 +34222,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::ApplicationInferenceProfile" + "AWS::ConnectCampaignsV2::Campaign" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html)" + "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connectcampaignsv2-campaign.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-applicationinferenceprofile.json" + "$ref": "resources/aws-connectcampaignsv2-campaign.json" } }, "required": [ @@ -34238,9 +34243,9 @@ ], "additionalProperties": false }, - "AWS_HealthLake_FHIRDatastore": { + "AWS_Wisdom_MessageTemplateVersion": { "type": "object", - "markdownDescription": "HealthLake FHIR Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html)", + "markdownDescription": "A version for the specified customer-managed message template within the specified knowledge base. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplateversion.html)", "allOf": [ { "type": "object", @@ -34248,14 +34253,14 @@ "Type": { "type": "string", "enum": [ - "AWS::HealthLake::FHIRDatastore" + "AWS::Wisdom::MessageTemplateVersion" ], "markdownEnumDescriptions": [ - "HealthLake FHIR Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html)" + "A version for the specified customer-managed message template within the specified knowledge base. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplateversion.html)" ] }, "Properties": { - "$ref": "resources/aws-healthlake-fhirdatastore.json" + "$ref": "resources/aws-wisdom-messagetemplateversion.json" } }, "required": [ @@ -34269,9 +34274,9 @@ ], "additionalProperties": false }, - "AWS_ECR_PullThroughCacheRule": { + "AWS_IAM_AccessKey": { "type": "object", - "markdownDescription": "The ``AWS::ECR::PullThroughCacheRule`` resource creates or updates a pull through cache rule. A pull through cache rule provides a way to cache images from an upstream registry in your Amazon ECR private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-pullthroughcacherule.html)", + "markdownDescription": "Resource Type definition for AWS::IAM::AccessKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html)", "allOf": [ { "type": "object", @@ -34279,18 +34284,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::PullThroughCacheRule" + "AWS::IAM::AccessKey" ], "markdownEnumDescriptions": [ - "The ``AWS::ECR::PullThroughCacheRule`` resource creates or updates a pull through cache rule. A pull through cache rule provides a way to cache images from an upstream registry in your Amazon ECR private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-pullthroughcacherule.html)" + "Resource Type definition for AWS::IAM::AccessKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-pullthroughcacherule.json" + "$ref": "resources/aws-iam-accesskey.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -34299,9 +34305,9 @@ ], "additionalProperties": false }, - "AWS_IdentityStore_GroupMembership": { + "AWS_EC2_RouteServer": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS:IdentityStore::GroupMembership \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html)", + "markdownDescription": "VPC Route Server \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html)", "allOf": [ { "type": "object", @@ -34309,14 +34315,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IdentityStore::GroupMembership" + "AWS::EC2::RouteServer" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS:IdentityStore::GroupMembership \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html)" + "VPC Route Server \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html)" ] }, "Properties": { - "$ref": "resources/aws-identitystore-groupmembership.json" + "$ref": "resources/aws-ec2-routeserver.json" } }, "required": [ @@ -34330,9 +34336,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Table": { + "AWS_MediaConvert_Queue": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html)", + "markdownDescription": "Resource Type definition for AWS::MediaConvert::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html)", "allOf": [ { "type": "object", @@ -34340,19 +34346,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Table" + "AWS::MediaConvert::Queue" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html)" + "Resource Type definition for AWS::MediaConvert::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-table.json" + "$ref": "resources/aws-mediaconvert-queue.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -34361,9 +34366,9 @@ ], "additionalProperties": false }, - "AWS_Budgets_BudgetsAction": { + "AWS_Organizations_Account": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html)", + "markdownDescription": "You can use AWS::Organizations::Account to manage accounts in organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-account.html)", "allOf": [ { "type": "object", @@ -34371,14 +34376,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Budgets::BudgetsAction" + "AWS::Organizations::Account" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html)" + "You can use AWS::Organizations::Account to manage accounts in organization. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-account.html)" ] }, "Properties": { - "$ref": "resources/aws-budgets-budgetsaction.json" + "$ref": "resources/aws-organizations-account.json" } }, "required": [ @@ -34392,9 +34397,9 @@ ], "additionalProperties": false }, - "AWS_DocDB_DBInstance": { + "AWS_CloudFront_AnycastIpList": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DocDB::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html)", + "markdownDescription": "An Anycast static IP list. For more information, see [Request Anycast static IPs to use for allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-anycastiplist.html)", "allOf": [ { "type": "object", @@ -34402,14 +34407,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DocDB::DBInstance" + "AWS::CloudFront::AnycastIpList" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DocDB::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html)" + "An Anycast static IP list. For more information, see [Request Anycast static IPs to use for allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-anycastiplist.html)" ] }, "Properties": { - "$ref": "resources/aws-docdb-dbinstance.json" + "$ref": "resources/aws-cloudfront-anycastiplist.json" } }, "required": [ @@ -34423,9 +34428,9 @@ ], "additionalProperties": false }, - "AWS_EventSchemas_Schema": { + "AWS_Batch_JobQueue": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EventSchemas::Schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html)", + "markdownDescription": "Resource Type definition for AWS::Batch::JobQueue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html)", "allOf": [ { "type": "object", @@ -34433,14 +34438,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EventSchemas::Schema" + "AWS::Batch::JobQueue" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EventSchemas::Schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html)" + "Resource Type definition for AWS::Batch::JobQueue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html)" ] }, "Properties": { - "$ref": "resources/aws-eventschemas-schema.json" + "$ref": "resources/aws-batch-jobqueue.json" } }, "required": [ @@ -34454,9 +34459,9 @@ ], "additionalProperties": false }, - "AWS_SecretsManager_Secret": { + "AWS_Bedrock_KnowledgeBase": { "type": "object", - "markdownDescription": "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html)", + "markdownDescription": "Definition of AWS::Bedrock::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html)", "allOf": [ { "type": "object", @@ -34464,18 +34469,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SecretsManager::Secret" + "AWS::Bedrock::KnowledgeBase" ], "markdownEnumDescriptions": [ - "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html)" + "Definition of AWS::Bedrock::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html)" ] }, "Properties": { - "$ref": "resources/aws-secretsmanager-secret.json" + "$ref": "resources/aws-bedrock-knowledgebase.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -34484,9 +34490,9 @@ ], "additionalProperties": false }, - "AWS_ManagedBlockchain_Accessor": { + "AWS_PinpointEmail_DedicatedIpPool": { "type": "object", - "markdownDescription": "Definition of AWS::ManagedBlockchain::com.amazonaws.taiga.webservice.api#Accessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-accessor.html)", + "markdownDescription": "Resource Type definition for AWS::PinpointEmail::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html)", "allOf": [ { "type": "object", @@ -34494,19 +34500,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ManagedBlockchain::Accessor" + "AWS::PinpointEmail::DedicatedIpPool" ], "markdownEnumDescriptions": [ - "Definition of AWS::ManagedBlockchain::com.amazonaws.taiga.webservice.api#Accessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-accessor.html)" + "Resource Type definition for AWS::PinpointEmail::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html)" ] }, "Properties": { - "$ref": "resources/aws-managedblockchain-accessor.json" + "$ref": "resources/aws-pinpointemail-dedicatedippool.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -34515,9 +34520,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_CoreDefinitionVersion": { + "AWS_ApiGateway_DomainName": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::CoreDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html)", + "markdownDescription": "The ``AWS::ApiGateway::DomainName`` resource specifies a public custom domain name for your API in API Gateway.\n To create a custom domain name for private APIs, use [AWS::ApiGateway::DomainNameV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html).\n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html)", "allOf": [ { "type": "object", @@ -34525,19 +34530,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::CoreDefinitionVersion" + "AWS::ApiGateway::DomainName" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::CoreDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html)" + "The ``AWS::ApiGateway::DomainName`` resource specifies a public custom domain name for your API in API Gateway.\n To create a custom domain name for private APIs, use [AWS::ApiGateway::DomainNameV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html).\n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-coredefinitionversion.json" + "$ref": "resources/aws-apigateway-domainname.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -34546,9 +34550,9 @@ ], "additionalProperties": false }, - "AWS_Synthetics_Group": { + "AWS_ServiceCatalog_PortfolioShare": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Synthetics::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-group.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::PortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html)", "allOf": [ { "type": "object", @@ -34556,14 +34560,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Synthetics::Group" + "AWS::ServiceCatalog::PortfolioShare" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Synthetics::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-group.html)" + "Resource Type definition for AWS::ServiceCatalog::PortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html)" ] }, "Properties": { - "$ref": "resources/aws-synthetics-group.json" + "$ref": "resources/aws-servicecatalog-portfolioshare.json" } }, "required": [ @@ -34577,9 +34581,9 @@ ], "additionalProperties": false }, - "AWS_IAM_UserPolicy": { + "AWS_MediaConnect_Bridge": { "type": "object", - "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM user.\n An IAM user can also have a managed policy attached to it. To attach a managed policy to a user, use [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a user, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::Bridge \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridge.html)", "allOf": [ { "type": "object", @@ -34587,14 +34591,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::UserPolicy" + "AWS::MediaConnect::Bridge" ], "markdownEnumDescriptions": [ - "Adds or updates an inline policy document that is embedded in the specified IAM user.\n An IAM user can also have a managed policy attached to it. To attach a managed policy to a user, use [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a user, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html)" + "Resource schema for AWS::MediaConnect::Bridge \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-bridge.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-userpolicy.json" + "$ref": "resources/aws-mediaconnect-bridge.json" } }, "required": [ @@ -34608,9 +34612,9 @@ ], "additionalProperties": false }, - "AWS_StepFunctions_StateMachine": { + "AWS_IoT_EncryptionConfiguration": { "type": "object", - "markdownDescription": "Resource schema for StateMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)", + "markdownDescription": "Resource Type definition for AWS::IoT::EncryptionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-encryptionconfiguration.html)", "allOf": [ { "type": "object", @@ -34618,14 +34622,14 @@ "Type": { "type": "string", "enum": [ - "AWS::StepFunctions::StateMachine" + "AWS::IoT::EncryptionConfiguration" ], "markdownEnumDescriptions": [ - "Resource schema for StateMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)" + "Resource Type definition for AWS::IoT::EncryptionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-encryptionconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-stepfunctions-statemachine.json" + "$ref": "resources/aws-iot-encryptionconfiguration.json" } }, "required": [ @@ -34639,9 +34643,9 @@ ], "additionalProperties": false }, - "AWS_ODB_CloudVmCluster": { + "AWS_Cassandra_Table": { "type": "object", - "markdownDescription": "The AWS::ODB::CloudVmCluster resource creates a Cloud VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudvmcluster.html)", + "markdownDescription": "Resource schema for AWS::Cassandra::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html)", "allOf": [ { "type": "object", @@ -34649,18 +34653,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ODB::CloudVmCluster" + "AWS::Cassandra::Table" ], "markdownEnumDescriptions": [ - "The AWS::ODB::CloudVmCluster resource creates a Cloud VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudvmcluster.html)" + "Resource schema for AWS::Cassandra::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html)" ] }, "Properties": { - "$ref": "resources/aws-odb-cloudvmcluster.json" + "$ref": "resources/aws-cassandra-table.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -34669,9 +34674,9 @@ ], "additionalProperties": false }, - "AWS_ECR_PublicRepository": { + "AWS_CleanRooms_IdMappingTable": { "type": "object", - "markdownDescription": "The ``AWS::ECR::PublicRepository`` resource specifies an Amazon Elastic Container Registry Public (Amazon ECR Public) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR public repositories](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repositories.html) in the *Amazon ECR Public User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html)", + "markdownDescription": "Represents an association between an ID mapping workflow and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idmappingtable.html)", "allOf": [ { "type": "object", @@ -34679,18 +34684,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::PublicRepository" + "AWS::CleanRooms::IdMappingTable" ], "markdownEnumDescriptions": [ - "The ``AWS::ECR::PublicRepository`` resource specifies an Amazon Elastic Container Registry Public (Amazon ECR Public) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR public repositories](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repositories.html) in the *Amazon ECR Public User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html)" + "Represents an association between an ID mapping workflow and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idmappingtable.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-publicrepository.json" + "$ref": "resources/aws-cleanrooms-idmappingtable.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -34699,9 +34705,9 @@ ], "additionalProperties": false }, - "AWS_IoT_ThingType": { + "AWS_BedrockAgentCore_GatewayTarget": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::ThingType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::GatewayTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gatewaytarget.html)", "allOf": [ { "type": "object", @@ -34709,18 +34715,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::ThingType" + "AWS::BedrockAgentCore::GatewayTarget" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::ThingType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html)" + "Resource Type definition for AWS::BedrockAgentCore::GatewayTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gatewaytarget.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-thingtype.json" + "$ref": "resources/aws-bedrockagentcore-gatewaytarget.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -34729,9 +34736,9 @@ ], "additionalProperties": false }, - "AWS_Athena_DataCatalog": { + "AWS_VerifiedPermissions_PolicyStore": { "type": "object", - "markdownDescription": "Resource schema for AWS::Athena::DataCatalog \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html)", + "markdownDescription": "Represents a policy store that you can place schema, policies, and policy templates in to validate authorization requests \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policystore.html)", "allOf": [ { "type": "object", @@ -34739,14 +34746,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Athena::DataCatalog" + "AWS::VerifiedPermissions::PolicyStore" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Athena::DataCatalog \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html)" + "Represents a policy store that you can place schema, policies, and policy templates in to validate authorization requests \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policystore.html)" ] }, "Properties": { - "$ref": "resources/aws-athena-datacatalog.json" + "$ref": "resources/aws-verifiedpermissions-policystore.json" } }, "required": [ @@ -34760,9 +34767,9 @@ ], "additionalProperties": false }, - "AWS_IoTTwinMaker_ComponentType": { + "AWS_BedrockAgentCore_OAuth2CredentialProvider": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTTwinMaker::ComponentType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-componenttype.html)", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::OAuth2CredentialProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-oauth2credentialprovider.html)", "allOf": [ { "type": "object", @@ -34770,14 +34777,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTTwinMaker::ComponentType" + "AWS::BedrockAgentCore::OAuth2CredentialProvider" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTTwinMaker::ComponentType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-componenttype.html)" + "Resource Type definition for AWS::BedrockAgentCore::OAuth2CredentialProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-oauth2credentialprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-iottwinmaker-componenttype.json" + "$ref": "resources/aws-bedrockagentcore-oauth2credentialprovider.json" } }, "required": [ @@ -34791,9 +34798,9 @@ ], "additionalProperties": false }, - "AWS_CertificateManager_Certificate": { + "AWS_ResourceGroups_Group": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CertificateManager::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html)", + "markdownDescription": "Schema for ResourceGroups::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html)", "allOf": [ { "type": "object", @@ -34801,14 +34808,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CertificateManager::Certificate" + "AWS::ResourceGroups::Group" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CertificateManager::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html)" + "Schema for ResourceGroups::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html)" ] }, "Properties": { - "$ref": "resources/aws-certificatemanager-certificate.json" + "$ref": "resources/aws-resourcegroups-group.json" } }, "required": [ @@ -34822,9 +34829,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_ConfiguredTable": { + "AWS_ApiGatewayV2_ApiGatewayManagedOverrides": { "type": "object", - "markdownDescription": "Represents a table that can be associated with collaborations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtable.html)", + "markdownDescription": "Resource Type definition for AWS::ApiGatewayV2::ApiGatewayManagedOverrides \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html)", "allOf": [ { "type": "object", @@ -34832,14 +34839,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::ConfiguredTable" + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides" ], "markdownEnumDescriptions": [ - "Represents a table that can be associated with collaborations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtable.html)" + "Resource Type definition for AWS::ApiGatewayV2::ApiGatewayManagedOverrides \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-configuredtable.json" + "$ref": "resources/aws-apigatewayv2-apigatewaymanagedoverrides.json" } }, "required": [ @@ -34853,9 +34860,9 @@ ], "additionalProperties": false }, - "AWS_LookoutMetrics_Alert": { + "AWS_KinesisAnalytics_Application": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::LookoutMetrics::Alert \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html)", + "markdownDescription": "Resource Type definition for AWS::KinesisAnalytics::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html)", "allOf": [ { "type": "object", @@ -34863,14 +34870,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LookoutMetrics::Alert" + "AWS::KinesisAnalytics::Application" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::LookoutMetrics::Alert \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html)" + "Resource Type definition for AWS::KinesisAnalytics::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html)" ] }, "Properties": { - "$ref": "resources/aws-lookoutmetrics-alert.json" + "$ref": "resources/aws-kinesisanalytics-application.json" } }, "required": [ @@ -34884,9 +34891,9 @@ ], "additionalProperties": false }, - "AWS_Neptune_DBClusterParameterGroup": { + "AWS_IoTSiteWise_Gateway": { "type": "object", - "markdownDescription": "The AWS::Neptune::DBClusterParameterGroup resource creates a new Amazon Neptune DB cluster parameter group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html)", "allOf": [ { "type": "object", @@ -34894,14 +34901,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Neptune::DBClusterParameterGroup" + "AWS::IoTSiteWise::Gateway" ], "markdownEnumDescriptions": [ - "The AWS::Neptune::DBClusterParameterGroup resource creates a new Amazon Neptune DB cluster parameter group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html)" + "Resource schema for AWS::IoTSiteWise::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html)" ] }, "Properties": { - "$ref": "resources/aws-neptune-dbclusterparametergroup.json" + "$ref": "resources/aws-iotsitewise-gateway.json" } }, "required": [ @@ -34915,9 +34922,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Authorizer": { + "AWS_ElasticBeanstalk_ApplicationVersion": { "type": "object", - "markdownDescription": "Creates an authorizer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html)", + "markdownDescription": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html)", "allOf": [ { "type": "object", @@ -34925,14 +34932,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Authorizer" + "AWS::ElasticBeanstalk::ApplicationVersion" ], "markdownEnumDescriptions": [ - "Creates an authorizer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html)" + "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-authorizer.json" + "$ref": "resources/aws-elasticbeanstalk-applicationversion.json" } }, "required": [ @@ -34946,9 +34953,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VerifiedAccessTrustProvider": { + "AWS_OpenSearchServerless_LifecyclePolicy": { "type": "object", - "markdownDescription": "The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html)", + "markdownDescription": "Amazon OpenSearchServerless lifecycle policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-lifecyclepolicy.html)", "allOf": [ { "type": "object", @@ -34956,14 +34963,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VerifiedAccessTrustProvider" + "AWS::OpenSearchServerless::LifecyclePolicy" ], "markdownEnumDescriptions": [ - "The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html)" + "Amazon OpenSearchServerless lifecycle policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-lifecyclepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-verifiedaccesstrustprovider.json" + "$ref": "resources/aws-opensearchserverless-lifecyclepolicy.json" } }, "required": [ @@ -34977,9 +34984,9 @@ ], "additionalProperties": false }, - "AWS_SSM_Parameter": { + "AWS_Oam_Sink": { "type": "object", - "markdownDescription": "The ``AWS::SSM::Parameter`` resource creates an SSM parameter in SYSlong Parameter Store.\n To create an SSM parameter, you must have the IAMlong (IAM) permissions ``ssm:PutParameter`` and ``ssm:AddTagsToResource``. On stack creation, CFNlong adds the following three tags to the parameter: ``aws:cloudformation:stack-name``, ``aws:cloudformation:logical-id``, and ``aws:cloudformation:stack-id``, in addition to any custom tags you specify.\n To add, update, or remove tags during stack update, you must have IAM permissions for both ``ssm:AddTagsToResource`` and ``ssm:RemoveTagsFromResource``. For more information, see [Managing access using policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/security-iam.html#security_iam_access-manage) in the *User Guide*.\n For information about valid values for parameters, see [About requirements and constraints for parameter names](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html#sysman-parameter-name-constraints) in the *User Guide* and [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) in the *API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html)", + "markdownDescription": "Resource Type definition for AWS::Oam::Sink \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)", "allOf": [ { "type": "object", @@ -34987,14 +34994,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSM::Parameter" + "AWS::Oam::Sink" ], "markdownEnumDescriptions": [ - "The ``AWS::SSM::Parameter`` resource creates an SSM parameter in SYSlong Parameter Store.\n To create an SSM parameter, you must have the IAMlong (IAM) permissions ``ssm:PutParameter`` and ``ssm:AddTagsToResource``. On stack creation, CFNlong adds the following three tags to the parameter: ``aws:cloudformation:stack-name``, ``aws:cloudformation:logical-id``, and ``aws:cloudformation:stack-id``, in addition to any custom tags you specify.\n To add, update, or remove tags during stack update, you must have IAM permissions for both ``ssm:AddTagsToResource`` and ``ssm:RemoveTagsFromResource``. For more information, see [Managing access using policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/security-iam.html#security_iam_access-manage) in the *User Guide*.\n For information about valid values for parameters, see [About requirements and constraints for parameter names](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html#sysman-parameter-name-constraints) in the *User Guide* and [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) in the *API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html)" + "Resource Type definition for AWS::Oam::Sink \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)" ] }, "Properties": { - "$ref": "resources/aws-ssm-parameter.json" + "$ref": "resources/aws-oam-sink.json" } }, "required": [ @@ -35008,9 +35015,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_List": { + "AWS_WAFv2_LoggingConfiguration": { "type": "object", - "markdownDescription": "A resource schema for a List in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-list.html)", + "markdownDescription": "A WAFv2 Logging Configuration Resource Provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html)", "allOf": [ { "type": "object", @@ -35018,14 +35025,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::List" + "AWS::WAFv2::LoggingConfiguration" ], "markdownEnumDescriptions": [ - "A resource schema for a List in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-list.html)" + "A WAFv2 Logging Configuration Resource Provider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-list.json" + "$ref": "resources/aws-wafv2-loggingconfiguration.json" } }, "required": [ @@ -35039,9 +35046,9 @@ ], "additionalProperties": false }, - "AWS_EMR_StudioSessionMapping": { + "AWS_Transfer_Workflow": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html)", + "markdownDescription": "Resource Type definition for AWS::Transfer::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-workflow.html)", "allOf": [ { "type": "object", @@ -35049,14 +35056,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::StudioSessionMapping" + "AWS::Transfer::Workflow" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html)" + "Resource Type definition for AWS::Transfer::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-workflow.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-studiosessionmapping.json" + "$ref": "resources/aws-transfer-workflow.json" } }, "required": [ @@ -35070,9 +35077,9 @@ ], "additionalProperties": false }, - "AWS_WAFv2_IPSet": { + "AWS_RedshiftServerless_Snapshot": { "type": "object", - "markdownDescription": "Contains a list of IP addresses. This can be either IPV4 or IPV6. The list will be mutually \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html)", + "markdownDescription": "Resource Type definition for AWS::RedshiftServerless::Snapshot Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-snapshot.html)", "allOf": [ { "type": "object", @@ -35080,14 +35087,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFv2::IPSet" + "AWS::RedshiftServerless::Snapshot" ], "markdownEnumDescriptions": [ - "Contains a list of IP addresses. This can be either IPV4 or IPV6. The list will be mutually \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html)" + "Resource Type definition for AWS::RedshiftServerless::Snapshot Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-snapshot.html)" ] }, "Properties": { - "$ref": "resources/aws-wafv2-ipset.json" + "$ref": "resources/aws-redshiftserverless-snapshot.json" } }, "required": [ @@ -35101,9 +35108,9 @@ ], "additionalProperties": false }, - "AWS_AppIntegrations_Application": { + "AWS_Bedrock_ResourcePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS:AppIntegrations::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html)", + "markdownDescription": "Definition of AWS::Bedrock::ResourcePolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -35111,14 +35118,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppIntegrations::Application" + "AWS::Bedrock::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS:AppIntegrations::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html)" + "Definition of AWS::Bedrock::ResourcePolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-appintegrations-application.json" + "$ref": "resources/aws-bedrock-resourcepolicy.json" } }, "required": [ @@ -35132,9 +35139,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_IpAccessSettings": { + "AWS_FSx_Volume": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::IpAccessSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-ipaccesssettings.html)", + "markdownDescription": "Resource Type definition for AWS::FSx::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-volume.html)", "allOf": [ { "type": "object", @@ -35142,14 +35149,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::IpAccessSettings" + "AWS::FSx::Volume" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::IpAccessSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-ipaccesssettings.html)" + "Resource Type definition for AWS::FSx::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-volume.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-ipaccesssettings.json" + "$ref": "resources/aws-fsx-volume.json" } }, "required": [ @@ -35163,9 +35170,9 @@ ], "additionalProperties": false }, - "AWS_NetworkFirewall_VpcEndpointAssociation": { + "AWS_KendraRanking_ExecutionPlan": { "type": "object", - "markdownDescription": "Resource type definition for AWS::NetworkFirewall::VpcEndpointAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-vpcendpointassociation.html)", + "markdownDescription": "A KendraRanking Rescore execution plan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendraranking-executionplan.html)", "allOf": [ { "type": "object", @@ -35173,14 +35180,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkFirewall::VpcEndpointAssociation" + "AWS::KendraRanking::ExecutionPlan" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::NetworkFirewall::VpcEndpointAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-vpcendpointassociation.html)" + "A KendraRanking Rescore execution plan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendraranking-executionplan.html)" ] }, "Properties": { - "$ref": "resources/aws-networkfirewall-vpcendpointassociation.json" + "$ref": "resources/aws-kendraranking-executionplan.json" } }, "required": [ @@ -35194,9 +35201,9 @@ ], "additionalProperties": false }, - "AWS_Glue_TableOptimizer": { + "AWS_SMSVOICE_Pool": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::TableOptimizer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html)", + "markdownDescription": "Resource Type definition for AWS::SMSVOICE::Pool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html)", "allOf": [ { "type": "object", @@ -35204,14 +35211,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::TableOptimizer" + "AWS::SMSVOICE::Pool" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::TableOptimizer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html)" + "Resource Type definition for AWS::SMSVOICE::Pool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-tableoptimizer.json" + "$ref": "resources/aws-smsvoice-pool.json" } }, "required": [ @@ -35225,9 +35232,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackageV2_OriginEndpoint": { + "AWS_CustomerProfiles_SegmentDefinition": { "type": "object", - "markdownDescription": "

Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpoint.html)", + "markdownDescription": "A segment definition resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-segmentdefinition.html)", "allOf": [ { "type": "object", @@ -35235,14 +35242,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackageV2::OriginEndpoint" + "AWS::CustomerProfiles::SegmentDefinition" ], "markdownEnumDescriptions": [ - "

Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpoint.html)" + "A segment definition resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-segmentdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackagev2-originendpoint.json" + "$ref": "resources/aws-customerprofiles-segmentdefinition.json" } }, "required": [ @@ -35256,9 +35263,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_RequestValidator": { + "AWS_Batch_SchedulingPolicy": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::RequestValidator`` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html)", + "markdownDescription": "Resource Type definition for AWS::Batch::SchedulingPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html)", "allOf": [ { "type": "object", @@ -35266,19 +35273,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::RequestValidator" + "AWS::Batch::SchedulingPolicy" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::RequestValidator`` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html)" + "Resource Type definition for AWS::Batch::SchedulingPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-requestvalidator.json" + "$ref": "resources/aws-batch-schedulingpolicy.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -35287,9 +35293,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBInstance": { + "AWS_MediaConnect_RouterNetworkInterface": { "type": "object", - "markdownDescription": "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html)", + "markdownDescription": "Represents a router network interface in AWS Elemental MediaConnect that is used to define a network boundary for router resources \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-routernetworkinterface.html)", "allOf": [ { "type": "object", @@ -35297,18 +35303,19 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBInstance" + "AWS::MediaConnect::RouterNetworkInterface" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html)" + "Represents a router network interface in AWS Elemental MediaConnect that is used to define a network boundary for router resources \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-routernetworkinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbinstance.json" + "$ref": "resources/aws-mediaconnect-routernetworkinterface.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -35317,9 +35324,9 @@ ], "additionalProperties": false }, - "AWS_SimSpaceWeaver_Simulation": { + "AWS_WAFv2_WebACLAssociation": { "type": "object", - "markdownDescription": "AWS::SimSpaceWeaver::Simulation resource creates an AWS Simulation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html)", + "markdownDescription": "Associates WebACL to Application Load Balancer, CloudFront or API Gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)", "allOf": [ { "type": "object", @@ -35327,14 +35334,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SimSpaceWeaver::Simulation" + "AWS::WAFv2::WebACLAssociation" ], "markdownEnumDescriptions": [ - "AWS::SimSpaceWeaver::Simulation resource creates an AWS Simulation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html)" + "Associates WebACL to Application Load Balancer, CloudFront or API Gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-simspaceweaver-simulation.json" + "$ref": "resources/aws-wafv2-webaclassociation.json" } }, "required": [ @@ -35348,9 +35355,9 @@ ], "additionalProperties": false }, - "AWS_ResourceExplorer2_View": { + "AWS_Connect_ContactFlowModuleVersion": { "type": "object", - "markdownDescription": "Definition of AWS::ResourceExplorer2::View Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-view.html)", + "markdownDescription": "Resource Type definition for ContactFlowModuleVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmoduleversion.html)", "allOf": [ { "type": "object", @@ -35358,14 +35365,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ResourceExplorer2::View" + "AWS::Connect::ContactFlowModuleVersion" ], "markdownEnumDescriptions": [ - "Definition of AWS::ResourceExplorer2::View Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourceexplorer2-view.html)" + "Resource Type definition for ContactFlowModuleVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmoduleversion.html)" ] }, "Properties": { - "$ref": "resources/aws-resourceexplorer2-view.json" + "$ref": "resources/aws-connect-contactflowmoduleversion.json" } }, "required": [ @@ -35379,9 +35386,9 @@ ], "additionalProperties": false }, - "AWS_PinpointEmail_Identity": { + "AWS_Connect_ContactFlow": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::PinpointEmail::Identity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::ContactFlow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html)", "allOf": [ { "type": "object", @@ -35389,14 +35396,14 @@ "Type": { "type": "string", "enum": [ - "AWS::PinpointEmail::Identity" + "AWS::Connect::ContactFlow" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::PinpointEmail::Identity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html)" + "Resource Type definition for AWS::Connect::ContactFlow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpointemail-identity.json" + "$ref": "resources/aws-connect-contactflow.json" } }, "required": [ @@ -35410,9 +35417,9 @@ ], "additionalProperties": false }, - "AWS_Route53RecoveryControl_SafetyRule": { + "AWS_SageMaker_CodeRepository": { "type": "object", - "markdownDescription": "Resource schema for AWS Route53 Recovery Control basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-safetyrule.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::CodeRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-coderepository.html)", "allOf": [ { "type": "object", @@ -35420,18 +35427,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53RecoveryControl::SafetyRule" + "AWS::SageMaker::CodeRepository" ], "markdownEnumDescriptions": [ - "Resource schema for AWS Route53 Recovery Control basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-safetyrule.html)" + "Resource Type definition for AWS::SageMaker::CodeRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-coderepository.html)" ] }, "Properties": { - "$ref": "resources/aws-route53recoverycontrol-safetyrule.json" + "$ref": "resources/aws-sagemaker-coderepository.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -35440,9 +35448,9 @@ ], "additionalProperties": false }, - "AWS_ODB_CloudAutonomousVmCluster": { + "AWS_Glue_CustomEntityType": { "type": "object", - "markdownDescription": "The AWS::ODB::CloudAutonomousVmCluster resource creates a Cloud Autonomous VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudautonomousvmcluster.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::CustomEntityType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html)", "allOf": [ { "type": "object", @@ -35450,14 +35458,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ODB::CloudAutonomousVmCluster" + "AWS::Glue::CustomEntityType" ], "markdownEnumDescriptions": [ - "The AWS::ODB::CloudAutonomousVmCluster resource creates a Cloud Autonomous VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudautonomousvmcluster.html)" + "Resource Type definition for AWS::Glue::CustomEntityType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html)" ] }, "Properties": { - "$ref": "resources/aws-odb-cloudautonomousvmcluster.json" + "$ref": "resources/aws-glue-customentitytype.json" } }, "required": [ @@ -35470,9 +35478,9 @@ ], "additionalProperties": false }, - "AWS_DataBrew_Recipe": { + "AWS_IVS_RecordingConfiguration": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataBrew::Recipe. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::RecordingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html)", "allOf": [ { "type": "object", @@ -35480,14 +35488,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataBrew::Recipe" + "AWS::IVS::RecordingConfiguration" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataBrew::Recipe. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html)" + "Resource Type definition for AWS::IVS::RecordingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-databrew-recipe.json" + "$ref": "resources/aws-ivs-recordingconfiguration.json" } }, "required": [ @@ -35501,9 +35509,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_WirelessDevice": { + "AWS_GroundStation_DataflowEndpointGroupV2": { "type": "object", - "markdownDescription": "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html)", + "markdownDescription": "Resource Type definition for AWS Ground Station DataflowEndpointGroupV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroupv2.html)", "allOf": [ { "type": "object", @@ -35511,19 +35519,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::WirelessDevice" + "AWS::GroundStation::DataflowEndpointGroupV2" ], "markdownEnumDescriptions": [ - "Create and manage wireless gateways, including LoRa gateways. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html)" + "Resource Type definition for AWS Ground Station DataflowEndpointGroupV2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroupv2.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-wirelessdevice.json" + "$ref": "resources/aws-groundstation-dataflowendpointgroupv2.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -35532,9 +35539,9 @@ ], "additionalProperties": false }, - "AWS_Events_ApiDestination": { + "AWS_QuickSight_VPCConnection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Events::ApiDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html)", + "markdownDescription": "Definition of the AWS::QuickSight::VPCConnection Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-vpcconnection.html)", "allOf": [ { "type": "object", @@ -35542,19 +35549,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::ApiDestination" + "AWS::QuickSight::VPCConnection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Events::ApiDestination. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html)" + "Definition of the AWS::QuickSight::VPCConnection Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-vpcconnection.html)" ] }, "Properties": { - "$ref": "resources/aws-events-apidestination.json" + "$ref": "resources/aws-quicksight-vpcconnection.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -35563,9 +35569,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Job": { + "AWS_CloudTrail_Channel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Job \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html)", + "markdownDescription": "A channel receives events from a specific source (such as an on-premises storage solution or application, or a partner event data source), and delivers the events to one or more event data stores. You use channels to ingest events into CloudTrail from sources outside AWS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-channel.html)", "allOf": [ { "type": "object", @@ -35573,19 +35579,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Job" + "AWS::CloudTrail::Channel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Job \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html)" + "A channel receives events from a specific source (such as an on-premises storage solution or application, or a partner event data source), and delivers the events to one or more event data stores. You use channels to ingest events into CloudTrail from sources outside AWS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-channel.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-job.json" + "$ref": "resources/aws-cloudtrail-channel.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -35594,9 +35599,9 @@ ], "additionalProperties": false }, - "AWS_B2BI_Partnership": { + "AWS_ApiGatewayV2_Model": { "type": "object", - "markdownDescription": "Definition of AWS::B2BI::Partnership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-partnership.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::Model`` resource updates data model for a WebSocket API. For more information, see [Model Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html)", "allOf": [ { "type": "object", @@ -35604,14 +35609,14 @@ "Type": { "type": "string", "enum": [ - "AWS::B2BI::Partnership" + "AWS::ApiGatewayV2::Model" ], "markdownEnumDescriptions": [ - "Definition of AWS::B2BI::Partnership Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-partnership.html)" + "The ``AWS::ApiGatewayV2::Model`` resource updates data model for a WebSocket API. For more information, see [Model Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html)" ] }, "Properties": { - "$ref": "resources/aws-b2bi-partnership.json" + "$ref": "resources/aws-apigatewayv2-model.json" } }, "required": [ @@ -35625,9 +35630,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_ModelManifest": { + "AWS_BedrockAgentCore_CodeInterpreterCustom": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::ModelManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-modelmanifest.html)", + "markdownDescription": "Resource definition for AWS::BedrockAgentCore::CodeInterpreterCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-codeinterpretercustom.html)", "allOf": [ { "type": "object", @@ -35635,14 +35640,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::ModelManifest" + "AWS::BedrockAgentCore::CodeInterpreterCustom" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::ModelManifest Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-modelmanifest.html)" + "Resource definition for AWS::BedrockAgentCore::CodeInterpreterCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-codeinterpretercustom.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-modelmanifest.json" + "$ref": "resources/aws-bedrockagentcore-codeinterpretercustom.json" } }, "required": [ @@ -35656,9 +35661,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Alarm": { + "AWS_EC2_VerifiedAccessGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Alarm \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-alarm.html)", + "markdownDescription": "The AWS::EC2::VerifiedAccessGroup resource creates an AWS EC2 Verified Access Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html)", "allOf": [ { "type": "object", @@ -35666,14 +35671,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Alarm" + "AWS::EC2::VerifiedAccessGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Alarm \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-alarm.html)" + "The AWS::EC2::VerifiedAccessGroup resource creates an AWS EC2 Verified Access Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-alarm.json" + "$ref": "resources/aws-ec2-verifiedaccessgroup.json" } }, "required": [ @@ -35687,9 +35692,9 @@ ], "additionalProperties": false }, - "AWS_IVS_Stage": { + "AWS_ElasticLoadBalancingV2_ListenerCertificate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::Stage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-stage.html)", + "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)", "allOf": [ { "type": "object", @@ -35697,18 +35702,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::Stage" + "AWS::ElasticLoadBalancingV2::ListenerCertificate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::Stage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-stage.html)" + "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-stage.json" + "$ref": "resources/aws-elasticloadbalancingv2-listenercertificate.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -35717,9 +35723,9 @@ ], "additionalProperties": false }, - "AWS_Events_EventBusPolicy": { + "AWS_RDS_EventSubscription": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Events::EventBusPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)", + "markdownDescription": "The ``AWS::RDS::EventSubscription`` resource allows you to receive notifications for Amazon Relational Database Service events through the Amazon Simple Notification Service (Amazon SNS). For more information, see [Using Amazon RDS Event Notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html)", "allOf": [ { "type": "object", @@ -35727,14 +35733,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::RDS::EventSubscription" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Events::EventBusPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)" + "The ``AWS::RDS::EventSubscription`` resource allows you to receive notifications for Amazon Relational Database Service events through the Amazon Simple Notification Service (Amazon SNS). For more information, see [Using Amazon RDS Event Notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) in the *Amazon RDS User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-events-eventbuspolicy.json" + "$ref": "resources/aws-rds-eventsubscription.json" } }, "required": [ @@ -35748,9 +35754,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Integration": { + "AWS_Wisdom_AIGuardrail": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html)", + "markdownDescription": "Definition of AWS::Wisdom::AIGuardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrail.html)", "allOf": [ { "type": "object", @@ -35758,14 +35764,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Integration" + "AWS::Wisdom::AIGuardrail" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html)" + "Definition of AWS::Wisdom::AIGuardrail Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrail.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-integration.json" + "$ref": "resources/aws-wisdom-aiguardrail.json" } }, "required": [ @@ -35779,9 +35785,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_PublicKey": { + "AWS_SageMaker_InferenceComponent": { "type": "object", - "markdownDescription": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::InferenceComponent \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferencecomponent.html)", "allOf": [ { "type": "object", @@ -35789,14 +35795,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::PublicKey" + "AWS::SageMaker::InferenceComponent" ], "markdownEnumDescriptions": [ - "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)" + "Resource Type definition for AWS::SageMaker::InferenceComponent \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-inferencecomponent.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-publickey.json" + "$ref": "resources/aws-sagemaker-inferencecomponent.json" } }, "required": [ @@ -35810,9 +35816,9 @@ ], "additionalProperties": false }, - "AWS_EMR_Studio": { + "AWS_RDS_DBInstance": { "type": "object", - "markdownDescription": "Resource schema for AWS::EMR::Studio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html)", + "markdownDescription": "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html)", "allOf": [ { "type": "object", @@ -35820,19 +35826,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::Studio" + "AWS::RDS::DBInstance" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EMR::Studio \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html)" + "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:*[Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-studio.json" + "$ref": "resources/aws-rds-dbinstance.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -35841,9 +35846,9 @@ ], "additionalProperties": false }, - "AWS_ECR_ReplicationConfiguration": { + "AWS_ACMPCA_Certificate": { "type": "object", - "markdownDescription": "The ``AWS::ECR::ReplicationConfiguration`` resource creates or updates the replication configuration for a private registry. The first time a replication configuration is applied to a private registry, a service-linked IAM role is created in your account for the replication process. For more information, see [Using Service-Linked Roles for Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html) in the *Amazon Elastic Container Registry User Guide*.\n When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a private registry permissions policy. For more information, see ``AWS::ECR::RegistryPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-replicationconfiguration.html)", + "markdownDescription": "The ``AWS::ACMPCA::Certificate`` resource is used to issue a certificate using your private certificate authority. For more information, see the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html)", "allOf": [ { "type": "object", @@ -35851,14 +35856,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::ReplicationConfiguration" + "AWS::ACMPCA::Certificate" ], "markdownEnumDescriptions": [ - "The ``AWS::ECR::ReplicationConfiguration`` resource creates or updates the replication configuration for a private registry. The first time a replication configuration is applied to a private registry, a service-linked IAM role is created in your account for the replication process. For more information, see [Using Service-Linked Roles for Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html) in the *Amazon Elastic Container Registry User Guide*.\n When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a private registry permissions policy. For more information, see ``AWS::ECR::RegistryPolicy``. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-replicationconfiguration.html)" + "The ``AWS::ACMPCA::Certificate`` resource is used to issue a certificate using your private certificate authority. For more information, see the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-replicationconfiguration.json" + "$ref": "resources/aws-acmpca-certificate.json" } }, "required": [ @@ -35872,9 +35877,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_PortfolioPrincipalAssociation": { + "AWS_FSx_Snapshot": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html)", + "markdownDescription": "Resource Type definition for AWS::FSx::Snapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-snapshot.html)", "allOf": [ { "type": "object", @@ -35882,14 +35887,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::PortfolioPrincipalAssociation" + "AWS::FSx::Snapshot" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html)" + "Resource Type definition for AWS::FSx::Snapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-snapshot.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-portfolioprincipalassociation.json" + "$ref": "resources/aws-fsx-snapshot.json" } }, "required": [ @@ -35903,9 +35908,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_GlobalReplicationGroup": { + "AWS_SupportApp_SlackChannelConfiguration": { "type": "object", - "markdownDescription": "The AWS::ElastiCache::GlobalReplicationGroup resource creates an Amazon ElastiCache Global Replication Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html)", + "markdownDescription": "An AWS Support App resource that creates, updates, lists and deletes Slack channel configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html)", "allOf": [ { "type": "object", @@ -35913,14 +35918,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::GlobalReplicationGroup" + "AWS::SupportApp::SlackChannelConfiguration" ], "markdownEnumDescriptions": [ - "The AWS::ElastiCache::GlobalReplicationGroup resource creates an Amazon ElastiCache Global Replication Group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html)" + "An AWS Support App resource that creates, updates, lists and deletes Slack channel configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-globalreplicationgroup.json" + "$ref": "resources/aws-supportapp-slackchannelconfiguration.json" } }, "required": [ @@ -35934,9 +35939,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_SiteToSiteVpnAttachment": { + "AWS_OpenSearchService_Application": { "type": "object", - "markdownDescription": "AWS::NetworkManager::SiteToSiteVpnAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-sitetositevpnattachment.html)", + "markdownDescription": "Amazon OpenSearchService application resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-application.html)", "allOf": [ { "type": "object", @@ -35944,14 +35949,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::SiteToSiteVpnAttachment" + "AWS::OpenSearchService::Application" ], "markdownEnumDescriptions": [ - "AWS::NetworkManager::SiteToSiteVpnAttachment Resource Type definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-sitetositevpnattachment.html)" + "Amazon OpenSearchService application resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-application.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-sitetositevpnattachment.json" + "$ref": "resources/aws-opensearchservice-application.json" } }, "required": [ @@ -35965,9 +35970,9 @@ ], "additionalProperties": false }, - "AWS_IAM_InstanceProfile": { + "AWS_EC2_IPAMPoolCidr": { "type": "object", - "markdownDescription": "Creates a new instance profile. For information about instance profiles, see [Using instance profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html).\n For information about the number of instance profiles you can create, see [object quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)", + "markdownDescription": "Resource Schema of AWS::EC2::IPAMPoolCidr Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html)", "allOf": [ { "type": "object", @@ -35975,14 +35980,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::InstanceProfile" + "AWS::EC2::IPAMPoolCidr" ], "markdownEnumDescriptions": [ - "Creates a new instance profile. For information about instance profiles, see [Using instance profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html).\n For information about the number of instance profiles you can create, see [object quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)" + "Resource Schema of AWS::EC2::IPAMPoolCidr Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-instanceprofile.json" + "$ref": "resources/aws-ec2-ipampoolcidr.json" } }, "required": [ @@ -35996,9 +36001,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_RefreshSchedule": { + "AWS_ODB_CloudAutonomousVmCluster": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::RefreshSchedule Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-refreshschedule.html)", + "markdownDescription": "The AWS::ODB::CloudAutonomousVmCluster resource creates a Cloud Autonomous VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudautonomousvmcluster.html)", "allOf": [ { "type": "object", @@ -36006,14 +36011,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::RefreshSchedule" + "AWS::ODB::CloudAutonomousVmCluster" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::RefreshSchedule Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-refreshschedule.html)" + "The AWS::ODB::CloudAutonomousVmCluster resource creates a Cloud Autonomous VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudautonomousvmcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-refreshschedule.json" + "$ref": "resources/aws-odb-cloudautonomousvmcluster.json" } }, "required": [ @@ -36026,9 +36031,9 @@ ], "additionalProperties": false }, - "AWS_FraudDetector_EventType": { + "AWS_AuditManager_Assessment": { "type": "object", - "markdownDescription": "A resource schema for an EventType in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html)", + "markdownDescription": "An entity that defines the scope of audit evidence collected by AWS Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html)", "allOf": [ { "type": "object", @@ -36036,19 +36041,18 @@ "Type": { "type": "string", "enum": [ - "AWS::FraudDetector::EventType" + "AWS::AuditManager::Assessment" ], "markdownEnumDescriptions": [ - "A resource schema for an EventType in Amazon Fraud Detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html)" + "An entity that defines the scope of audit evidence collected by AWS Audit Manager. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html)" ] }, "Properties": { - "$ref": "resources/aws-frauddetector-eventtype.json" + "$ref": "resources/aws-auditmanager-assessment.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -36057,9 +36061,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_TrustStore": { + "AWS_PCAConnectorAD_Template": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::TrustStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-truststore.html)", + "markdownDescription": "Represents a template that defines certificate configurations, both for issuance and client handling \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-template.html)", "allOf": [ { "type": "object", @@ -36067,14 +36071,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::TrustStore" + "AWS::PCAConnectorAD::Template" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::TrustStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-truststore.html)" + "Represents a template that defines certificate configurations, both for issuance and client handling \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorad-template.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-truststore.json" + "$ref": "resources/aws-pcaconnectorad-template.json" } }, "required": [ @@ -36088,9 +36092,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_Dataset": { + "AWS_ApiGateway_Resource": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dataset.html)", + "markdownDescription": "The ``AWS::ApiGateway::Resource`` resource creates a resource in an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)", "allOf": [ { "type": "object", @@ -36098,14 +36102,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::Dataset" + "AWS::ApiGateway::Resource" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dataset.html)" + "The ``AWS::ApiGateway::Resource`` resource creates a resource in an API. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-dataset.json" + "$ref": "resources/aws-apigateway-resource.json" } }, "required": [ @@ -36119,9 +36123,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Workteam": { + "AWS_ECS_TaskDefinition": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Workteam \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-workteam.html)", + "markdownDescription": "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html)", "allOf": [ { "type": "object", @@ -36129,14 +36133,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Workteam" + "AWS::ECS::TaskDefinition" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Workteam \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-workteam.html)" + "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-workteam.json" + "$ref": "resources/aws-ecs-taskdefinition.json" } }, "required": [ @@ -36149,9 +36153,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpacesWeb_UserSettings": { + "AWS_GameLift_GameSessionQueue": { "type": "object", - "markdownDescription": "Definition of AWS::WorkSpacesWeb::UserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html)", + "markdownDescription": "The AWS::GameLift::GameSessionQueue resource creates an Amazon GameLift (GameLift) game session queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html)", "allOf": [ { "type": "object", @@ -36159,14 +36163,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpacesWeb::UserSettings" + "AWS::GameLift::GameSessionQueue" ], "markdownEnumDescriptions": [ - "Definition of AWS::WorkSpacesWeb::UserSettings Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html)" + "The AWS::GameLift::GameSessionQueue resource creates an Amazon GameLift (GameLift) game session queue. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesweb-usersettings.json" + "$ref": "resources/aws-gamelift-gamesessionqueue.json" } }, "required": [ @@ -36180,9 +36184,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_WirelessDeviceImportTask": { + "AWS_EC2_EC2Fleet": { "type": "object", - "markdownDescription": "Wireless Device Import Tasks \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdeviceimporttask.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::EC2Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html)", "allOf": [ { "type": "object", @@ -36190,14 +36194,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::WirelessDeviceImportTask" + "AWS::EC2::EC2Fleet" ], "markdownEnumDescriptions": [ - "Wireless Device Import Tasks \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdeviceimporttask.html)" + "Resource Type definition for AWS::EC2::EC2Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-wirelessdeviceimporttask.json" + "$ref": "resources/aws-ec2-ec2fleet.json" } }, "required": [ @@ -36211,9 +36215,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_ApplicationEntitlementAssociation": { + "AWS_SageMaker_Cluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationentitlementassociation.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html)", "allOf": [ { "type": "object", @@ -36221,19 +36225,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::ApplicationEntitlementAssociation" + "AWS::SageMaker::Cluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationentitlementassociation.html)" + "Resource Type definition for AWS::SageMaker::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-applicationentitlementassociation.json" + "$ref": "resources/aws-sagemaker-cluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -36242,9 +36245,9 @@ ], "additionalProperties": false }, - "AWS_CloudTrail_Channel": { + "AWS_IoTFleetWise_Vehicle": { "type": "object", - "markdownDescription": "A channel receives events from a specific source (such as an on-premises storage solution or application, or a partner event data source), and delivers the events to one or more event data stores. You use channels to ingest events into CloudTrail from sources outside AWS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-channel.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::Vehicle Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-vehicle.html)", "allOf": [ { "type": "object", @@ -36252,18 +36255,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudTrail::Channel" + "AWS::IoTFleetWise::Vehicle" ], "markdownEnumDescriptions": [ - "A channel receives events from a specific source (such as an on-premises storage solution or application, or a partner event data source), and delivers the events to one or more event data stores. You use channels to ingest events into CloudTrail from sources outside AWS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-channel.html)" + "Definition of AWS::IoTFleetWise::Vehicle Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-vehicle.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudtrail-channel.json" + "$ref": "resources/aws-iotfleetwise-vehicle.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -36272,9 +36276,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_InputSecurityGroup": { + "AWS_Connect_Prompt": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaLive::InputSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::Prompt \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-prompt.html)", "allOf": [ { "type": "object", @@ -36282,18 +36286,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::InputSecurityGroup" + "AWS::Connect::Prompt" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaLive::InputSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html)" + "Resource Type definition for AWS::Connect::Prompt \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-prompt.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-inputsecuritygroup.json" + "$ref": "resources/aws-connect-prompt.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -36302,9 +36307,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_FunctionConfiguration": { + "AWS_CUR_ReportDefinition": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html)", + "markdownDescription": "The AWS::CUR::ReportDefinition resource creates a Cost & Usage Report with user-defined settings. You can use this resource to define settings like time granularity (hourly, daily, monthly), file format (Parquet, CSV), and S3 bucket for delivery of these reports. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html)", "allOf": [ { "type": "object", @@ -36312,14 +36317,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::FunctionConfiguration" + "AWS::CUR::ReportDefinition" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html)" + "The AWS::CUR::ReportDefinition resource creates a Cost & Usage Report with user-defined settings. You can use this resource to define settings like time granularity (hourly, daily, monthly), file format (Parquet, CSV), and S3 bucket for delivery of these reports. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-functionconfiguration.json" + "$ref": "resources/aws-cur-reportdefinition.json" } }, "required": [ @@ -36333,9 +36338,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_Campaign": { + "AWS_Route53Resolver_ResolverRule": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-campaign.html)", + "markdownDescription": "Resource Type definition for AWS::Route53Resolver::ResolverRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html)", "allOf": [ { "type": "object", @@ -36343,14 +36348,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::Campaign" + "AWS::Route53Resolver::ResolverRule" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-campaign.html)" + "Resource Type definition for AWS::Route53Resolver::ResolverRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-campaign.json" + "$ref": "resources/aws-route53resolver-resolverrule.json" } }, "required": [ @@ -36364,9 +36369,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_Portal": { + "AWS_KMS_Alias": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::Portal \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html)", + "markdownDescription": "The ``AWS::KMS::Alias`` resource specifies a display name for a [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). You can use an alias to identify a KMS key in the KMS console, in the [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) operation, and in [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), such as [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) and [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html).\n Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*.\n Using an alias to refer to a KMS key can help you simplify key management. For example, an alias in your code can be associated with different KMS keys in different AWS-Regions. For more information, see [Using aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) in the *Developer Guide*.\n When specifying an alias, observe the following rules.\n + Each alias is associated with one KMS key, but multiple aliases can be associated with the same KMS key.\n + The alias and its associated KMS key must be in the same AWS-account and Region.\n + The alias name must be unique in the AWS-account and Region. However, you can create aliases with the same name in different AWS-Regions. For example, you can have an ``alias/projectKey`` in multiple Regions, each of which is associated with a KMS key in its Region.\n + Each alias name must begin with ``alias/`` followed by a name, such as ``alias/exampleKey``. The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with ``alias/aws/``. That alias name prefix is reserved for [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).\n \n *Regions* \n KMS CloudFormation resources are available in all AWS-Regions in which KMS and CFN are supported. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html)", "allOf": [ { "type": "object", @@ -36374,14 +36379,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::Portal" + "AWS::KMS::Alias" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::Portal \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html)" + "The ``AWS::KMS::Alias`` resource specifies a display name for a [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). You can use an alias to identify a KMS key in the KMS console, in the [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) operation, and in [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), such as [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) and [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html).\n Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*.\n Using an alias to refer to a KMS key can help you simplify key management. For example, an alias in your code can be associated with different KMS keys in different AWS-Regions. For more information, see [Using aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) in the *Developer Guide*.\n When specifying an alias, observe the following rules.\n + Each alias is associated with one KMS key, but multiple aliases can be associated with the same KMS key.\n + The alias and its associated KMS key must be in the same AWS-account and Region.\n + The alias name must be unique in the AWS-account and Region. However, you can create aliases with the same name in different AWS-Regions. For example, you can have an ``alias/projectKey`` in multiple Regions, each of which is associated with a KMS key in its Region.\n + Each alias name must begin with ``alias/`` followed by a name, such as ``alias/exampleKey``. The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with ``alias/aws/``. That alias name prefix is reserved for [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).\n \n *Regions* \n KMS CloudFormation resources are available in all AWS-Regions in which KMS and CFN are supported. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-portal.json" + "$ref": "resources/aws-kms-alias.json" } }, "required": [ @@ -36395,9 +36400,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Schema": { + "AWS_FSx_StorageVirtualMachine": { "type": "object", - "markdownDescription": "This resource represents a schema of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html)", + "markdownDescription": "Resource Type definition for AWS::FSx::StorageVirtualMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-storagevirtualmachine.html)", "allOf": [ { "type": "object", @@ -36405,14 +36410,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Schema" + "AWS::FSx::StorageVirtualMachine" ], "markdownEnumDescriptions": [ - "This resource represents a schema of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html)" + "Resource Type definition for AWS::FSx::StorageVirtualMachine \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-storagevirtualmachine.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-schema.json" + "$ref": "resources/aws-fsx-storagevirtualmachine.json" } }, "required": [ @@ -36426,9 +36431,9 @@ ], "additionalProperties": false }, - "AWS_AppMesh_VirtualNode": { + "AWS_CloudFront_KeyGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualNode \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html)", + "markdownDescription": "A key group.\n A key group contains a list of public keys that you can use with [CloudFront signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html)", "allOf": [ { "type": "object", @@ -36436,14 +36441,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppMesh::VirtualNode" + "AWS::CloudFront::KeyGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppMesh::VirtualNode \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html)" + "A key group.\n A key group contains a list of public keys that you can use with [CloudFront signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-appmesh-virtualnode.json" + "$ref": "resources/aws-cloudfront-keygroup.json" } }, "required": [ @@ -36457,9 +36462,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_ServiceNetworkResourceAssociation": { + "AWS_Cognito_LogDeliveryConfiguration": { "type": "object", - "markdownDescription": "VpcLattice ServiceNetworkResourceAssociation CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkresourceassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::LogDeliveryConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-logdeliveryconfiguration.html)", "allOf": [ { "type": "object", @@ -36467,18 +36472,19 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::ServiceNetworkResourceAssociation" + "AWS::Cognito::LogDeliveryConfiguration" ], "markdownEnumDescriptions": [ - "VpcLattice ServiceNetworkResourceAssociation CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetworkresourceassociation.html)" + "Resource Type definition for AWS::Cognito::LogDeliveryConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-logdeliveryconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-servicenetworkresourceassociation.json" + "$ref": "resources/aws-cognito-logdeliveryconfiguration.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -36487,9 +36493,9 @@ ], "additionalProperties": false }, - "AWS_Connect_ApprovedOrigin": { + "AWS_DMS_DataProvider": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::ApprovedOrigin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-approvedorigin.html)", + "markdownDescription": "Resource schema for AWS::DMS::DataProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html)", "allOf": [ { "type": "object", @@ -36497,14 +36503,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::ApprovedOrigin" + "AWS::DMS::DataProvider" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::ApprovedOrigin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-approvedorigin.html)" + "Resource schema for AWS::DMS::DataProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-approvedorigin.json" + "$ref": "resources/aws-dms-dataprovider.json" } }, "required": [ @@ -36518,9 +36524,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBParameterGroup": { + "AWS_ECR_RegistryPolicy": { "type": "object", - "markdownDescription": "The ``AWS::RDS::DBParameterGroup`` resource creates a custom parameter group for an RDS database family.\n This type can be declared in a template and referenced in the ``DBParameterGroupName`` property of an ``AWS::RDS::DBInstance`` resource.\n For information about configuring parameters for Amazon RDS DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For information about configuring parameters for Amazon Aurora DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n Applying a parameter group to a DB instance may require the DB instance to reboot, resulting in a database outage for the duration of the reboot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html)", + "markdownDescription": "The ``AWS::ECR::RegistryPolicy`` resource creates or updates the permissions policy for a private registry.\n A private registry policy is used to specify permissions for another AWS-account and is used when configuring cross-account replication. For more information, see [Registry permissions](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the *Amazon Elastic Container Registry User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registrypolicy.html)", "allOf": [ { "type": "object", @@ -36528,14 +36534,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBParameterGroup" + "AWS::ECR::RegistryPolicy" ], "markdownEnumDescriptions": [ - "The ``AWS::RDS::DBParameterGroup`` resource creates a custom parameter group for an RDS database family.\n This type can be declared in a template and referenced in the ``DBParameterGroupName`` property of an ``AWS::RDS::DBInstance`` resource.\n For information about configuring parameters for Amazon RDS DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For information about configuring parameters for Amazon Aurora DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n Applying a parameter group to a DB instance may require the DB instance to reboot, resulting in a database outage for the duration of the reboot. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html)" + "The ``AWS::ECR::RegistryPolicy`` resource creates or updates the permissions policy for a private registry.\n A private registry policy is used to specify permissions for another AWS-account and is used when configuring cross-account replication. For more information, see [Registry permissions](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the *Amazon Elastic Container Registry User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registrypolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbparametergroup.json" + "$ref": "resources/aws-ecr-registrypolicy.json" } }, "required": [ @@ -36549,9 +36555,9 @@ ], "additionalProperties": false }, - "AWS_CE_AnomalyMonitor": { + "AWS_Macie_Session": { "type": "object", - "markdownDescription": "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. You can use Cost Anomaly Detection by creating monitor. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html)", + "markdownDescription": "The AWS::Macie::Session resource specifies a new Amazon Macie session. A session is an object that represents the Amazon Macie service. A session is required for Amazon Macie to become operational. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html)", "allOf": [ { "type": "object", @@ -36559,19 +36565,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CE::AnomalyMonitor" + "AWS::Macie::Session" ], "markdownEnumDescriptions": [ - "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. You can use Cost Anomaly Detection by creating monitor. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html)" + "The AWS::Macie::Session resource specifies a new Amazon Macie session. A session is an object that represents the Amazon Macie service. A session is required for Amazon Macie to become operational. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html)" ] }, "Properties": { - "$ref": "resources/aws-ce-anomalymonitor.json" + "$ref": "resources/aws-macie-session.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -36580,9 +36585,9 @@ ], "additionalProperties": false }, - "AWS_Kinesis_Stream": { + "AWS_EC2_VPCEncryptionControl": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Kinesis::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCEncryptionControl \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcencryptioncontrol.html)", "allOf": [ { "type": "object", @@ -36590,14 +36595,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Kinesis::Stream" + "AWS::EC2::VPCEncryptionControl" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Kinesis::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html)" + "Resource Type definition for AWS::EC2::VPCEncryptionControl \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcencryptioncontrol.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesis-stream.json" + "$ref": "resources/aws-ec2-vpcencryptioncontrol.json" } }, "required": [ @@ -36610,9 +36615,9 @@ ], "additionalProperties": false }, - "AWS_Config_OrganizationConfigRule": { + "AWS_Glue_DataCatalogEncryptionSettings": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::OrganizationConfigRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html)", "allOf": [ { "type": "object", @@ -36620,14 +36625,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::OrganizationConfigRule" + "AWS::Glue::DataCatalogEncryptionSettings" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::OrganizationConfigRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html)" + "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html)" ] }, "Properties": { - "$ref": "resources/aws-config-organizationconfigrule.json" + "$ref": "resources/aws-glue-datacatalogencryptionsettings.json" } }, "required": [ @@ -36641,9 +36646,9 @@ ], "additionalProperties": false }, - "AWS_Connect_TaskTemplate": { + "AWS_FraudDetector_Label": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::TaskTemplate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-tasktemplate.html)", + "markdownDescription": "An label for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html)", "allOf": [ { "type": "object", @@ -36651,14 +36656,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::TaskTemplate" + "AWS::FraudDetector::Label" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::TaskTemplate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-tasktemplate.html)" + "An label for fraud detector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-tasktemplate.json" + "$ref": "resources/aws-frauddetector-label.json" } }, "required": [ @@ -36672,9 +36677,9 @@ ], "additionalProperties": false }, - "AWS_Logs_DeliveryDestination": { + "AWS_VpcLattice_ResourcePolicy": { "type": "object", - "markdownDescription": "This structure contains information about one delivery destination in your account.\n\nA delivery destination is an AWS resource that represents an AWS service that logs can be sent to CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)", + "markdownDescription": "Retrieves information about the resource policy. The resource policy is an IAM policy created by AWS RAM on behalf of the resource owner when they share a resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -36682,14 +36687,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::DeliveryDestination" + "AWS::VpcLattice::ResourcePolicy" ], "markdownEnumDescriptions": [ - "This structure contains information about one delivery destination in your account.\n\nA delivery destination is an AWS resource that represents an AWS service that logs can be sent to CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)" + "Retrieves information about the resource policy. The resource policy is an IAM policy created by AWS RAM on behalf of the resource owner when they share a resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-deliverydestination.json" + "$ref": "resources/aws-vpclattice-resourcepolicy.json" } }, "required": [ @@ -36703,9 +36708,9 @@ ], "additionalProperties": false }, - "AWS_ResourceGroups_TagSyncTask": { + "AWS_S3ObjectLambda_AccessPoint": { "type": "object", - "markdownDescription": "Schema for ResourceGroups::TagSyncTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-tagsynctask.html)", + "markdownDescription": "The AWS::S3ObjectLambda::AccessPoint resource is an Amazon S3ObjectLambda resource type that you can use to add computation to S3 actions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html)", "allOf": [ { "type": "object", @@ -36713,14 +36718,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ResourceGroups::TagSyncTask" + "AWS::S3ObjectLambda::AccessPoint" ], "markdownEnumDescriptions": [ - "Schema for ResourceGroups::TagSyncTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-tagsynctask.html)" + "The AWS::S3ObjectLambda::AccessPoint resource is an Amazon S3ObjectLambda resource type that you can use to add computation to S3 actions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html)" ] }, "Properties": { - "$ref": "resources/aws-resourcegroups-tagsynctask.json" + "$ref": "resources/aws-s3objectlambda-accesspoint.json" } }, "required": [ @@ -36734,9 +36739,9 @@ ], "additionalProperties": false }, - "AWS_EventSchemas_Registry": { + "AWS_ImageBuilder_ImagePipeline": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EventSchemas::Registry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::ImagePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html)", "allOf": [ { "type": "object", @@ -36744,14 +36749,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EventSchemas::Registry" + "AWS::ImageBuilder::ImagePipeline" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EventSchemas::Registry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html)" + "Resource schema for AWS::ImageBuilder::ImagePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html)" ] }, "Properties": { - "$ref": "resources/aws-eventschemas-registry.json" + "$ref": "resources/aws-imagebuilder-imagepipeline.json" } }, "required": [ @@ -36764,9 +36769,9 @@ ], "additionalProperties": false }, - "AWS_ManagedBlockchain_Node": { + "AWS_IVS_Stage": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ManagedBlockchain::Node \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html)", + "markdownDescription": "Resource Type definition for AWS::IVS::Stage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-stage.html)", "allOf": [ { "type": "object", @@ -36774,19 +36779,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ManagedBlockchain::Node" + "AWS::IVS::Stage" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ManagedBlockchain::Node \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html)" + "Resource Type definition for AWS::IVS::Stage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-stage.html)" ] }, "Properties": { - "$ref": "resources/aws-managedblockchain-node.json" + "$ref": "resources/aws-ivs-stage.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -36795,9 +36799,9 @@ ], "additionalProperties": false }, - "AWS_CodeBuild_ReportGroup": { + "AWS_Route53Resolver_FirewallRuleGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeBuild::ReportGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::FirewallRuleGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroup.html)", "allOf": [ { "type": "object", @@ -36805,19 +36809,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeBuild::ReportGroup" + "AWS::Route53Resolver::FirewallRuleGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeBuild::ReportGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html)" + "Resource schema for AWS::Route53Resolver::FirewallRuleGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-codebuild-reportgroup.json" + "$ref": "resources/aws-route53resolver-firewallrulegroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -36826,9 +36829,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_Flow": { + "AWS_ApiGateway_UsagePlanKey": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::Flow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html)", + "markdownDescription": "The ``AWS::ApiGateway::UsagePlanKey`` resource associates an API key with a usage plan. This association determines which users the usage plan is applied to. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html)", "allOf": [ { "type": "object", @@ -36836,14 +36839,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::Flow" + "AWS::ApiGateway::UsagePlanKey" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::Flow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html)" + "The ``AWS::ApiGateway::UsagePlanKey`` resource associates an API key with a usage plan. This association determines which users the usage plan is applied to. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-flow.json" + "$ref": "resources/aws-apigateway-usageplankey.json" } }, "required": [ @@ -36857,9 +36860,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_EnvironmentBlueprintConfiguration": { + "AWS_Connect_SecurityProfile": { "type": "object", - "markdownDescription": "Definition of AWS::DataZone::EnvironmentBlueprintConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentblueprintconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::SecurityProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html)", "allOf": [ { "type": "object", @@ -36867,14 +36870,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::EnvironmentBlueprintConfiguration" + "AWS::Connect::SecurityProfile" ], "markdownEnumDescriptions": [ - "Definition of AWS::DataZone::EnvironmentBlueprintConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentblueprintconfiguration.html)" + "Resource Type definition for AWS::Connect::SecurityProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-environmentblueprintconfiguration.json" + "$ref": "resources/aws-connect-securityprofile.json" } }, "required": [ @@ -36888,9 +36891,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Workflow": { + "AWS_SES_MailManagerAddonInstance": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerAddonInstance Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddoninstance.html)", "allOf": [ { "type": "object", @@ -36898,18 +36901,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Workflow" + "AWS::SES::MailManagerAddonInstance" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Workflow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html)" + "Definition of AWS::SES::MailManagerAddonInstance Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddoninstance.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-workflow.json" + "$ref": "resources/aws-ses-mailmanageraddoninstance.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -36918,9 +36922,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_SubscriptionDefinition": { + "AWS_EC2_TransitGatewayMulticastDomain": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::SubscriptionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html)", + "markdownDescription": "The AWS::EC2::TransitGatewayMulticastDomain type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html)", "allOf": [ { "type": "object", @@ -36928,14 +36932,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::SubscriptionDefinition" + "AWS::EC2::TransitGatewayMulticastDomain" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::SubscriptionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html)" + "The AWS::EC2::TransitGatewayMulticastDomain type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-subscriptiondefinition.json" + "$ref": "resources/aws-ec2-transitgatewaymulticastdomain.json" } }, "required": [ @@ -36949,9 +36953,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_ModuleVersion": { + "AWS_Logs_LogGroup": { "type": "object", - "markdownDescription": "A module that has been registered in the CloudFormation registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html)", + "markdownDescription": "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)", "allOf": [ { "type": "object", @@ -36959,19 +36963,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::ModuleVersion" + "AWS::Logs::LogGroup" ], "markdownEnumDescriptions": [ - "A module that has been registered in the CloudFormation registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html)" + "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-moduleversion.json" + "$ref": "resources/aws-logs-loggroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -36980,9 +36983,9 @@ ], "additionalProperties": false }, - "AWS_IVS_EncoderConfiguration": { + "AWS_Lambda_LayerVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::EncoderConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::Lambda::LayerVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html)", "allOf": [ { "type": "object", @@ -36990,18 +36993,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::EncoderConfiguration" + "AWS::Lambda::LayerVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::EncoderConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html)" + "Resource Type definition for AWS::Lambda::LayerVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-encoderconfiguration.json" + "$ref": "resources/aws-lambda-layerversion.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -37010,9 +37014,9 @@ ], "additionalProperties": false }, - "AWS_AmplifyUIBuilder_Component": { + "AWS_Lambda_CapacityProvider": { "type": "object", - "markdownDescription": "Definition of AWS::AmplifyUIBuilder::Component Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html)", + "markdownDescription": "Creates a capacity provider that manages compute resources for Lambda functions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html)", "allOf": [ { "type": "object", @@ -37020,18 +37024,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AmplifyUIBuilder::Component" + "AWS::Lambda::CapacityProvider" ], "markdownEnumDescriptions": [ - "Definition of AWS::AmplifyUIBuilder::Component Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html)" + "Creates a capacity provider that manages compute resources for Lambda functions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-amplifyuibuilder-component.json" + "$ref": "resources/aws-lambda-capacityprovider.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -37071,9 +37076,9 @@ ], "additionalProperties": false }, - "AWS_Kinesis_StreamConsumer": { + "AWS_AutoScaling_WarmPool": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Kinesis::StreamConsumer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html)", + "markdownDescription": "Resource schema for AWS::AutoScaling::WarmPool. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html)", "allOf": [ { "type": "object", @@ -37081,14 +37086,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Kinesis::StreamConsumer" + "AWS::AutoScaling::WarmPool" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Kinesis::StreamConsumer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html)" + "Resource schema for AWS::AutoScaling::WarmPool. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesis-streamconsumer.json" + "$ref": "resources/aws-autoscaling-warmpool.json" } }, "required": [ @@ -37102,9 +37107,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_UserProfile": { + "AWS_EC2_CapacityManagerDataExport": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::CapacityManagerDataExport \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacitymanagerdataexport.html)", "allOf": [ { "type": "object", @@ -37112,14 +37117,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::UserProfile" + "AWS::EC2::CapacityManagerDataExport" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::UserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html)" + "Resource Type definition for AWS::EC2::CapacityManagerDataExport \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacitymanagerdataexport.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-userprofile.json" + "$ref": "resources/aws-ec2-capacitymanagerdataexport.json" } }, "required": [ @@ -37133,9 +37138,9 @@ ], "additionalProperties": false }, - "AWS_EC2_SpotFleet": { + "AWS_SSM_ResourcePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::SpotFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html)", + "markdownDescription": "Resource Type definition for AWS::SSM::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcepolicy.html)", "allOf": [ { "type": "object", @@ -37143,14 +37148,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::SpotFleet" + "AWS::SSM::ResourcePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::SpotFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html)" + "Resource Type definition for AWS::SSM::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-spotfleet.json" + "$ref": "resources/aws-ssm-resourcepolicy.json" } }, "required": [ @@ -37164,9 +37169,9 @@ ], "additionalProperties": false }, - "AWS_AppSync_ApiKey": { + "AWS_IVSChat_Room": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppSync::ApiKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html)", + "markdownDescription": "Resource type definition for AWS::IVSChat::Room. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-room.html)", "allOf": [ { "type": "object", @@ -37174,19 +37179,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AppSync::ApiKey" + "AWS::IVSChat::Room" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppSync::ApiKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html)" + "Resource type definition for AWS::IVSChat::Room. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivschat-room.html)" ] }, "Properties": { - "$ref": "resources/aws-appsync-apikey.json" + "$ref": "resources/aws-ivschat-room.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -37195,9 +37199,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_CustomPermissions": { + "AWS_ServiceDiscovery_Instance": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::CustomPermissions Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-custompermissions.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)", "allOf": [ { "type": "object", @@ -37205,14 +37209,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::CustomPermissions" + "AWS::ServiceDiscovery::Instance" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::CustomPermissions Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-custompermissions.html)" + "Resource Type definition for AWS::ServiceDiscovery::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-custompermissions.json" + "$ref": "resources/aws-servicediscovery-instance.json" } }, "required": [ @@ -37226,9 +37230,9 @@ ], "additionalProperties": false }, - "AWS_Synthetics_Canary": { + "AWS_FSx_FileSystem": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Synthetics::Canary \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html)", + "markdownDescription": "Resource Type definition for AWS::FSx::FileSystem \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html)", "allOf": [ { "type": "object", @@ -37236,14 +37240,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Synthetics::Canary" + "AWS::FSx::FileSystem" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Synthetics::Canary \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html)" + "Resource Type definition for AWS::FSx::FileSystem \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html)" ] }, "Properties": { - "$ref": "resources/aws-synthetics-canary.json" + "$ref": "resources/aws-fsx-filesystem.json" } }, "required": [ @@ -37257,9 +37261,9 @@ ], "additionalProperties": false }, - "AWS_Config_AggregationAuthorization": { + "AWS_DataZone_EnvironmentActions": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::AggregationAuthorization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html)", + "markdownDescription": "Definition of AWS::DataZone::EnvironmentActions Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentactions.html)", "allOf": [ { "type": "object", @@ -37267,14 +37271,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::AggregationAuthorization" + "AWS::DataZone::EnvironmentActions" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::AggregationAuthorization \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html)" + "Definition of AWS::DataZone::EnvironmentActions Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentactions.html)" ] }, "Properties": { - "$ref": "resources/aws-config-aggregationauthorization.json" + "$ref": "resources/aws-datazone-environmentactions.json" } }, "required": [ @@ -37288,9 +37292,9 @@ ], "additionalProperties": false }, - "AWS_MemoryDB_Cluster": { + "AWS_SES_Tenant": { "type": "object", - "markdownDescription": "The AWS::MemoryDB::Cluster resource creates an Amazon MemoryDB Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html)", + "markdownDescription": "Resource Type definition for AWS::SES::Tenant \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-tenant.html)", "allOf": [ { "type": "object", @@ -37298,14 +37302,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MemoryDB::Cluster" + "AWS::SES::Tenant" ], "markdownEnumDescriptions": [ - "The AWS::MemoryDB::Cluster resource creates an Amazon MemoryDB Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html)" + "Resource Type definition for AWS::SES::Tenant \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-tenant.html)" ] }, "Properties": { - "$ref": "resources/aws-memorydb-cluster.json" + "$ref": "resources/aws-ses-tenant.json" } }, "required": [ @@ -37319,9 +37323,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerAddonSubscription": { + "AWS_RefactorSpaces_Service": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerAddonSubscription Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddonsubscription.html)", + "markdownDescription": "Definition of AWS::RefactorSpaces::Service Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-service.html)", "allOf": [ { "type": "object", @@ -37329,14 +37333,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerAddonSubscription" + "AWS::RefactorSpaces::Service" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerAddonSubscription Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanageraddonsubscription.html)" + "Definition of AWS::RefactorSpaces::Service Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-refactorspaces-service.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanageraddonsubscription.json" + "$ref": "resources/aws-refactorspaces-service.json" } }, "required": [ @@ -37350,9 +37354,9 @@ ], "additionalProperties": false }, - "AWS_Wisdom_AIPromptVersion": { + "AWS_Amplify_App": { "type": "object", - "markdownDescription": "Definition of AWS::Wisdom::AIPromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aipromptversion.html)", + "markdownDescription": "The AWS::Amplify::App resource creates Apps in the Amplify Console. An App is a collection of branches. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html)", "allOf": [ { "type": "object", @@ -37360,14 +37364,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Wisdom::AIPromptVersion" + "AWS::Amplify::App" ], "markdownEnumDescriptions": [ - "Definition of AWS::Wisdom::AIPromptVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aipromptversion.html)" + "The AWS::Amplify::App resource creates Apps in the Amplify Console. An App is a collection of branches. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html)" ] }, "Properties": { - "$ref": "resources/aws-wisdom-aipromptversion.json" + "$ref": "resources/aws-amplify-app.json" } }, "required": [ @@ -37381,9 +37385,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackageV2_ChannelGroup": { + "AWS_Pinpoint_PushTemplate": { "type": "object", - "markdownDescription": "

Represents a channel group that facilitates the grouping of multiple channels.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::PushTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html)", "allOf": [ { "type": "object", @@ -37391,14 +37395,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackageV2::ChannelGroup" + "AWS::Pinpoint::PushTemplate" ], "markdownEnumDescriptions": [ - "

Represents a channel group that facilitates the grouping of multiple channels.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelgroup.html)" + "Resource Type definition for AWS::Pinpoint::PushTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackagev2-channelgroup.json" + "$ref": "resources/aws-pinpoint-pushtemplate.json" } }, "required": [ @@ -37412,9 +37416,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAMScope": { + "AWS_AmplifyUIBuilder_Form": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAMScope Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html)", + "markdownDescription": "Definition of AWS::AmplifyUIBuilder::Form Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-form.html)", "allOf": [ { "type": "object", @@ -37422,19 +37426,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAMScope" + "AWS::AmplifyUIBuilder::Form" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAMScope Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html)" + "Definition of AWS::AmplifyUIBuilder::Form Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-form.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipamscope.json" + "$ref": "resources/aws-amplifyuibuilder-form.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -37443,9 +37446,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_Database": { + "AWS_CustomerProfiles_EventStream": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html)", + "markdownDescription": "An Event Stream resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventstream.html)", "allOf": [ { "type": "object", @@ -37453,14 +37456,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::Database" + "AWS::CustomerProfiles::EventStream" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::Database \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html)" + "An Event Stream resource of Amazon Connect Customer Profiles \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventstream.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-database.json" + "$ref": "resources/aws-customerprofiles-eventstream.json" } }, "required": [ @@ -37474,9 +37477,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetWise_SignalCatalog": { + "AWS_EC2_VPCCidrBlock": { "type": "object", - "markdownDescription": "Definition of AWS::IoTFleetWise::SignalCatalog Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-signalcatalog.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCCidrBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html)", "allOf": [ { "type": "object", @@ -37484,18 +37487,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetWise::SignalCatalog" + "AWS::EC2::VPCCidrBlock" ], "markdownEnumDescriptions": [ - "Definition of AWS::IoTFleetWise::SignalCatalog Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-signalcatalog.html)" + "Resource Type definition for AWS::EC2::VPCCidrBlock \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleetwise-signalcatalog.json" + "$ref": "resources/aws-ec2-vpccidrblock.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -37504,9 +37508,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_ResourceVersion": { + "AWS_SageMaker_Endpoint": { "type": "object", - "markdownDescription": "A resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html)", "allOf": [ { "type": "object", @@ -37514,14 +37518,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::ResourceVersion" + "AWS::SageMaker::Endpoint" ], "markdownEnumDescriptions": [ - "A resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html)" + "Resource Type definition for AWS::SageMaker::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-resourceversion.json" + "$ref": "resources/aws-sagemaker-endpoint.json" } }, "required": [ @@ -37535,9 +37539,9 @@ ], "additionalProperties": false }, - "AWS_SNS_TopicPolicy": { + "AWS_NeptuneGraph_PrivateGraphEndpoint": { "type": "object", - "markdownDescription": "The ``AWS::SNS::TopicPolicy`` resource associates SNS topics with a policy. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sns-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicpolicy.html)", + "markdownDescription": "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html)", "allOf": [ { "type": "object", @@ -37545,14 +37549,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SNS::TopicPolicy" + "AWS::NeptuneGraph::PrivateGraphEndpoint" ], "markdownEnumDescriptions": [ - "The ``AWS::SNS::TopicPolicy`` resource associates SNS topics with a policy. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sns-policy) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicpolicy.html)" + "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-sns-topicpolicy.json" + "$ref": "resources/aws-neptunegraph-privategraphendpoint.json" } }, "required": [ @@ -37566,9 +37570,9 @@ ], "additionalProperties": false }, - "AWS_IoT_ThingGroup": { + "AWS_MediaTailor_VodSource": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::ThingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html)", + "markdownDescription": "Definition of AWS::MediaTailor::VodSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-vodsource.html)", "allOf": [ { "type": "object", @@ -37576,18 +37580,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::ThingGroup" + "AWS::MediaTailor::VodSource" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::ThingGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html)" + "Definition of AWS::MediaTailor::VodSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-vodsource.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-thinggroup.json" + "$ref": "resources/aws-mediatailor-vodsource.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -37596,9 +37601,9 @@ ], "additionalProperties": false }, - "AWS_EC2_RouteServerAssociation": { + "AWS_CleanRooms_ConfiguredTable": { "type": "object", - "markdownDescription": "VPC Route Server Association \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html)", + "markdownDescription": "Represents a table that can be associated with collaborations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtable.html)", "allOf": [ { "type": "object", @@ -37606,14 +37611,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::RouteServerAssociation" + "AWS::CleanRooms::ConfiguredTable" ], "markdownEnumDescriptions": [ - "VPC Route Server Association \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html)" + "Represents a table that can be associated with collaborations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-configuredtable.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-routeserverassociation.json" + "$ref": "resources/aws-cleanrooms-configuredtable.json" } }, "required": [ @@ -37627,9 +37632,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_Entitlement": { + "AWS_EC2_LaunchTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::Entitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-entitlement.html)", + "markdownDescription": "Specifies the properties for creating a launch template.\n The minimum required properties for specifying a launch template are as follows:\n + You must specify at least one property for the launch template data.\n + You can optionally specify a name for the launch template. If you do not specify a name, CFN creates a name for you.\n \n A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.\n For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)", "allOf": [ { "type": "object", @@ -37637,14 +37642,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::Entitlement" + "AWS::EC2::LaunchTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::Entitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-entitlement.html)" + "Specifies the properties for creating a launch template.\n The minimum required properties for specifying a launch template are as follows:\n + You must specify at least one property for the launch template data.\n + You can optionally specify a name for the launch template. If you do not specify a name, CFN creates a name for you.\n \n A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.\n For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-entitlement.json" + "$ref": "resources/aws-ec2-launchtemplate.json" } }, "required": [ @@ -37658,9 +37663,9 @@ ], "additionalProperties": false }, - "AWS_CodeBuild_Project": { + "AWS_EC2_CarrierGateway": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeBuild::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)", + "markdownDescription": "Resource Type definition for Carrier Gateway which describes the Carrier Gateway resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html)", "allOf": [ { "type": "object", @@ -37668,14 +37673,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeBuild::Project" + "AWS::EC2::CarrierGateway" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeBuild::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)" + "Resource Type definition for Carrier Gateway which describes the Carrier Gateway resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html)" ] }, "Properties": { - "$ref": "resources/aws-codebuild-project.json" + "$ref": "resources/aws-ec2-carriergateway.json" } }, "required": [ @@ -37689,9 +37694,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_KeyValueStore": { + "AWS_Connect_DataTable": { "type": "object", - "markdownDescription": "The key value store. Use this to separate data from function code, allowing you to update data without having to publish a new version of a function. The key value store holds keys and their corresponding values. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keyvaluestore.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::DataTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-datatable.html)", "allOf": [ { "type": "object", @@ -37699,19 +37704,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::KeyValueStore" + "AWS::Connect::DataTable" ], "markdownEnumDescriptions": [ - "The key value store. Use this to separate data from function code, allowing you to update data without having to publish a new version of a function. The key value store holds keys and their corresponding values. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keyvaluestore.html)" + "Resource Type definition for AWS::Connect::DataTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-datatable.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-keyvaluestore.json" + "$ref": "resources/aws-connect-datatable.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -37720,9 +37724,9 @@ ], "additionalProperties": false }, - "AWS_ServiceDiscovery_PrivateDnsNamespace": { + "AWS_Connect_InstanceStorageConfig": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::PrivateDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::InstanceStorageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instancestorageconfig.html)", "allOf": [ { "type": "object", @@ -37730,14 +37734,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceDiscovery::PrivateDnsNamespace" + "AWS::Connect::InstanceStorageConfig" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceDiscovery::PrivateDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html)" + "Resource Type definition for AWS::Connect::InstanceStorageConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instancestorageconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-servicediscovery-privatednsnamespace.json" + "$ref": "resources/aws-connect-instancestorageconfig.json" } }, "required": [ @@ -37751,9 +37755,9 @@ ], "additionalProperties": false }, - "AWS_CUR_ReportDefinition": { + "AWS_HealthLake_FHIRDatastore": { "type": "object", - "markdownDescription": "The AWS::CUR::ReportDefinition resource creates a Cost & Usage Report with user-defined settings. You can use this resource to define settings like time granularity (hourly, daily, monthly), file format (Parquet, CSV), and S3 bucket for delivery of these reports. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html)", + "markdownDescription": "HealthLake FHIR Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html)", "allOf": [ { "type": "object", @@ -37761,14 +37765,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CUR::ReportDefinition" + "AWS::HealthLake::FHIRDatastore" ], "markdownEnumDescriptions": [ - "The AWS::CUR::ReportDefinition resource creates a Cost & Usage Report with user-defined settings. You can use this resource to define settings like time granularity (hourly, daily, monthly), file format (Parquet, CSV), and S3 bucket for delivery of these reports. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html)" + "HealthLake FHIR Datastore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html)" ] }, "Properties": { - "$ref": "resources/aws-cur-reportdefinition.json" + "$ref": "resources/aws-healthlake-fhirdatastore.json" } }, "required": [ @@ -37782,9 +37786,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_SignalMap": { + "AWS_Synthetics_Canary": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::SignalMap Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-signalmap.html)", + "markdownDescription": "Resource Type definition for AWS::Synthetics::Canary \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html)", "allOf": [ { "type": "object", @@ -37792,14 +37796,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::SignalMap" + "AWS::Synthetics::Canary" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::SignalMap Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-signalmap.html)" + "Resource Type definition for AWS::Synthetics::Canary \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-signalmap.json" + "$ref": "resources/aws-synthetics-canary.json" } }, "required": [ @@ -37813,9 +37817,9 @@ ], "additionalProperties": false }, - "AWS_IoTThingsGraph_FlowTemplate": { + "AWS_MediaPackage_Channel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoTThingsGraph::FlowTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html)", + "markdownDescription": "Resource schema for AWS::MediaPackage::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html)", "allOf": [ { "type": "object", @@ -37823,14 +37827,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTThingsGraph::FlowTemplate" + "AWS::MediaPackage::Channel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoTThingsGraph::FlowTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html)" + "Resource schema for AWS::MediaPackage::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html)" ] }, "Properties": { - "$ref": "resources/aws-iotthingsgraph-flowtemplate.json" + "$ref": "resources/aws-mediapackage-channel.json" } }, "required": [ @@ -37844,9 +37848,9 @@ ], "additionalProperties": false }, - "AWS_EC2_LocalGatewayRouteTableVPCAssociation": { + "AWS_Connect_UserHierarchyStructure": { "type": "object", - "markdownDescription": "Resource Type definition for Local Gateway Route Table VPC Association which describes an association between a local gateway route table and a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::UserHierarchyStructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchystructure.html)", "allOf": [ { "type": "object", @@ -37854,14 +37858,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::LocalGatewayRouteTableVPCAssociation" + "AWS::Connect::UserHierarchyStructure" ], "markdownEnumDescriptions": [ - "Resource Type definition for Local Gateway Route Table VPC Association which describes an association between a local gateway route table and a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html)" + "Resource Type definition for AWS::Connect::UserHierarchyStructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchystructure.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-localgatewayroutetablevpcassociation.json" + "$ref": "resources/aws-connect-userhierarchystructure.json" } }, "required": [ @@ -37875,9 +37879,9 @@ ], "additionalProperties": false }, - "AWS_EC2_Route": { + "AWS_Bedrock_Blueprint": { "type": "object", - "markdownDescription": "Specifies a route in a route table. For more information, see [Routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-table-routes) in the *Amazon VPC User Guide*.\n You must specify either a destination CIDR block or prefix list ID. You must also specify exactly one of the resources as the target.\n If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the ``AWS::EC2::Route`` resource to explicitly declare a dependency on the ``AWS::EC2::TransitGatewayAttachment`` resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html)", + "markdownDescription": "Definition of AWS::Bedrock::Blueprint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-blueprint.html)", "allOf": [ { "type": "object", @@ -37885,14 +37889,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::Route" + "AWS::Bedrock::Blueprint" ], "markdownEnumDescriptions": [ - "Specifies a route in a route table. For more information, see [Routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-table-routes) in the *Amazon VPC User Guide*.\n You must specify either a destination CIDR block or prefix list ID. You must also specify exactly one of the resources as the target.\n If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the ``AWS::EC2::Route`` resource to explicitly declare a dependency on the ``AWS::EC2::TransitGatewayAttachment`` resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html)" + "Definition of AWS::Bedrock::Blueprint Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-blueprint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-route.json" + "$ref": "resources/aws-bedrock-blueprint.json" } }, "required": [ @@ -37906,9 +37910,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAM": { + "AWS_CloudFront_RealtimeLogConfig": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAM Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html)", + "markdownDescription": "A real-time log configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html)", "allOf": [ { "type": "object", @@ -37916,18 +37920,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAM" + "AWS::CloudFront::RealtimeLogConfig" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAM Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html)" + "A real-time log configuration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipam.json" + "$ref": "resources/aws-cloudfront-realtimelogconfig.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -37936,9 +37941,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Logging": { + "AWS_GlobalAccelerator_Accelerator": { "type": "object", - "markdownDescription": "Logging Options enable you to configure your IoT V2 logging role and default logging level so that you can monitor progress events logs as it passes from your devices through Iot core service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html)", + "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::Accelerator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html)", "allOf": [ { "type": "object", @@ -37946,14 +37951,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Logging" + "AWS::GlobalAccelerator::Accelerator" ], "markdownEnumDescriptions": [ - "Logging Options enable you to configure your IoT V2 logging role and default logging level so that you can monitor progress events logs as it passes from your devices through Iot core service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html)" + "Resource Type definition for AWS::GlobalAccelerator::Accelerator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-logging.json" + "$ref": "resources/aws-globalaccelerator-accelerator.json" } }, "required": [ @@ -37967,9 +37972,9 @@ ], "additionalProperties": false }, - "AWS_GameLift_Location": { + "AWS_Route53Resolver_OutpostResolver": { "type": "object", - "markdownDescription": "The AWS::GameLift::Location resource creates an Amazon GameLift (GameLift) custom location. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-location.html)", + "markdownDescription": "Resource schema for AWS::Route53Resolver::OutpostResolver. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html)", "allOf": [ { "type": "object", @@ -37977,14 +37982,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLift::Location" + "AWS::Route53Resolver::OutpostResolver" ], "markdownEnumDescriptions": [ - "The AWS::GameLift::Location resource creates an Amazon GameLift (GameLift) custom location. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-location.html)" + "Resource schema for AWS::Route53Resolver::OutpostResolver. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html)" ] }, "Properties": { - "$ref": "resources/aws-gamelift-location.json" + "$ref": "resources/aws-route53resolver-outpostresolver.json" } }, "required": [ @@ -37998,9 +38003,9 @@ ], "additionalProperties": false }, - "AWS_CodeArtifact_Repository": { + "AWS_Transfer_Profile": { "type": "object", - "markdownDescription": "The resource schema to create a CodeArtifact repository. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html)", + "markdownDescription": "Resource Type definition for AWS::Transfer::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-profile.html)", "allOf": [ { "type": "object", @@ -38008,14 +38013,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeArtifact::Repository" + "AWS::Transfer::Profile" ], "markdownEnumDescriptions": [ - "The resource schema to create a CodeArtifact repository. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html)" + "Resource Type definition for AWS::Transfer::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-profile.html)" ] }, "Properties": { - "$ref": "resources/aws-codeartifact-repository.json" + "$ref": "resources/aws-transfer-profile.json" } }, "required": [ @@ -38029,9 +38034,9 @@ ], "additionalProperties": false }, - "AWS_NotificationsContacts_EmailContact": { + "AWS_AutoScaling_LifecycleHook": { "type": "object", - "markdownDescription": "Definition of AWS::NotificationsContacts::EmailContact Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notificationscontacts-emailcontact.html)", + "markdownDescription": "Resource Type definition for AWS::AutoScaling::LifecycleHook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html)", "allOf": [ { "type": "object", @@ -38039,14 +38044,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NotificationsContacts::EmailContact" + "AWS::AutoScaling::LifecycleHook" ], "markdownEnumDescriptions": [ - "Definition of AWS::NotificationsContacts::EmailContact Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notificationscontacts-emailcontact.html)" + "Resource Type definition for AWS::AutoScaling::LifecycleHook \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html)" ] }, "Properties": { - "$ref": "resources/aws-notificationscontacts-emailcontact.json" + "$ref": "resources/aws-autoscaling-lifecyclehook.json" } }, "required": [ @@ -38060,9 +38065,9 @@ ], "additionalProperties": false }, - "AWS_PinpointEmail_DedicatedIpPool": { + "AWS_DataSync_LocationHDFS": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::PinpointEmail::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html)", + "markdownDescription": "Resource Type definition for AWS::DataSync::LocationHDFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html)", "allOf": [ { "type": "object", @@ -38070,18 +38075,19 @@ "Type": { "type": "string", "enum": [ - "AWS::PinpointEmail::DedicatedIpPool" + "AWS::DataSync::LocationHDFS" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::PinpointEmail::DedicatedIpPool \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html)" + "Resource Type definition for AWS::DataSync::LocationHDFS. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpointemail-dedicatedippool.json" + "$ref": "resources/aws-datasync-locationhdfs.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -38090,9 +38096,9 @@ ], "additionalProperties": false }, - "AWS_CodeDeploy_DeploymentGroup": { + "AWS_LakeFormation_Permissions": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)", + "markdownDescription": "Resource Type definition for AWS::LakeFormation::Permissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html)", "allOf": [ { "type": "object", @@ -38100,14 +38106,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeDeploy::DeploymentGroup" + "AWS::LakeFormation::Permissions" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeDeploy::DeploymentGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)" + "Resource Type definition for AWS::LakeFormation::Permissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html)" ] }, "Properties": { - "$ref": "resources/aws-codedeploy-deploymentgroup.json" + "$ref": "resources/aws-lakeformation-permissions.json" } }, "required": [ @@ -38121,9 +38127,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_Alias": { + "AWS_IoT_RoleAlias": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lambda::Alias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)", + "markdownDescription": "Use the AWS::IoT::RoleAlias resource to declare an AWS IoT RoleAlias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-rolealias.html)", "allOf": [ { "type": "object", @@ -38131,14 +38137,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::Alias" + "AWS::IoT::RoleAlias" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lambda::Alias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)" + "Use the AWS::IoT::RoleAlias resource to declare an AWS IoT RoleAlias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-rolealias.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-alias.json" + "$ref": "resources/aws-iot-rolealias.json" } }, "required": [ @@ -38152,9 +38158,9 @@ ], "additionalProperties": false }, - "AWS_ImageBuilder_DistributionConfiguration": { + "AWS_Greengrass_DeviceDefinitionVersion": { "type": "object", - "markdownDescription": "Resource schema for AWS::ImageBuilder::DistributionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::DeviceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html)", "allOf": [ { "type": "object", @@ -38162,14 +38168,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ImageBuilder::DistributionConfiguration" + "AWS::Greengrass::DeviceDefinitionVersion" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::ImageBuilder::DistributionConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html)" + "Resource Type definition for AWS::Greengrass::DeviceDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html)" ] }, "Properties": { - "$ref": "resources/aws-imagebuilder-distributionconfiguration.json" + "$ref": "resources/aws-greengrass-devicedefinitionversion.json" } }, "required": [ @@ -38183,9 +38189,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_TagOption": { + "AWS_Inspector_AssessmentTarget": { "type": "object", - "markdownDescription": "Resource type definition for AWS::ServiceCatalog::TagOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html)", + "markdownDescription": "Resource Type definition for AWS::Inspector::AssessmentTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html)", "allOf": [ { "type": "object", @@ -38193,19 +38199,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::TagOption" + "AWS::Inspector::AssessmentTarget" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::ServiceCatalog::TagOption \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html)" + "Resource Type definition for AWS::Inspector::AssessmentTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-tagoption.json" + "$ref": "resources/aws-inspector-assessmenttarget.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -38214,9 +38219,9 @@ ], "additionalProperties": false }, - "AWS_Glue_SchemaVersionMetadata": { + "AWS_Glue_Integration": { "type": "object", - "markdownDescription": "This resource adds Key-Value metadata to a Schema version of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Integration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-integration.html)", "allOf": [ { "type": "object", @@ -38224,14 +38229,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::SchemaVersionMetadata" + "AWS::Glue::Integration" ], "markdownEnumDescriptions": [ - "This resource adds Key-Value metadata to a Schema version of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html)" + "Resource Type definition for AWS::Glue::Integration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-integration.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-schemaversionmetadata.json" + "$ref": "resources/aws-glue-integration.json" } }, "required": [ @@ -38245,9 +38250,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_ComputationModel": { + "AWS_AppSync_SourceApiAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::ComputationModel. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-computationmodel.html)", + "markdownDescription": "Resource Type definition for AWS::AppSync::SourceApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-sourceapiassociation.html)", "allOf": [ { "type": "object", @@ -38255,19 +38260,18 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::ComputationModel" + "AWS::AppSync::SourceApiAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::ComputationModel. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-computationmodel.html)" + "Resource Type definition for AWS::AppSync::SourceApiAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-sourceapiassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-computationmodel.json" + "$ref": "resources/aws-appsync-sourceapiassociation.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -38276,9 +38280,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_Publisher": { + "AWS_Glue_Connection": { "type": "object", - "markdownDescription": "Register as a publisher in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Connection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html)", "allOf": [ { "type": "object", @@ -38286,14 +38290,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::Publisher" + "AWS::Glue::Connection" ], "markdownEnumDescriptions": [ - "Register as a publisher in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html)" + "Resource Type definition for AWS::Glue::Connection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-publisher.json" + "$ref": "resources/aws-glue-connection.json" } }, "required": [ @@ -38307,9 +38311,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_ManagedLoginBranding": { + "AWS_IAM_ServerCertificate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::ManagedLoginBranding \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-managedloginbranding.html)", + "markdownDescription": "Resource Type definition for AWS::IAM::ServerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html)", "allOf": [ { "type": "object", @@ -38317,19 +38321,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::ManagedLoginBranding" + "AWS::IAM::ServerCertificate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::ManagedLoginBranding \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-managedloginbranding.html)" + "Resource Type definition for AWS::IAM::ServerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-managedloginbranding.json" + "$ref": "resources/aws-iam-servercertificate.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -38338,9 +38341,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_Asset": { + "AWS_CloudFront_ResponseHeadersPolicy": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html)", + "markdownDescription": "A response headers policy.\n A response headers policy contains information about a set of HTTP response headers.\n After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.\n For more information, see [Adding or removing HTTP headers in CloudFront responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html)", "allOf": [ { "type": "object", @@ -38348,14 +38351,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::Asset" + "AWS::CloudFront::ResponseHeadersPolicy" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::Asset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html)" + "A response headers policy.\n A response headers policy contains information about a set of HTTP response headers.\n After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.\n For more information, see [Adding or removing HTTP headers in CloudFront responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-asset.json" + "$ref": "resources/aws-cloudfront-responseheaderspolicy.json" } }, "required": [ @@ -38369,9 +38372,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBProxy": { + "AWS_Neptune_DBInstance": { "type": "object", - "markdownDescription": "Resource schema for AWS::RDS::DBProxy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html)", + "markdownDescription": "The AWS::Neptune::DBInstance resource creates an Amazon Neptune DB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html)", "allOf": [ { "type": "object", @@ -38379,14 +38382,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBProxy" + "AWS::Neptune::DBInstance" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::RDS::DBProxy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html)" + "The AWS::Neptune::DBInstance resource creates an Amazon Neptune DB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbproxy.json" + "$ref": "resources/aws-neptune-dbinstance.json" } }, "required": [ @@ -38400,9 +38403,9 @@ ], "additionalProperties": false }, - "AWS_Connect_Prompt": { + "AWS_Connect_Instance": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::Prompt \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-prompt.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html)", "allOf": [ { "type": "object", @@ -38410,14 +38413,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::Prompt" + "AWS::Connect::Instance" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::Prompt \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-prompt.html)" + "Resource Type definition for AWS::Connect::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-prompt.json" + "$ref": "resources/aws-connect-instance.json" } }, "required": [ @@ -38431,9 +38434,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_IdNamespaceAssociation": { + "AWS_EC2_TransitGatewayRouteTablePropagation": { "type": "object", - "markdownDescription": "Represents an association between an ID namespace and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idnamespaceassociation.html)", + "markdownDescription": "AWS::EC2::TransitGatewayRouteTablePropagation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html)", "allOf": [ { "type": "object", @@ -38441,14 +38444,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::IdNamespaceAssociation" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "markdownEnumDescriptions": [ - "Represents an association between an ID namespace and a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-idnamespaceassociation.html)" + "AWS::EC2::TransitGatewayRouteTablePropagation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-idnamespaceassociation.json" + "$ref": "resources/aws-ec2-transitgatewayroutetablepropagation.json" } }, "required": [ @@ -38462,9 +38465,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_LoadBalancer": { + "AWS_EC2_InternetGateway": { "type": "object", - "markdownDescription": "Specifies an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html)", + "markdownDescription": "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html)", "allOf": [ { "type": "object", @@ -38472,14 +38475,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::LoadBalancer" + "AWS::EC2::InternetGateway" ], "markdownEnumDescriptions": [ - "Specifies an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html)" + "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-loadbalancer.json" + "$ref": "resources/aws-ec2-internetgateway.json" } }, "required": [ @@ -38492,9 +38495,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_IdentityPoolRoleAttachment": { + "AWS_Logs_ScheduledQuery": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::IdentityPoolRoleAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html)", + "markdownDescription": "Creates a new Scheduled Query that allows you to define a Logs Insights query that will run on a schedule and configure actions to take with the query results. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-scheduledquery.html)", "allOf": [ { "type": "object", @@ -38502,14 +38505,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::IdentityPoolRoleAttachment" + "AWS::Logs::ScheduledQuery" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::IdentityPoolRoleAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html)" + "Creates a new Scheduled Query that allows you to define a Logs Insights query that will run on a schedule and configure actions to take with the query results. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-scheduledquery.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-identitypoolroleattachment.json" + "$ref": "resources/aws-logs-scheduledquery.json" } }, "required": [ @@ -38523,9 +38526,9 @@ ], "additionalProperties": false }, - "AWS_Evidently_Feature": { + "AWS_IoTSiteWise_Project": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Evidently::Feature. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html)", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html)", "allOf": [ { "type": "object", @@ -38533,14 +38536,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Evidently::Feature" + "AWS::IoTSiteWise::Project" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Evidently::Feature. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html)" + "Resource schema for AWS::IoTSiteWise::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html)" ] }, "Properties": { - "$ref": "resources/aws-evidently-feature.json" + "$ref": "resources/aws-iotsitewise-project.json" } }, "required": [ @@ -38554,9 +38557,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Registry": { + "AWS_AppRunner_ObservabilityConfiguration": { "type": "object", - "markdownDescription": "This resource creates a Registry for authoring schemas as part of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html)", + "markdownDescription": "The AWS::AppRunner::ObservabilityConfiguration resource is an AWS App Runner resource type that specifies an App Runner observability configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-observabilityconfiguration.html)", "allOf": [ { "type": "object", @@ -38564,19 +38567,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Registry" + "AWS::AppRunner::ObservabilityConfiguration" ], "markdownEnumDescriptions": [ - "This resource creates a Registry for authoring schemas as part of Glue Schema Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html)" + "The AWS::AppRunner::ObservabilityConfiguration resource is an AWS App Runner resource type that specifies an App Runner observability configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-observabilityconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-registry.json" + "$ref": "resources/aws-apprunner-observabilityconfiguration.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -38585,9 +38587,9 @@ ], "additionalProperties": false }, - "AWS_DocDB_DBCluster": { + "AWS_EC2_IPAMAllocation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DocDB::DBCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html)", + "markdownDescription": "Resource Schema of AWS::EC2::IPAMAllocation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html)", "allOf": [ { "type": "object", @@ -38595,18 +38597,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DocDB::DBCluster" + "AWS::EC2::IPAMAllocation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DocDB::DBCluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html)" + "Resource Schema of AWS::EC2::IPAMAllocation Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html)" ] }, "Properties": { - "$ref": "resources/aws-docdb-dbcluster.json" + "$ref": "resources/aws-ec2-ipamallocation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -38615,9 +38618,9 @@ ], "additionalProperties": false }, - "AWS_DocDBElastic_Cluster": { + "AWS_Cases_CaseRule": { "type": "object", - "markdownDescription": "The AWS::DocDBElastic::Cluster Amazon DocumentDB (with MongoDB compatibility) Elastic Scale resource describes a Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html)", + "markdownDescription": "A case rule. In the Amazon Connect admin website, case rules are known as case field conditions. Case rules are used to define the situations under which fields should have certain effects (such as required). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-caserule.html)", "allOf": [ { "type": "object", @@ -38625,14 +38628,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DocDBElastic::Cluster" + "AWS::Cases::CaseRule" ], "markdownEnumDescriptions": [ - "The AWS::DocDBElastic::Cluster Amazon DocumentDB (with MongoDB compatibility) Elastic Scale resource describes a Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html)" + "A case rule. In the Amazon Connect admin website, case rules are known as case field conditions. Case rules are used to define the situations under which fields should have certain effects (such as required). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-caserule.html)" ] }, "Properties": { - "$ref": "resources/aws-docdbelastic-cluster.json" + "$ref": "resources/aws-cases-caserule.json" } }, "required": [ @@ -38646,9 +38649,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_StreamingDistribution": { + "AWS_CloudFormation_WaitConditionHandle": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudFront::StreamingDistribution \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html)", + "markdownDescription": "Resource Type definition for AWS::CloudFormation::WaitConditionHandle \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitconditionhandle.html)", "allOf": [ { "type": "object", @@ -38656,19 +38659,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::StreamingDistribution" + "AWS::CloudFormation::WaitConditionHandle" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudFront::StreamingDistribution \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html)" + "Resource Type definition for AWS::CloudFormation::WaitConditionHandle \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitconditionhandle.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-streamingdistribution.json" + "$ref": "resources/aws-cloudformation-waitconditionhandle.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -38677,9 +38679,9 @@ ], "additionalProperties": false }, - "AWS_IoT_Dimension": { + "AWS_QLDB_Ledger": { "type": "object", - "markdownDescription": "A dimension can be used to limit the scope of a metric used in a security profile for AWS IoT Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html)", + "markdownDescription": "Resource Type definition for AWS::QLDB::Ledger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html)", "allOf": [ { "type": "object", @@ -38687,14 +38689,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::Dimension" + "AWS::QLDB::Ledger" ], "markdownEnumDescriptions": [ - "A dimension can be used to limit the scope of a metric used in a security profile for AWS IoT Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html)" + "Resource Type definition for AWS::QLDB::Ledger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-dimension.json" + "$ref": "resources/aws-qldb-ledger.json" } }, "required": [ @@ -38708,9 +38710,9 @@ ], "additionalProperties": false }, - "AWS_CleanRooms_Membership": { + "AWS_Events_EventBus": { "type": "object", - "markdownDescription": "Represents an AWS account that is a part of a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-membership.html)", + "markdownDescription": "Resource type definition for AWS::Events::EventBus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html)", "allOf": [ { "type": "object", @@ -38718,14 +38720,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CleanRooms::Membership" + "AWS::Events::EventBus" ], "markdownEnumDescriptions": [ - "Represents an AWS account that is a part of a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-membership.html)" + "Resource type definition for AWS::Events::EventBus \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html)" ] }, "Properties": { - "$ref": "resources/aws-cleanrooms-membership.json" + "$ref": "resources/aws-events-eventbus.json" } }, "required": [ @@ -38739,9 +38741,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_Resource": { + "AWS_Backup_RestoreTestingPlan": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::LakeFormation::Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html)", + "markdownDescription": "Definition of AWS::Backup::RestoreTestingPlan Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html)", "allOf": [ { "type": "object", @@ -38749,14 +38751,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::Resource" + "AWS::Backup::RestoreTestingPlan" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::LakeFormation::Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html)" + "Definition of AWS::Backup::RestoreTestingPlan Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-resource.json" + "$ref": "resources/aws-backup-restoretestingplan.json" } }, "required": [ @@ -38770,9 +38772,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_TrustStore": { + "AWS_GlobalAccelerator_CrossAccountAttachment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststore.html)", + "markdownDescription": "Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html)", "allOf": [ { "type": "object", @@ -38780,18 +38782,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::TrustStore" + "AWS::GlobalAccelerator::CrossAccountAttachment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStore \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststore.html)" + "Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-truststore.json" + "$ref": "resources/aws-globalaccelerator-crossaccountattachment.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -38800,9 +38803,9 @@ ], "additionalProperties": false }, - "AWS_ElasticLoadBalancingV2_TrustStoreRevocation": { + "AWS_Redshift_ClusterParameterGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStoreRevocation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststorerevocation.html)", + "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html)", "allOf": [ { "type": "object", @@ -38810,18 +38813,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + "AWS::Redshift::ClusterParameterGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElasticLoadBalancingV2::TrustStoreRevocation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-truststorerevocation.html)" + "Resource Type definition for AWS::Redshift::ClusterParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticloadbalancingv2-truststorerevocation.json" + "$ref": "resources/aws-redshift-clusterparametergroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -38830,9 +38834,9 @@ ], "additionalProperties": false }, - "AWS_EC2_InternetGateway": { + "AWS_MediaTailor_SourceLocation": { "type": "object", - "markdownDescription": "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html)", + "markdownDescription": "Definition of AWS::MediaTailor::SourceLocation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html)", "allOf": [ { "type": "object", @@ -38840,18 +38844,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::InternetGateway" + "AWS::MediaTailor::SourceLocation" ], "markdownEnumDescriptions": [ - "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html)" + "Definition of AWS::MediaTailor::SourceLocation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-internetgateway.json" + "$ref": "resources/aws-mediatailor-sourcelocation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -38860,9 +38865,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_Dashboard": { + "AWS_Glue_Partition": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::Dashboard Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::Partition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html)", "allOf": [ { "type": "object", @@ -38870,14 +38875,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::Dashboard" + "AWS::Glue::Partition" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::Dashboard Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html)" + "Resource Type definition for AWS::Glue::Partition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-dashboard.json" + "$ref": "resources/aws-glue-partition.json" } }, "required": [ @@ -38891,9 +38896,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NatGateway": { + "AWS_Route53Resolver_ResolverEndpoint": { "type": "object", - "markdownDescription": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html)", + "markdownDescription": "Resource type definition for AWS::Route53Resolver::ResolverEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html)", "allOf": [ { "type": "object", @@ -38901,18 +38906,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NatGateway" + "AWS::Route53Resolver::ResolverEndpoint" ], "markdownEnumDescriptions": [ - "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html)" + "Resource type definition for AWS::Route53Resolver::ResolverEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-natgateway.json" + "$ref": "resources/aws-route53resolver-resolverendpoint.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -38921,9 +38927,9 @@ ], "additionalProperties": false }, - "AWS_SSMContacts_Contact": { + "AWS_DocDB_DBSubnetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SSMContacts::Contact \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html)", + "markdownDescription": "Resource Type definition for AWS::DocDB::DBSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html)", "allOf": [ { "type": "object", @@ -38931,14 +38937,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SSMContacts::Contact" + "AWS::DocDB::DBSubnetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SSMContacts::Contact \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html)" + "Resource Type definition for AWS::DocDB::DBSubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ssmcontacts-contact.json" + "$ref": "resources/aws-docdb-dbsubnetgroup.json" } }, "required": [ @@ -38952,9 +38958,9 @@ ], "additionalProperties": false }, - "AWS_Backup_BackupVault": { + "AWS_S3Outposts_Endpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Backup::BackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html)", + "markdownDescription": "Resource Type Definition for AWS::S3Outposts::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html)", "allOf": [ { "type": "object", @@ -38962,14 +38968,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::BackupVault" + "AWS::S3Outposts::Endpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Backup::BackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html)" + "Resource Type Definition for AWS::S3Outposts::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-backupvault.json" + "$ref": "resources/aws-s3outposts-endpoint.json" } }, "required": [ @@ -38983,9 +38989,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_Group": { + "AWS_Glue_MLTransform": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html)", + "markdownDescription": "Resource Type definition for AWS::Glue::MLTransform \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html)", "allOf": [ { "type": "object", @@ -38993,14 +38999,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::Group" + "AWS::Glue::MLTransform" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html)" + "Resource Type definition for AWS::Glue::MLTransform \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-group.json" + "$ref": "resources/aws-glue-mltransform.json" } }, "required": [ @@ -39014,9 +39020,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_EventBridgeRuleTemplate": { + "AWS_Invoicing_InvoiceUnit": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::EventBridgeRuleTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplate.html)", + "markdownDescription": "An invoice unit is a set of mutually exclusive accounts that correspond to your business entity. Invoice units allow you to separate AWS account costs and configures your invoice for each business entity. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-invoicing-invoiceunit.html)", "allOf": [ { "type": "object", @@ -39024,14 +39030,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::EventBridgeRuleTemplate" + "AWS::Invoicing::InvoiceUnit" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::EventBridgeRuleTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplate.html)" + "An invoice unit is a set of mutually exclusive accounts that correspond to your business entity. Invoice units allow you to separate AWS account costs and configures your invoice for each business entity. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-invoicing-invoiceunit.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-eventbridgeruletemplate.json" + "$ref": "resources/aws-invoicing-invoiceunit.json" } }, "required": [ @@ -39045,9 +39051,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_Master": { + "AWS_LicenseManager_License": { "type": "object", - "markdownDescription": "GuardDuty Master resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html)", + "markdownDescription": "Resource Type definition for AWS::LicenseManager::License \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html)", "allOf": [ { "type": "object", @@ -39055,14 +39061,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::Master" + "AWS::LicenseManager::License" ], "markdownEnumDescriptions": [ - "GuardDuty Master resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html)" + "Resource Type definition for AWS::LicenseManager::License \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-master.json" + "$ref": "resources/aws-licensemanager-license.json" } }, "required": [ @@ -39076,9 +39082,9 @@ ], "additionalProperties": false }, - "AWS_Detective_MemberInvitation": { + "AWS_NetworkFirewall_VpcEndpointAssociation": { "type": "object", - "markdownDescription": "Resource schema for AWS::Detective::MemberInvitation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html)", + "markdownDescription": "Resource type definition for AWS::NetworkFirewall::VpcEndpointAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-vpcendpointassociation.html)", "allOf": [ { "type": "object", @@ -39086,14 +39092,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Detective::MemberInvitation" + "AWS::NetworkFirewall::VpcEndpointAssociation" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Detective::MemberInvitation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html)" + "Resource type definition for AWS::NetworkFirewall::VpcEndpointAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-vpcendpointassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-detective-memberinvitation.json" + "$ref": "resources/aws-networkfirewall-vpcendpointassociation.json" } }, "required": [ @@ -39107,9 +39113,9 @@ ], "additionalProperties": false }, - "AWS_DataSync_LocationFSxONTAP": { + "AWS_AppMesh_VirtualService": { "type": "object", - "markdownDescription": "Resource schema for AWS::DataSync::LocationFSxONTAP. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxontap.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::VirtualService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html)", "allOf": [ { "type": "object", @@ -39117,14 +39123,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataSync::LocationFSxONTAP" + "AWS::AppMesh::VirtualService" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::DataSync::LocationFSxONTAP. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxontap.html)" + "Resource Type definition for AWS::AppMesh::VirtualService \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html)" ] }, "Properties": { - "$ref": "resources/aws-datasync-locationfsxontap.json" + "$ref": "resources/aws-appmesh-virtualservice.json" } }, "required": [ @@ -39138,9 +39144,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_ThreatEntitySet": { + "AWS_DocDB_GlobalCluster": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::ThreatEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatentityset.html)", + "markdownDescription": "The AWS::DocDB::GlobalCluster resource represents an Amazon DocumentDB Global Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-globalcluster.html)", "allOf": [ { "type": "object", @@ -39148,14 +39154,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::ThreatEntitySet" + "AWS::DocDB::GlobalCluster" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::ThreatEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatentityset.html)" + "The AWS::DocDB::GlobalCluster resource represents an Amazon DocumentDB Global Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-globalcluster.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-threatentityset.json" + "$ref": "resources/aws-docdb-globalcluster.json" } }, "required": [ @@ -39169,9 +39175,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalyticsV2_ApplicationOutput": { + "AWS_SecurityHub_ConfigurationPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html)", + "markdownDescription": "The AWS::SecurityHub::ConfigurationPolicy resource represents the Central Configuration Policy in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-configurationpolicy.html)", "allOf": [ { "type": "object", @@ -39179,14 +39185,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalyticsV2::ApplicationOutput" + "AWS::SecurityHub::ConfigurationPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationOutput \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html)" + "The AWS::SecurityHub::ConfigurationPolicy resource represents the Central Configuration Policy in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-configurationpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalyticsv2-applicationoutput.json" + "$ref": "resources/aws-securityhub-configurationpolicy.json" } }, "required": [ @@ -39200,9 +39206,9 @@ ], "additionalProperties": false }, - "AWS_Transfer_Certificate": { + "AWS_ImageBuilder_LifecyclePolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Transfer::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-lifecyclepolicy.html)", "allOf": [ { "type": "object", @@ -39210,14 +39216,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Transfer::Certificate" + "AWS::ImageBuilder::LifecyclePolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Transfer::Certificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html)" + "Resource schema for AWS::ImageBuilder::LifecyclePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-lifecyclepolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-transfer-certificate.json" + "$ref": "resources/aws-imagebuilder-lifecyclepolicy.json" } }, "required": [ @@ -39231,9 +39237,9 @@ ], "additionalProperties": false }, - "AWS_EC2_RouteServer": { + "AWS_ImageBuilder_Image": { "type": "object", - "markdownDescription": "VPC Route Server \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html)", + "markdownDescription": "Resource schema for AWS::ImageBuilder::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html)", "allOf": [ { "type": "object", @@ -39241,19 +39247,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::RouteServer" + "AWS::ImageBuilder::Image" ], "markdownEnumDescriptions": [ - "VPC Route Server \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html)" + "Resource schema for AWS::ImageBuilder::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-routeserver.json" + "$ref": "resources/aws-imagebuilder-image.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -39262,9 +39267,9 @@ ], "additionalProperties": false }, - "AWS_ElastiCache_User": { + "AWS_Timestream_Database": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ElastiCache::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html)", + "markdownDescription": "The AWS::Timestream::Database resource creates a Timestream database. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-database.html)", "allOf": [ { "type": "object", @@ -39272,19 +39277,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ElastiCache::User" + "AWS::Timestream::Database" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ElastiCache::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html)" + "The AWS::Timestream::Database resource creates a Timestream database. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-database.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticache-user.json" + "$ref": "resources/aws-timestream-database.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -39293,9 +39297,9 @@ ], "additionalProperties": false }, - "AWS_QBusiness_Application": { + "AWS_BcmPricingCalculator_BillScenario": { "type": "object", - "markdownDescription": "Definition of AWS::QBusiness::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-application.html)", + "markdownDescription": "Resource Type definition for AWS::BcmPricingCalculator::BillScenario \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmpricingcalculator-billscenario.html)", "allOf": [ { "type": "object", @@ -39303,19 +39307,18 @@ "Type": { "type": "string", "enum": [ - "AWS::QBusiness::Application" + "AWS::BcmPricingCalculator::BillScenario" ], "markdownEnumDescriptions": [ - "Definition of AWS::QBusiness::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-application.html)" + "Resource Type definition for AWS::BcmPricingCalculator::BillScenario \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmpricingcalculator-billscenario.html)" ] }, "Properties": { - "$ref": "resources/aws-qbusiness-application.json" + "$ref": "resources/aws-bcmpricingcalculator-billscenario.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -39324,9 +39327,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_ADMChannel": { + "AWS_MemoryDB_ParameterGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::ADMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-admchannel.html)", + "markdownDescription": "The AWS::MemoryDB::ParameterGroup resource creates an Amazon MemoryDB ParameterGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html)", "allOf": [ { "type": "object", @@ -39334,14 +39337,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::ADMChannel" + "AWS::MemoryDB::ParameterGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::ADMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-admchannel.html)" + "The AWS::MemoryDB::ParameterGroup resource creates an Amazon MemoryDB ParameterGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-admchannel.json" + "$ref": "resources/aws-memorydb-parametergroup.json" } }, "required": [ @@ -39355,9 +39358,9 @@ ], "additionalProperties": false }, - "AWS_MediaConvert_Preset": { + "AWS_MediaTailor_PlaybackConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaConvert::Preset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html)", + "markdownDescription": "Resource schema for AWS::MediaTailor::PlaybackConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html)", "allOf": [ { "type": "object", @@ -39365,14 +39368,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConvert::Preset" + "AWS::MediaTailor::PlaybackConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaConvert::Preset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html)" + "Resource schema for AWS::MediaTailor::PlaybackConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconvert-preset.json" + "$ref": "resources/aws-mediatailor-playbackconfiguration.json" } }, "required": [ @@ -39386,9 +39389,9 @@ ], "additionalProperties": false }, - "AWS_CodeStar_GitHubRepository": { + "AWS_SES_CustomVerificationEmailTemplate": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeStar::GitHubRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html)", + "markdownDescription": "Resource Type definition for AWS::SES::CustomVerificationEmailTemplate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-customverificationemailtemplate.html)", "allOf": [ { "type": "object", @@ -39396,14 +39399,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeStar::GitHubRepository" + "AWS::SES::CustomVerificationEmailTemplate" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeStar::GitHubRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html)" + "Resource Type definition for AWS::SES::CustomVerificationEmailTemplate. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-customverificationemailtemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-codestar-githubrepository.json" + "$ref": "resources/aws-ses-customverificationemailtemplate.json" } }, "required": [ @@ -39417,9 +39420,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_SecurityControl": { + "AWS_ApiGateway_RequestValidator": { "type": "object", - "markdownDescription": "A security control in Security Hub describes a security best practice related to a specific resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-securitycontrol.html)", + "markdownDescription": "The ``AWS::ApiGateway::RequestValidator`` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html)", "allOf": [ { "type": "object", @@ -39427,14 +39430,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::SecurityControl" + "AWS::ApiGateway::RequestValidator" ], "markdownEnumDescriptions": [ - "A security control in Security Hub describes a security best practice related to a specific resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-securitycontrol.html)" + "The ``AWS::ApiGateway::RequestValidator`` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-securitycontrol.json" + "$ref": "resources/aws-apigateway-requestvalidator.json" } }, "required": [ @@ -39448,9 +39451,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Model": { + "AWS_VpcLattice_ServiceNetwork": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Model \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html)", + "markdownDescription": "A service network is a logical boundary for a collection of services. You can associate services and VPCs with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetwork.html)", "allOf": [ { "type": "object", @@ -39458,14 +39461,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Model" + "AWS::VpcLattice::ServiceNetwork" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Model \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html)" + "A service network is a logical boundary for a collection of services. You can associate services and VPCs with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetwork.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-model.json" + "$ref": "resources/aws-vpclattice-servicenetwork.json" } }, "required": [ @@ -39478,9 +39481,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInsightsAnalysis": { + "AWS_Lightsail_InstanceSnapshot": { "type": "object", - "markdownDescription": "Resource schema for AWS::EC2::NetworkInsightsAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::InstanceSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instancesnapshot.html)", "allOf": [ { "type": "object", @@ -39488,14 +39491,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInsightsAnalysis" + "AWS::Lightsail::InstanceSnapshot" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EC2::NetworkInsightsAnalysis \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html)" + "Resource Type definition for AWS::Lightsail::InstanceSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instancesnapshot.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinsightsanalysis.json" + "$ref": "resources/aws-lightsail-instancesnapshot.json" } }, "required": [ @@ -39509,9 +39512,9 @@ ], "additionalProperties": false }, - "AWS_Proton_EnvironmentAccountConnection": { + "AWS_SecurityLake_DataLake": { "type": "object", - "markdownDescription": "Resource Schema describing various properties for AWS Proton Environment Account Connections resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmentaccountconnection.html)", + "markdownDescription": "Resource Type definition for AWS::SecurityLake::DataLake \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html)", "allOf": [ { "type": "object", @@ -39519,14 +39522,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Proton::EnvironmentAccountConnection" + "AWS::SecurityLake::DataLake" ], "markdownEnumDescriptions": [ - "Resource Schema describing various properties for AWS Proton Environment Account Connections resources. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-proton-environmentaccountconnection.html)" + "Resource Type definition for AWS::SecurityLake::DataLake \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html)" ] }, "Properties": { - "$ref": "resources/aws-proton-environmentaccountconnection.json" + "$ref": "resources/aws-securitylake-datalake.json" } }, "required": [ @@ -39539,9 +39542,9 @@ ], "additionalProperties": false }, - "AWS_AppStream_ImageBuilder": { + "AWS_GuardDuty_ThreatEntitySet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppStream::ImageBuilder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html)", + "markdownDescription": "Resource Type definition for AWS::GuardDuty::ThreatEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatentityset.html)", "allOf": [ { "type": "object", @@ -39549,14 +39552,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppStream::ImageBuilder" + "AWS::GuardDuty::ThreatEntitySet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppStream::ImageBuilder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html)" + "Resource Type definition for AWS::GuardDuty::ThreatEntitySet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatentityset.html)" ] }, "Properties": { - "$ref": "resources/aws-appstream-imagebuilder.json" + "$ref": "resources/aws-guardduty-threatentityset.json" } }, "required": [ @@ -39570,9 +39573,9 @@ ], "additionalProperties": false }, - "AWS_Route53_HostedZone": { + "AWS_CodeGuruReviewer_RepositoryAssociation": { "type": "object", - "markdownDescription": "Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs). \n You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.\n For more information about charges for hosted zones, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/).\n Note the following:\n + You can't create a hosted zone for a top-level domain (TLD) such as .com.\n + If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see [Migrating DNS Service for an Existing Domain to Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) in the *Amazon Route 53 Developer Guide*. \n \n When you submit a ``CreateHostedZone`` request, the initial status of the hosted zone is ``PENDING``. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to ``INSYNC``.\n The ``CreateHostedZone`` request requires the caller to have an ``ec2:DescribeVpcs`` permission.\n When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of AWS-Regions. Each AWS-account is scoped to one partition.\n The following are the supported partitions:\n + ``aws`` - AWS-Regions\n + ``aws-cn`` - China Regions\n + ``aws-us-gov`` - govcloud-us-region\n \n For more information, see [Access Management](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html)", + "markdownDescription": "This resource schema represents the RepositoryAssociation resource in the Amazon CodeGuru Reviewer service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html)", "allOf": [ { "type": "object", @@ -39580,18 +39583,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53::HostedZone" + "AWS::CodeGuruReviewer::RepositoryAssociation" ], "markdownEnumDescriptions": [ - "Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs). \n You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.\n For more information about charges for hosted zones, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/).\n Note the following:\n + You can't create a hosted zone for a top-level domain (TLD) such as .com.\n + If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see [Migrating DNS Service for an Existing Domain to Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) in the *Amazon Route 53 Developer Guide*. \n \n When you submit a ``CreateHostedZone`` request, the initial status of the hosted zone is ``PENDING``. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to ``INSYNC``.\n The ``CreateHostedZone`` request requires the caller to have an ``ec2:DescribeVpcs`` permission.\n When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of AWS-Regions. Each AWS-account is scoped to one partition.\n The following are the supported partitions:\n + ``aws`` - AWS-Regions\n + ``aws-cn`` - China Regions\n + ``aws-us-gov`` - govcloud-us-region\n \n For more information, see [Access Management](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html)" + "This resource schema represents the RepositoryAssociation resource in the Amazon CodeGuru Reviewer service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-route53-hostedzone.json" + "$ref": "resources/aws-codegurureviewer-repositoryassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -39600,9 +39604,9 @@ ], "additionalProperties": false }, - "AWS_Connect_SecurityProfile": { + "AWS_CodeBuild_Fleet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Connect::SecurityProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html)", + "markdownDescription": "Resource Type definition for AWS::CodeBuild::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-fleet.html)", "allOf": [ { "type": "object", @@ -39610,50 +39614,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Connect::SecurityProfile" + "AWS::CodeBuild::Fleet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Connect::SecurityProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html)" + "Resource Type definition for AWS::CodeBuild::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-connect-securityprofile.json" - } - }, - "required": [ - "Type", - "Properties" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_DirectoryService_SimpleAD": { - "type": "object", - "markdownDescription": "Resource Type definition for AWS::DirectoryService::SimpleAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::DirectoryService::SimpleAD" - ], - "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DirectoryService::SimpleAD \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-directoryservice-simplead.json" + "$ref": "resources/aws-codebuild-fleet.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -39662,9 +39634,9 @@ ], "additionalProperties": false }, - "AWS_EMR_WALWorkspace": { + "AWS_CloudFormation_WaitCondition": { "type": "object", - "markdownDescription": "Resource schema for AWS::EMR::WALWorkspace Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-walworkspace.html)", + "markdownDescription": "Resource Type definition for AWS::CloudFormation::WaitCondition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitcondition.html)", "allOf": [ { "type": "object", @@ -39672,14 +39644,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EMR::WALWorkspace" + "AWS::CloudFormation::WaitCondition" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::EMR::WALWorkspace Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-walworkspace.html)" + "Resource Type definition for AWS::CloudFormation::WaitCondition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-waitcondition.html)" ] }, "Properties": { - "$ref": "resources/aws-emr-walworkspace.json" + "$ref": "resources/aws-cloudformation-waitcondition.json" } }, "required": [ @@ -39692,9 +39664,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_SqlInjectionMatchSet": { + "AWS_ElasticBeanstalk_Environment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html)", + "markdownDescription": "Resource Type definition for AWS::ElasticBeanstalk::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html)", "allOf": [ { "type": "object", @@ -39702,14 +39674,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::SqlInjectionMatchSet" + "AWS::ElasticBeanstalk::Environment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html)" + "Resource Type definition for AWS::ElasticBeanstalk::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-sqlinjectionmatchset.json" + "$ref": "resources/aws-elasticbeanstalk-environment.json" } }, "required": [ @@ -39723,39 +39695,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Classifier": { - "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Classifier \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::Glue::Classifier" - ], - "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Classifier \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-glue-classifier.json" - } - }, - "required": [ - "Type" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_AppConfig_Deployment": { + "AWS_Lex_BotVersion": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppConfig::Deployment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html)", + "markdownDescription": "Resource Type definition for bot versions, a numbered snapshot of your work that you can publish for use in different parts of your workflow, such as development, beta deployment, and production. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botversion.html)", "allOf": [ { "type": "object", @@ -39763,14 +39705,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::Deployment" + "AWS::Lex::BotVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppConfig::Deployment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html)" + "Resource Type definition for bot versions, a numbered snapshot of your work that you can publish for use in different parts of your workflow, such as development, beta deployment, and production. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lex-botversion.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-deployment.json" + "$ref": "resources/aws-lex-botversion.json" } }, "required": [ @@ -39784,9 +39726,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_Stage": { + "AWS_AppConfig_Application": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApiGatewayV2::Stage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html)", + "markdownDescription": "Resource Type definition for AWS::AppConfig::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html)", "allOf": [ { "type": "object", @@ -39794,14 +39736,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::Stage" + "AWS::AppConfig::Application" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApiGatewayV2::Stage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html)" + "Resource Type definition for AWS::AppConfig::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-stage.json" + "$ref": "resources/aws-appconfig-application.json" } }, "required": [ @@ -39815,9 +39757,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_FeatureGroup": { + "AWS_S3Tables_Table": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::FeatureGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-featuregroup.html)", + "markdownDescription": "Resource Type definition for AWS::S3Tables::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html)", "allOf": [ { "type": "object", @@ -39825,14 +39767,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::FeatureGroup" + "AWS::S3Tables::Table" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::FeatureGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-featuregroup.html)" + "Resource Type definition for AWS::S3Tables::Table \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3tables-table.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-featuregroup.json" + "$ref": "resources/aws-s3tables-table.json" } }, "required": [ @@ -39846,9 +39788,9 @@ ], "additionalProperties": false }, - "AWS_Greengrass_DeviceDefinition": { + "AWS_EC2_VPCBlockPublicAccessOptions": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Greengrass::DeviceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCBlockPublicAccessOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessoptions.html)", "allOf": [ { "type": "object", @@ -39856,14 +39798,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Greengrass::DeviceDefinition" + "AWS::EC2::VPCBlockPublicAccessOptions" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Greengrass::DeviceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html)" + "Resource Type definition for AWS::EC2::VPCBlockPublicAccessOptions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessoptions.html)" ] }, "Properties": { - "$ref": "resources/aws-greengrass-devicedefinition.json" + "$ref": "resources/aws-ec2-vpcblockpublicaccessoptions.json" } }, "required": [ @@ -39877,9 +39819,9 @@ ], "additionalProperties": false }, - "AWS_CodeStarConnections_Connection": { + "AWS_Organizations_OrganizationalUnit": { "type": "object", - "markdownDescription": "Schema for AWS::CodeStarConnections::Connection resource which can be used to connect external source providers with AWS CodePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)", + "markdownDescription": "You can use organizational units (OUs) to group accounts together to administer as a single unit. This greatly simplifies the management of your accounts. For example, you can attach a policy-based control to an OU, and all accounts within the OU automatically inherit the policy. You can create multiple OUs within a single organization, and you can create OUs within other OUs. Each OU can contain multiple accounts, and you can move accounts from one OU to another. However, OU names must be unique within a parent OU or root. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organizationalunit.html)", "allOf": [ { "type": "object", @@ -39887,14 +39829,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeStarConnections::Connection" + "AWS::Organizations::OrganizationalUnit" ], "markdownEnumDescriptions": [ - "Schema for AWS::CodeStarConnections::Connection resource which can be used to connect external source providers with AWS CodePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)" + "You can use organizational units (OUs) to group accounts together to administer as a single unit. This greatly simplifies the management of your accounts. For example, you can attach a policy-based control to an OU, and all accounts within the OU automatically inherit the policy. You can create multiple OUs within a single organization, and you can create OUs within other OUs. Each OU can contain multiple accounts, and you can move accounts from one OU to another. However, OU names must be unique within a parent OU or root. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-organizationalunit.html)" ] }, "Properties": { - "$ref": "resources/aws-codestarconnections-connection.json" + "$ref": "resources/aws-organizations-organizationalunit.json" } }, "required": [ @@ -39908,9 +39850,9 @@ ], "additionalProperties": false }, - "AWS_VoiceID_Domain": { + "AWS_ApiGateway_DomainNameV2": { "type": "object", - "markdownDescription": "The AWS::VoiceID::Domain resource specifies an Amazon VoiceID Domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-voiceid-domain.html)", + "markdownDescription": "Resource Type definition for AWS::ApiGateway::DomainNameV2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html)", "allOf": [ { "type": "object", @@ -39918,19 +39860,18 @@ "Type": { "type": "string", "enum": [ - "AWS::VoiceID::Domain" + "AWS::ApiGateway::DomainNameV2" ], "markdownEnumDescriptions": [ - "The AWS::VoiceID::Domain resource specifies an Amazon VoiceID Domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-voiceid-domain.html)" + "Resource Type definition for AWS::ApiGateway::DomainNameV2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html)" ] }, "Properties": { - "$ref": "resources/aws-voiceid-domain.json" + "$ref": "resources/aws-apigateway-domainnamev2.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -39939,9 +39880,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_NotebookInstance": { + "AWS_EC2_TransitGatewayMulticastDomainAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::NotebookInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html)", + "markdownDescription": "The AWS::EC2::TransitGatewayMulticastDomainAssociation type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html)", "allOf": [ { "type": "object", @@ -39949,14 +39890,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::NotebookInstance" + "AWS::EC2::TransitGatewayMulticastDomainAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::NotebookInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html)" + "The AWS::EC2::TransitGatewayMulticastDomainAssociation type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-notebookinstance.json" + "$ref": "resources/aws-ec2-transitgatewaymulticastdomainassociation.json" } }, "required": [ @@ -39970,9 +39911,9 @@ ], "additionalProperties": false }, - "AWS_ECR_RegistryScanningConfiguration": { + "AWS_IoTWireless_Destination": { "type": "object", - "markdownDescription": "The scanning configuration for a private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registryscanningconfiguration.html)", + "markdownDescription": "Destination's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html)", "allOf": [ { "type": "object", @@ -39980,14 +39921,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ECR::RegistryScanningConfiguration" + "AWS::IoTWireless::Destination" ], "markdownEnumDescriptions": [ - "The scanning configuration for a private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registryscanningconfiguration.html)" + "Destination's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html)" ] }, "Properties": { - "$ref": "resources/aws-ecr-registryscanningconfiguration.json" + "$ref": "resources/aws-iotwireless-destination.json" } }, "required": [ @@ -40001,9 +39942,9 @@ ], "additionalProperties": false }, - "AWS_IoTFleetHub_Application": { + "AWS_Glue_UsageProfile": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTFleetHub::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html)", + "markdownDescription": "This creates a Resource of UsageProfile type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-usageprofile.html)", "allOf": [ { "type": "object", @@ -40011,14 +39952,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTFleetHub::Application" + "AWS::Glue::UsageProfile" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTFleetHub::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html)" + "This creates a Resource of UsageProfile type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-usageprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-iotfleethub-application.json" + "$ref": "resources/aws-glue-usageprofile.json" } }, "required": [ @@ -40032,9 +39973,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_App": { + "AWS_CloudFront_PublicKey": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-app.html)", + "markdownDescription": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)", "allOf": [ { "type": "object", @@ -40042,14 +39983,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::App" + "AWS::CloudFront::PublicKey" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-app.html)" + "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-app.json" + "$ref": "resources/aws-cloudfront-publickey.json" } }, "required": [ @@ -40063,9 +40004,9 @@ ], "additionalProperties": false }, - "AWS_Personalize_Schema": { + "AWS_Connect_TrafficDistributionGroup": { "type": "object", - "markdownDescription": "Resource schema for AWS::Personalize::Schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-schema.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::TrafficDistributionGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-trafficdistributiongroup.html)", "allOf": [ { "type": "object", @@ -40073,14 +40014,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Personalize::Schema" + "AWS::Connect::TrafficDistributionGroup" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Personalize::Schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-schema.html)" + "Resource Type definition for AWS::Connect::TrafficDistributionGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-trafficdistributiongroup.html)" ] }, "Properties": { - "$ref": "resources/aws-personalize-schema.json" + "$ref": "resources/aws-connect-trafficdistributiongroup.json" } }, "required": [ @@ -40094,9 +40035,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_DomainName": { + "AWS_Athena_NamedQuery": { "type": "object", - "markdownDescription": "The ``AWS::ApiGatewayV2::DomainName`` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway). \n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html)", + "markdownDescription": "Resource schema for AWS::Athena::NamedQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html)", "allOf": [ { "type": "object", @@ -40104,14 +40045,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::DomainName" + "AWS::Athena::NamedQuery" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGatewayV2::DomainName`` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway). \n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html)" + "Resource schema for AWS::Athena::NamedQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-domainname.json" + "$ref": "resources/aws-athena-namedquery.json" } }, "required": [ @@ -40125,9 +40066,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_ConnectionGroup": { + "AWS_LaunchWizard_Deployment": { "type": "object", - "markdownDescription": "The connection group for your distribution tenants. When you first create a distribution tenant and you don't specify a connection group, CloudFront will automatically create a default connection group for you. When you create a new distribution tenant and don't specify a connection group, the default one will be associated with your distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html)", + "markdownDescription": "Definition of AWS::LaunchWizard::Deployment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-launchwizard-deployment.html)", "allOf": [ { "type": "object", @@ -40135,14 +40076,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::ConnectionGroup" + "AWS::LaunchWizard::Deployment" ], "markdownEnumDescriptions": [ - "The connection group for your distribution tenants. When you first create a distribution tenant and you don't specify a connection group, CloudFront will automatically create a default connection group for you. When you create a new distribution tenant and don't specify a connection group, the default one will be associated with your distribution tenant. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html)" + "Definition of AWS::LaunchWizard::Deployment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-launchwizard-deployment.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-connectiongroup.json" + "$ref": "resources/aws-launchwizard-deployment.json" } }, "required": [ @@ -40156,9 +40097,9 @@ ], "additionalProperties": false }, - "AWS_SES_MailManagerArchive": { + "AWS_EC2_LocalGatewayRouteTableVPCAssociation": { "type": "object", - "markdownDescription": "Definition of AWS::SES::MailManagerArchive Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerarchive.html)", + "markdownDescription": "Resource Type definition for Local Gateway Route Table VPC Association which describes an association between a local gateway route table and a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html)", "allOf": [ { "type": "object", @@ -40166,18 +40107,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::MailManagerArchive" + "AWS::EC2::LocalGatewayRouteTableVPCAssociation" ], "markdownEnumDescriptions": [ - "Definition of AWS::SES::MailManagerArchive Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagerarchive.html)" + "Resource Type definition for Local Gateway Route Table VPC Association which describes an association between a local gateway route table and a VPC. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-mailmanagerarchive.json" + "$ref": "resources/aws-ec2-localgatewayroutetablevpcassociation.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -40186,9 +40128,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ModelBiasJobDefinition": { + "AWS_ApiGatewayV2_RoutingRule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelBiasJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelbiasjobdefinition.html)", + "markdownDescription": "Schema for AWS::ApiGatewayV2::RoutingRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routingrule.html)", "allOf": [ { "type": "object", @@ -40196,14 +40138,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ModelBiasJobDefinition" + "AWS::ApiGatewayV2::RoutingRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ModelBiasJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelbiasjobdefinition.html)" + "Schema for AWS::ApiGatewayV2::RoutingRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routingrule.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-modelbiasjobdefinition.json" + "$ref": "resources/aws-apigatewayv2-routingrule.json" } }, "required": [ @@ -40217,9 +40159,9 @@ ], "additionalProperties": false }, - "AWS_Grafana_Workspace": { + "AWS_ObservabilityAdmin_S3TableIntegration": { "type": "object", - "markdownDescription": "Definition of AWS::Grafana::Workspace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-grafana-workspace.html)", + "markdownDescription": "Resource Type definition for a CloudWatch Observability Admin S3 Table Integration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-s3tableintegration.html)", "allOf": [ { "type": "object", @@ -40227,14 +40169,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Grafana::Workspace" + "AWS::ObservabilityAdmin::S3TableIntegration" ], "markdownEnumDescriptions": [ - "Definition of AWS::Grafana::Workspace Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-grafana-workspace.html)" + "Resource Type definition for a CloudWatch Observability Admin S3 Table Integration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-s3tableintegration.html)" ] }, "Properties": { - "$ref": "resources/aws-grafana-workspace.json" + "$ref": "resources/aws-observabilityadmin-s3tableintegration.json" } }, "required": [ @@ -40248,9 +40190,9 @@ ], "additionalProperties": false }, - "AWS_WorkSpaces_ConnectionAlias": { + "AWS_SecurityAgent_TargetDomain": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WorkSpaces::ConnectionAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-connectionalias.html)", + "markdownDescription": "Resource Type definition for AWS::SecurityAgent::TargetDomain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-targetdomain.html)", "allOf": [ { "type": "object", @@ -40258,14 +40200,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkSpaces::ConnectionAlias" + "AWS::SecurityAgent::TargetDomain" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WorkSpaces::ConnectionAlias \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-connectionalias.html)" + "Resource Type definition for AWS::SecurityAgent::TargetDomain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-targetdomain.html)" ] }, "Properties": { - "$ref": "resources/aws-workspaces-connectionalias.json" + "$ref": "resources/aws-securityagent-targetdomain.json" } }, "required": [ @@ -40279,9 +40221,9 @@ ], "additionalProperties": false }, - "AWS_MediaStore_Container": { + "AWS_EC2_LocalGatewayVirtualInterfaceGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaStore::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html)", + "markdownDescription": "Resource Type definition for LocalGatewayVirtualInterfaceGroup which describes a group of LocalGateway VirtualInterfaces \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html)", "allOf": [ { "type": "object", @@ -40289,14 +40231,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaStore::Container" + "AWS::EC2::LocalGatewayVirtualInterfaceGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaStore::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html)" + "Resource Type definition for LocalGatewayVirtualInterfaceGroup which describes a group of LocalGateway VirtualInterfaces \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-mediastore-container.json" + "$ref": "resources/aws-ec2-localgatewayvirtualinterfacegroup.json" } }, "required": [ @@ -40310,9 +40252,9 @@ ], "additionalProperties": false }, - "AWS_EFS_MountTarget": { + "AWS_SES_MailManagerTrafficPolicy": { "type": "object", - "markdownDescription": "The ``AWS::EFS::MountTarget`` resource is an Amazon EFS resource that creates a mount target for an EFS file system. You can then mount the file system on Amazon EC2 instances or other resources by using the mount target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)", + "markdownDescription": "Definition of AWS::SES::MailManagerTrafficPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagertrafficpolicy.html)", "allOf": [ { "type": "object", @@ -40320,14 +40262,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EFS::MountTarget" + "AWS::SES::MailManagerTrafficPolicy" ], "markdownEnumDescriptions": [ - "The ``AWS::EFS::MountTarget`` resource is an Amazon EFS resource that creates a mount target for an EFS file system. You can then mount the file system on Amazon EC2 instances or other resources by using the mount target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)" + "Definition of AWS::SES::MailManagerTrafficPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-mailmanagertrafficpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-efs-mounttarget.json" + "$ref": "resources/aws-ses-mailmanagertrafficpolicy.json" } }, "required": [ @@ -40341,9 +40283,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayVpcAttachment": { + "AWS_Cognito_UserPoolResourceServer": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolResourceServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html)", "allOf": [ { "type": "object", @@ -40351,14 +40293,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayVpcAttachment" + "AWS::Cognito::UserPoolResourceServer" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html)" + "Resource Type definition for AWS::Cognito::UserPoolResourceServer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayvpcattachment.json" + "$ref": "resources/aws-cognito-userpoolresourceserver.json" } }, "required": [ @@ -40372,9 +40314,9 @@ ], "additionalProperties": false }, - "AWS_MemoryDB_MultiRegionCluster": { + "AWS_MediaLive_EventBridgeRuleTemplateGroup": { "type": "object", - "markdownDescription": "The AWS::MemoryDB::Multi Region Cluster resource creates an Amazon MemoryDB Multi Region Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-multiregioncluster.html)", + "markdownDescription": "Definition of AWS::MediaLive::EventBridgeRuleTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplategroup.html)", "allOf": [ { "type": "object", @@ -40382,14 +40324,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MemoryDB::MultiRegionCluster" + "AWS::MediaLive::EventBridgeRuleTemplateGroup" ], "markdownEnumDescriptions": [ - "The AWS::MemoryDB::Multi Region Cluster resource creates an Amazon MemoryDB Multi Region Cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-multiregioncluster.html)" + "Definition of AWS::MediaLive::EventBridgeRuleTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplategroup.html)" ] }, "Properties": { - "$ref": "resources/aws-memorydb-multiregioncluster.json" + "$ref": "resources/aws-medialive-eventbridgeruletemplategroup.json" } }, "required": [ @@ -40403,9 +40345,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInterfaceAttachment": { + "AWS_IoTTwinMaker_Entity": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfaceattachment.html)", + "markdownDescription": "Resource schema for AWS::IoTTwinMaker::Entity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-entity.html)", "allOf": [ { "type": "object", @@ -40413,14 +40355,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInterfaceAttachment" + "AWS::IoTTwinMaker::Entity" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfaceattachment.html)" + "Resource schema for AWS::IoTTwinMaker::Entity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-entity.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinterfaceattachment.json" + "$ref": "resources/aws-iottwinmaker-entity.json" } }, "required": [ @@ -40434,9 +40376,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_ClusterSecurityGroup": { + "AWS_Amplify_Domain": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Redshift::ClusterSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html)", + "markdownDescription": "The AWS::Amplify::Domain resource allows you to connect a custom domain to your app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html)", "allOf": [ { "type": "object", @@ -40444,14 +40386,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::ClusterSecurityGroup" + "AWS::Amplify::Domain" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Redshift::ClusterSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html)" + "The AWS::Amplify::Domain resource allows you to connect a custom domain to your app. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-clustersecuritygroup.json" + "$ref": "resources/aws-amplify-domain.json" } }, "required": [ @@ -40465,9 +40407,9 @@ ], "additionalProperties": false }, - "AWS_Omics_ReferenceStore": { + "AWS_AppMesh_Mesh": { "type": "object", - "markdownDescription": "Definition of AWS::Omics::ReferenceStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-referencestore.html)", + "markdownDescription": "Resource Type definition for AWS::AppMesh::Mesh \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html)", "allOf": [ { "type": "object", @@ -40475,19 +40417,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::ReferenceStore" + "AWS::AppMesh::Mesh" ], "markdownEnumDescriptions": [ - "Definition of AWS::Omics::ReferenceStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-referencestore.html)" + "Resource Type definition for AWS::AppMesh::Mesh \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-referencestore.json" + "$ref": "resources/aws-appmesh-mesh.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -40496,9 +40437,9 @@ ], "additionalProperties": false }, - "AWS_Macie_Session": { + "AWS_SSMContacts_Contact": { "type": "object", - "markdownDescription": "The AWS::Macie::Session resource specifies a new Amazon Macie session. A session is an object that represents the Amazon Macie service. A session is required for Amazon Macie to become operational. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html)", + "markdownDescription": "Resource Type definition for AWS::SSMContacts::Contact \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html)", "allOf": [ { "type": "object", @@ -40506,18 +40447,19 @@ "Type": { "type": "string", "enum": [ - "AWS::Macie::Session" + "AWS::SSMContacts::Contact" ], "markdownEnumDescriptions": [ - "The AWS::Macie::Session resource specifies a new Amazon Macie session. A session is an object that represents the Amazon Macie service. A session is required for Amazon Macie to become operational. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html)" + "Resource Type definition for AWS::SSMContacts::Contact \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html)" ] }, "Properties": { - "$ref": "resources/aws-macie-session.json" + "$ref": "resources/aws-ssmcontacts-contact.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -40526,9 +40468,9 @@ ], "additionalProperties": false }, - "AWS_VerifiedPermissions_PolicyStore": { + "AWS_AppSync_ChannelNamespace": { "type": "object", - "markdownDescription": "Represents a policy store that you can place schema, policies, and policy templates in to validate authorization requests \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policystore.html)", + "markdownDescription": "Resource schema for AppSync ChannelNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html)", "allOf": [ { "type": "object", @@ -40536,14 +40478,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VerifiedPermissions::PolicyStore" + "AWS::AppSync::ChannelNamespace" ], "markdownEnumDescriptions": [ - "Represents a policy store that you can place schema, policies, and policy templates in to validate authorization requests \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policystore.html)" + "Resource schema for AppSync ChannelNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html)" ] }, "Properties": { - "$ref": "resources/aws-verifiedpermissions-policystore.json" + "$ref": "resources/aws-appsync-channelnamespace.json" } }, "required": [ @@ -40557,9 +40499,9 @@ ], "additionalProperties": false }, - "AWS_MSK_Replicator": { + "AWS_ServiceDiscovery_HttpNamespace": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MSK::Replicator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-replicator.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::HttpNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html)", "allOf": [ { "type": "object", @@ -40567,14 +40509,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MSK::Replicator" + "AWS::ServiceDiscovery::HttpNamespace" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MSK::Replicator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-replicator.html)" + "Resource Type definition for AWS::ServiceDiscovery::HttpNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html)" ] }, "Properties": { - "$ref": "resources/aws-msk-replicator.json" + "$ref": "resources/aws-servicediscovery-httpnamespace.json" } }, "required": [ @@ -40588,9 +40530,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_SMSChannel": { + "AWS_CleanRoomsML_TrainingDataset": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::SMSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smschannel.html)", + "markdownDescription": "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html)", "allOf": [ { "type": "object", @@ -40598,14 +40540,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::SMSChannel" + "AWS::CleanRoomsML::TrainingDataset" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::SMSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smschannel.html)" + "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-smschannel.json" + "$ref": "resources/aws-cleanroomsml-trainingdataset.json" } }, "required": [ @@ -40619,9 +40561,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_EventBridgeRuleTemplateGroup": { + "AWS_NetworkManager_Device": { "type": "object", - "markdownDescription": "Definition of AWS::MediaLive::EventBridgeRuleTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplategroup.html)", + "markdownDescription": "The AWS::NetworkManager::Device type describes a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html)", "allOf": [ { "type": "object", @@ -40629,14 +40571,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::EventBridgeRuleTemplateGroup" + "AWS::NetworkManager::Device" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaLive::EventBridgeRuleTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-eventbridgeruletemplategroup.html)" + "The AWS::NetworkManager::Device type describes a device. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-eventbridgeruletemplategroup.json" + "$ref": "resources/aws-networkmanager-device.json" } }, "required": [ @@ -40650,9 +40592,9 @@ ], "additionalProperties": false }, - "AWS_CodeStarNotifications_NotificationRule": { + "AWS_RolesAnywhere_TrustAnchor": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeStarNotifications::NotificationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html)", + "markdownDescription": "Definition of AWS::RolesAnywhere::TrustAnchor Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html)", "allOf": [ { "type": "object", @@ -40660,14 +40602,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeStarNotifications::NotificationRule" + "AWS::RolesAnywhere::TrustAnchor" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeStarNotifications::NotificationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html)" + "Definition of AWS::RolesAnywhere::TrustAnchor Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html)" ] }, "Properties": { - "$ref": "resources/aws-codestarnotifications-notificationrule.json" + "$ref": "resources/aws-rolesanywhere-trustanchor.json" } }, "required": [ @@ -40681,9 +40623,9 @@ ], "additionalProperties": false }, - "AWS_EC2_EC2Fleet": { + "AWS_SageMaker_MonitoringSchedule": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::EC2Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::MonitoringSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html)", "allOf": [ { "type": "object", @@ -40691,14 +40633,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::EC2Fleet" + "AWS::SageMaker::MonitoringSchedule" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::EC2Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html)" + "Resource Type definition for AWS::SageMaker::MonitoringSchedule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ec2fleet.json" + "$ref": "resources/aws-sagemaker-monitoringschedule.json" } }, "required": [ @@ -40712,9 +40654,9 @@ ], "additionalProperties": false }, - "AWS_IoT_SecurityProfile": { + "AWS_ElastiCache_SecurityGroupIngress": { "type": "object", - "markdownDescription": "A security profile defines a set of expected behaviors for devices in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroupingress.html)", "allOf": [ { "type": "object", @@ -40722,18 +40664,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::SecurityProfile" + "AWS::ElastiCache::SecurityGroupIngress" ], "markdownEnumDescriptions": [ - "A security profile defines a set of expected behaviors for devices in your account. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html)" + "Resource Type definition for AWS::ElastiCache::SecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-securitygroupingress.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-securityprofile.json" + "$ref": "resources/aws-elasticache-securitygroupingress.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -40742,9 +40685,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalogAppRegistry_Application": { + "AWS_AppConfig_DeploymentStrategy": { "type": "object", - "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-application.html)", + "markdownDescription": "Resource Type definition for AWS::AppConfig::DeploymentStrategy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html)", "allOf": [ { "type": "object", @@ -40752,14 +40695,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalogAppRegistry::Application" + "AWS::AppConfig::DeploymentStrategy" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::ServiceCatalogAppRegistry::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-application.html)" + "Resource Type definition for AWS::AppConfig::DeploymentStrategy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalogappregistry-application.json" + "$ref": "resources/aws-appconfig-deploymentstrategy.json" } }, "required": [ @@ -40773,9 +40716,9 @@ ], "additionalProperties": false }, - "AWS_EC2_EgressOnlyInternetGateway": { + "AWS_Route53_RecordSetGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::EgressOnlyInternetGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html)", + "markdownDescription": "Resource Type definition for AWS::Route53::RecordSetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html)", "allOf": [ { "type": "object", @@ -40783,19 +40726,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::EgressOnlyInternetGateway" + "AWS::Route53::RecordSetGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::EgressOnlyInternetGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html)" + "Resource Type definition for AWS::Route53::RecordSetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-egressonlyinternetgateway.json" + "$ref": "resources/aws-route53-recordsetgroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -40804,9 +40746,9 @@ ], "additionalProperties": false }, - "AWS_Config_RemediationConfiguration": { + "AWS_NetworkManager_CoreNetworkPrefixListAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Config::RemediationConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::NetworkManager::CoreNetworkPrefixListAssociation which associates a prefix list with a core network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-corenetworkprefixlistassociation.html)", "allOf": [ { "type": "object", @@ -40814,14 +40756,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Config::RemediationConfiguration" + "AWS::NetworkManager::CoreNetworkPrefixListAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Config::RemediationConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html)" + "Resource Type definition for AWS::NetworkManager::CoreNetworkPrefixListAssociation which associates a prefix list with a core network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-corenetworkprefixlistassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-config-remediationconfiguration.json" + "$ref": "resources/aws-networkmanager-corenetworkprefixlistassociation.json" } }, "required": [ @@ -40835,9 +40777,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGateway": { + "AWS_SageMaker_Model": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html)", + "markdownDescription": "Resource type definition for AWS::SageMaker::Model \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html)", "allOf": [ { "type": "object", @@ -40845,14 +40787,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGateway" + "AWS::SageMaker::Model" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html)" + "Resource type definition for AWS::SageMaker::Model \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgateway.json" + "$ref": "resources/aws-sagemaker-model.json" } }, "required": [ @@ -40865,9 +40807,9 @@ ], "additionalProperties": false }, - "AWS_DAX_ParameterGroup": { + "AWS_IoTWireless_DeviceProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DAX::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html)", + "markdownDescription": "Device Profile's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html)", "allOf": [ { "type": "object", @@ -40875,14 +40817,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DAX::ParameterGroup" + "AWS::IoTWireless::DeviceProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DAX::ParameterGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html)" + "Device Profile's resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-dax-parametergroup.json" + "$ref": "resources/aws-iotwireless-deviceprofile.json" } }, "required": [ @@ -40895,9 +40837,9 @@ ], "additionalProperties": false }, - "AWS_ServiceDiscovery_PublicDnsNamespace": { + "AWS_Bedrock_Prompt": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::PublicDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html)", + "markdownDescription": "Definition of AWS::Bedrock::Prompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-prompt.html)", "allOf": [ { "type": "object", @@ -40905,14 +40847,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceDiscovery::PublicDnsNamespace" + "AWS::Bedrock::Prompt" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceDiscovery::PublicDnsNamespace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html)" + "Definition of AWS::Bedrock::Prompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-prompt.html)" ] }, "Properties": { - "$ref": "resources/aws-servicediscovery-publicdnsnamespace.json" + "$ref": "resources/aws-bedrock-prompt.json" } }, "required": [ @@ -40926,9 +40868,9 @@ ], "additionalProperties": false }, - "AWS_EC2_IPAMPoolCidr": { + "AWS_Connect_User": { "type": "object", - "markdownDescription": "Resource Schema of AWS::EC2::IPAMPoolCidr Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html)", "allOf": [ { "type": "object", @@ -40936,14 +40878,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::IPAMPoolCidr" + "AWS::Connect::User" ], "markdownEnumDescriptions": [ - "Resource Schema of AWS::EC2::IPAMPoolCidr Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html)" + "Resource Type definition for AWS::Connect::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-ipampoolcidr.json" + "$ref": "resources/aws-connect-user.json" } }, "required": [ @@ -40957,9 +40899,9 @@ ], "additionalProperties": false }, - "AWS_IVS_StreamKey": { + "AWS_Omics_Configuration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::StreamKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html)", + "markdownDescription": "Resource schema for AWS::Omics::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-configuration.html)", "allOf": [ { "type": "object", @@ -40967,14 +40909,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::StreamKey" + "AWS::Omics::Configuration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::StreamKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html)" + "Resource schema for AWS::Omics::Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-configuration.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-streamkey.json" + "$ref": "resources/aws-omics-configuration.json" } }, "required": [ @@ -40988,9 +40930,9 @@ ], "additionalProperties": false }, - "AWS_MediaLive_Channel": { + "AWS_SageMaker_DeviceFleet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::MediaLive::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html)", + "markdownDescription": "Resource schema for AWS::SageMaker::DeviceFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-devicefleet.html)", "allOf": [ { "type": "object", @@ -40998,18 +40940,19 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaLive::Channel" + "AWS::SageMaker::DeviceFleet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::MediaLive::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html)" + "Resource schema for AWS::SageMaker::DeviceFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-devicefleet.html)" ] }, "Properties": { - "$ref": "resources/aws-medialive-channel.json" + "$ref": "resources/aws-sagemaker-devicefleet.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -41018,9 +40961,9 @@ ], "additionalProperties": false }, - "AWS_KinesisFirehose_DeliveryStream": { + "AWS_Deadline_Fleet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisFirehose::DeliveryStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html)", + "markdownDescription": "Resource Type definition for AWS::Deadline::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html)", "allOf": [ { "type": "object", @@ -41028,18 +40971,19 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisFirehose::DeliveryStream" + "AWS::Deadline::Fleet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisFirehose::DeliveryStream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html)" + "Resource Type definition for AWS::Deadline::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisfirehose-deliverystream.json" + "$ref": "resources/aws-deadline-fleet.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -41048,9 +40992,9 @@ ], "additionalProperties": false }, - "AWS_FSx_S3AccessPointAttachment": { + "AWS_SageMaker_EndpointConfig": { "type": "object", - "markdownDescription": "Resource type definition for AWS::FSx::S3AccessPointAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-s3accesspointattachment.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::EndpointConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html)", "allOf": [ { "type": "object", @@ -41058,14 +41002,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FSx::S3AccessPointAttachment" + "AWS::SageMaker::EndpointConfig" ], "markdownEnumDescriptions": [ - "Resource type definition for AWS::FSx::S3AccessPointAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-s3accesspointattachment.html)" + "Resource Type definition for AWS::SageMaker::EndpointConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-fsx-s3accesspointattachment.json" + "$ref": "resources/aws-sagemaker-endpointconfig.json" } }, "required": [ @@ -41079,9 +41023,9 @@ ], "additionalProperties": false }, - "AWS_IoTWireless_ServiceProfile": { + "AWS_S3_AccessGrantsInstance": { "type": "object", - "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html)", + "markdownDescription": "The AWS::S3::AccessGrantsInstance resource is an Amazon S3 resource type that hosts Access Grants and their associated locations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantsinstance.html)", "allOf": [ { "type": "object", @@ -41089,14 +41033,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTWireless::ServiceProfile" + "AWS::S3::AccessGrantsInstance" ], "markdownEnumDescriptions": [ - "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html)" + "The AWS::S3::AccessGrantsInstance resource is an Amazon S3 resource type that hosts Access Grants and their associated locations \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantsinstance.html)" ] }, "Properties": { - "$ref": "resources/aws-iotwireless-serviceprofile.json" + "$ref": "resources/aws-s3-accessgrantsinstance.json" } }, "required": [ @@ -41109,9 +41053,9 @@ ], "additionalProperties": false }, - "AWS_Lightsail_LoadBalancer": { + "AWS_ECR_RegistryScanningConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lightsail::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancer.html)", + "markdownDescription": "The scanning configuration for a private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registryscanningconfiguration.html)", "allOf": [ { "type": "object", @@ -41119,14 +41063,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lightsail::LoadBalancer" + "AWS::ECR::RegistryScanningConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lightsail::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancer.html)" + "The scanning configuration for a private registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registryscanningconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-lightsail-loadbalancer.json" + "$ref": "resources/aws-ecr-registryscanningconfiguration.json" } }, "required": [ @@ -41140,9 +41084,9 @@ ], "additionalProperties": false }, - "AWS_MediaTailor_VodSource": { + "AWS_IoT_Dimension": { "type": "object", - "markdownDescription": "Definition of AWS::MediaTailor::VodSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-vodsource.html)", + "markdownDescription": "A dimension can be used to limit the scope of a metric used in a security profile for AWS IoT Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html)", "allOf": [ { "type": "object", @@ -41150,14 +41094,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaTailor::VodSource" + "AWS::IoT::Dimension" ], "markdownEnumDescriptions": [ - "Definition of AWS::MediaTailor::VodSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-vodsource.html)" + "A dimension can be used to limit the scope of a metric used in a security profile for AWS IoT Device Defender. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html)" ] }, "Properties": { - "$ref": "resources/aws-mediatailor-vodsource.json" + "$ref": "resources/aws-iot-dimension.json" } }, "required": [ @@ -41171,9 +41115,9 @@ ], "additionalProperties": false }, - "AWS_BillingConductor_PricingPlan": { + "AWS_QBusiness_Plugin": { "type": "object", - "markdownDescription": "Pricing Plan enables you to customize your billing details consistent with the usage that accrues in each of your billing groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html)", + "markdownDescription": "Definition of AWS::QBusiness::Plugin Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-plugin.html)", "allOf": [ { "type": "object", @@ -41181,14 +41125,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BillingConductor::PricingPlan" + "AWS::QBusiness::Plugin" ], "markdownEnumDescriptions": [ - "Pricing Plan enables you to customize your billing details consistent with the usage that accrues in each of your billing groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html)" + "Definition of AWS::QBusiness::Plugin Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qbusiness-plugin.html)" ] }, "Properties": { - "$ref": "resources/aws-billingconductor-pricingplan.json" + "$ref": "resources/aws-qbusiness-plugin.json" } }, "required": [ @@ -41202,9 +41146,9 @@ ], "additionalProperties": false }, - "AWS_IoTAnalytics_Dataset": { + "AWS_Connect_ApprovedOrigin": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoTAnalytics::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::ApprovedOrigin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-approvedorigin.html)", "allOf": [ { "type": "object", @@ -41212,14 +41156,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTAnalytics::Dataset" + "AWS::Connect::ApprovedOrigin" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoTAnalytics::Dataset \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html)" + "Resource Type definition for AWS::Connect::ApprovedOrigin \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-approvedorigin.html)" ] }, "Properties": { - "$ref": "resources/aws-iotanalytics-dataset.json" + "$ref": "resources/aws-connect-approvedorigin.json" } }, "required": [ @@ -41233,9 +41177,9 @@ ], "additionalProperties": false }, - "AWS_Chatbot_SlackChannelConfiguration": { + "AWS_EC2_VPCBlockPublicAccessExclusion": { "type": "object", - "markdownDescription": "Resource schema for AWS::Chatbot::SlackChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCBlockPublicAccessExclusion. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessexclusion.html)", "allOf": [ { "type": "object", @@ -41243,14 +41187,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Chatbot::SlackChannelConfiguration" + "AWS::EC2::VPCBlockPublicAccessExclusion" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Chatbot::SlackChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html)" + "Resource Type definition for AWS::EC2::VPCBlockPublicAccessExclusion. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessexclusion.html)" ] }, "Properties": { - "$ref": "resources/aws-chatbot-slackchannelconfiguration.json" + "$ref": "resources/aws-ec2-vpcblockpublicaccessexclusion.json" } }, "required": [ @@ -41264,9 +41208,9 @@ ], "additionalProperties": false }, - "AWS_AppRunner_VpcConnector": { + "AWS_CloudFront_OriginAccessControl": { "type": "object", - "markdownDescription": "The AWS::AppRunner::VpcConnector resource specifies an App Runner VpcConnector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html)", + "markdownDescription": "Creates a new origin access control in CloudFront. After you create an origin access control, you can add it to an origin in a CloudFront distribution so that CloudFront sends authenticated (signed) requests to the origin.\n This makes it possible to block public access to the origin, allowing viewers (users) to access the origin's content only through CloudFront.\n For more information about using a CloudFront origin access control, see [Restricting access to an origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html)", "allOf": [ { "type": "object", @@ -41274,14 +41218,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppRunner::VpcConnector" + "AWS::CloudFront::OriginAccessControl" ], "markdownEnumDescriptions": [ - "The AWS::AppRunner::VpcConnector resource specifies an App Runner VpcConnector. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html)" + "Creates a new origin access control in CloudFront. After you create an origin access control, you can add it to an origin in a CloudFront distribution so that CloudFront sends authenticated (signed) requests to the origin.\n This makes it possible to block public access to the origin, allowing viewers (users) to access the origin's content only through CloudFront.\n For more information about using a CloudFront origin access control, see [Restricting access to an origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html)" ] }, "Properties": { - "$ref": "resources/aws-apprunner-vpcconnector.json" + "$ref": "resources/aws-cloudfront-originaccesscontrol.json" } }, "required": [ @@ -41295,9 +41239,9 @@ ], "additionalProperties": false }, - "AWS_WAFRegional_Rule": { + "AWS_EKS_FargateProfile": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAFRegional::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html)", + "markdownDescription": "Resource Schema for AWS::EKS::FargateProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html)", "allOf": [ { "type": "object", @@ -41305,14 +41249,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFRegional::Rule" + "AWS::EKS::FargateProfile" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAFRegional::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html)" + "Resource Schema for AWS::EKS::FargateProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-wafregional-rule.json" + "$ref": "resources/aws-eks-fargateprofile.json" } }, "required": [ @@ -41326,9 +41270,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackage_Channel": { + "AWS_GameLift_GameServerGroup": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaPackage::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html)", + "markdownDescription": "The AWS::GameLift::GameServerGroup resource creates an Amazon GameLift (GameLift) GameServerGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html)", "allOf": [ { "type": "object", @@ -41336,14 +41280,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackage::Channel" + "AWS::GameLift::GameServerGroup" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaPackage::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html)" + "The AWS::GameLift::GameServerGroup resource creates an Amazon GameLift (GameLift) GameServerGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackage-channel.json" + "$ref": "resources/aws-gamelift-gameservergroup.json" } }, "required": [ @@ -41357,9 +41301,9 @@ ], "additionalProperties": false }, - "AWS_EKS_Cluster": { + "AWS_IoTTwinMaker_SyncJob": { "type": "object", - "markdownDescription": "An object representing an Amazon EKS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html)", + "markdownDescription": "Resource schema for AWS::IoTTwinMaker::SyncJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-syncjob.html)", "allOf": [ { "type": "object", @@ -41367,14 +41311,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EKS::Cluster" + "AWS::IoTTwinMaker::SyncJob" ], "markdownEnumDescriptions": [ - "An object representing an Amazon EKS cluster. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html)" + "Resource schema for AWS::IoTTwinMaker::SyncJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-syncjob.html)" ] }, "Properties": { - "$ref": "resources/aws-eks-cluster.json" + "$ref": "resources/aws-iottwinmaker-syncjob.json" } }, "required": [ @@ -41388,9 +41332,9 @@ ], "additionalProperties": false }, - "AWS_CloudFront_KeyGroup": { + "AWS_Greengrass_LoggerDefinitionVersion": { "type": "object", - "markdownDescription": "A key group.\n A key group contains a list of public keys that you can use with [CloudFront signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::LoggerDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html)", "allOf": [ { "type": "object", @@ -41398,14 +41342,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFront::KeyGroup" + "AWS::Greengrass::LoggerDefinitionVersion" ], "markdownEnumDescriptions": [ - "A key group.\n A key group contains a list of public keys that you can use with [CloudFront signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html)" + "Resource Type definition for AWS::Greengrass::LoggerDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudfront-keygroup.json" + "$ref": "resources/aws-greengrass-loggerdefinitionversion.json" } }, "required": [ @@ -41419,9 +41363,9 @@ ], "additionalProperties": false }, - "AWS_VpcLattice_ResourceConfiguration": { + "AWS_S3ObjectLambda_AccessPointPolicy": { "type": "object", - "markdownDescription": "VpcLattice ResourceConfiguration CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourceconfiguration.html)", + "markdownDescription": "AWS::S3ObjectLambda::AccessPointPolicy resource is an Amazon S3ObjectLambda policy type that you can use to control permissions for your S3ObjectLambda \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspointpolicy.html)", "allOf": [ { "type": "object", @@ -41429,14 +41373,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VpcLattice::ResourceConfiguration" + "AWS::S3ObjectLambda::AccessPointPolicy" ], "markdownEnumDescriptions": [ - "VpcLattice ResourceConfiguration CFN resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourceconfiguration.html)" + "AWS::S3ObjectLambda::AccessPointPolicy resource is an Amazon S3ObjectLambda policy type that you can use to control permissions for your S3ObjectLambda \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspointpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-resourceconfiguration.json" + "$ref": "resources/aws-s3objectlambda-accesspointpolicy.json" } }, "required": [ @@ -41450,9 +41394,9 @@ ], "additionalProperties": false }, - "AWS_Cognito_IdentityPoolPrincipalTag": { + "AWS_Pinpoint_ADMChannel": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Cognito::IdentityPoolPrincipalTag \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolprincipaltag.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::ADMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-admchannel.html)", "allOf": [ { "type": "object", @@ -41460,14 +41404,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Cognito::IdentityPoolPrincipalTag" + "AWS::Pinpoint::ADMChannel" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Cognito::IdentityPoolPrincipalTag \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolprincipaltag.html)" + "Resource Type definition for AWS::Pinpoint::ADMChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-admchannel.html)" ] }, "Properties": { - "$ref": "resources/aws-cognito-identitypoolprincipaltag.json" + "$ref": "resources/aws-pinpoint-admchannel.json" } }, "required": [ @@ -41481,9 +41425,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_EndpointConfig": { + "AWS_DataZone_EnvironmentBlueprintConfiguration": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::EndpointConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html)", + "markdownDescription": "Definition of AWS::DataZone::EnvironmentBlueprintConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentblueprintconfiguration.html)", "allOf": [ { "type": "object", @@ -41491,14 +41435,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::EndpointConfig" + "AWS::DataZone::EnvironmentBlueprintConfiguration" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::EndpointConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html)" + "Definition of AWS::DataZone::EnvironmentBlueprintConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentblueprintconfiguration.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-endpointconfig.json" + "$ref": "resources/aws-datazone-environmentblueprintconfiguration.json" } }, "required": [ @@ -41512,9 +41456,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackageV2_ChannelPolicy": { + "AWS_Pinpoint_SmsTemplate": { "type": "object", - "markdownDescription": "

Represents a resource-based policy that allows or denies access to a channel.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelpolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::SmsTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smstemplate.html)", "allOf": [ { "type": "object", @@ -41522,14 +41466,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackageV2::ChannelPolicy" + "AWS::Pinpoint::SmsTemplate" ], "markdownEnumDescriptions": [ - "

Represents a resource-based policy that allows or denies access to a channel.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channelpolicy.html)" + "Resource Type definition for AWS::Pinpoint::SmsTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-smstemplate.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackagev2-channelpolicy.json" + "$ref": "resources/aws-pinpoint-smstemplate.json" } }, "required": [ @@ -41543,9 +41487,9 @@ ], "additionalProperties": false }, - "AWS_Lambda_Url": { + "AWS_Omics_ReferenceStore": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Lambda::Url \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html)", + "markdownDescription": "Definition of AWS::Omics::ReferenceStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-referencestore.html)", "allOf": [ { "type": "object", @@ -41553,14 +41497,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Lambda::Url" + "AWS::Omics::ReferenceStore" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Lambda::Url \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html)" + "Definition of AWS::Omics::ReferenceStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-referencestore.html)" ] }, "Properties": { - "$ref": "resources/aws-lambda-url.json" + "$ref": "resources/aws-omics-referencestore.json" } }, "required": [ @@ -41574,9 +41518,9 @@ ], "additionalProperties": false }, - "AWS_B2BI_Capability": { + "AWS_ServiceCatalogAppRegistry_ResourceAssociation": { "type": "object", - "markdownDescription": "Definition of AWS::B2BI::Capability Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-capability.html)", + "markdownDescription": "Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-resourceassociation.html)", "allOf": [ { "type": "object", @@ -41584,14 +41528,14 @@ "Type": { "type": "string", "enum": [ - "AWS::B2BI::Capability" + "AWS::ServiceCatalogAppRegistry::ResourceAssociation" ], "markdownEnumDescriptions": [ - "Definition of AWS::B2BI::Capability Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-capability.html)" + "Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalogappregistry-resourceassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-b2bi-capability.json" + "$ref": "resources/aws-servicecatalogappregistry-resourceassociation.json" } }, "required": [ @@ -41605,9 +41549,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_TypeActivation": { + "AWS_RDS_DBSecurityGroup": { "type": "object", - "markdownDescription": "Enable a resource that has been published in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html)", + "markdownDescription": "Resource Type definition for AWS::RDS::DBSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroup.html)", "allOf": [ { "type": "object", @@ -41615,18 +41559,19 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::TypeActivation" + "AWS::RDS::DBSecurityGroup" ], "markdownEnumDescriptions": [ - "Enable a resource that has been published in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html)" + "Resource Type definition for AWS::RDS::DBSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroup.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-typeactivation.json" + "$ref": "resources/aws-rds-dbsecuritygroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -41635,9 +41580,9 @@ ], "additionalProperties": false }, - "AWS_Redshift_ScheduledAction": { + "AWS_SSM_MaintenanceWindowTask": { "type": "object", - "markdownDescription": "The `AWS::Redshift::ScheduledAction` resource creates an Amazon Redshift Scheduled Action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html)", + "markdownDescription": "Resource Type definition for AWS::SSM::MaintenanceWindowTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html)", "allOf": [ { "type": "object", @@ -41645,14 +41590,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Redshift::ScheduledAction" + "AWS::SSM::MaintenanceWindowTask" ], "markdownEnumDescriptions": [ - "The `AWS::Redshift::ScheduledAction` resource creates an Amazon Redshift Scheduled Action. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html)" + "Resource Type definition for AWS::SSM::MaintenanceWindowTask \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html)" ] }, "Properties": { - "$ref": "resources/aws-redshift-scheduledaction.json" + "$ref": "resources/aws-ssm-maintenancewindowtask.json" } }, "required": [ @@ -41666,9 +41611,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_ModelQualityJobDefinition": { + "AWS_SecurityAgent_Application": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelqualityjobdefinition.html)", + "markdownDescription": "Resource Type definition for AWS::SecurityAgent::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-application.html)", "allOf": [ { "type": "object", @@ -41676,19 +41621,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::ModelQualityJobDefinition" + "AWS::SecurityAgent::Application" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::ModelQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelqualityjobdefinition.html)" + "Resource Type definition for AWS::SecurityAgent::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-application.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-modelqualityjobdefinition.json" + "$ref": "resources/aws-securityagent-application.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -41697,9 +41641,9 @@ ], "additionalProperties": false }, - "AWS_Route53Resolver_ResolverRuleAssociation": { + "AWS_EC2_TransitGateway": { "type": "object", - "markdownDescription": "In the response to an [AssociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html), [DisassociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html), or [ListResolverRuleAssociations](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html) request, provides information about an association between a resolver rule and a VPC. The association determines which DNS queries that originate in the VPC are forwarded to your network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html)", "allOf": [ { "type": "object", @@ -41707,19 +41651,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Resolver::ResolverRuleAssociation" + "AWS::EC2::TransitGateway" ], "markdownEnumDescriptions": [ - "In the response to an [AssociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html), [DisassociateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html), or [ListResolverRuleAssociations](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html) request, provides information about an association between a resolver rule and a VPC. The association determines which DNS queries that originate in the VPC are forwarded to your network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html)" + "Resource Type definition for AWS::EC2::TransitGateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html)" ] }, "Properties": { - "$ref": "resources/aws-route53resolver-resolverruleassociation.json" + "$ref": "resources/aws-ec2-transitgateway.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -41728,9 +41671,9 @@ ], "additionalProperties": false }, - "AWS_WorkspacesInstances_VolumeAssociation": { + "AWS_CloudFront_TrustStore": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WorkspacesInstances::VolumeAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volumeassociation.html)", + "markdownDescription": "A trust store. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-truststore.html)", "allOf": [ { "type": "object", @@ -41738,14 +41681,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WorkspacesInstances::VolumeAssociation" + "AWS::CloudFront::TrustStore" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WorkspacesInstances::VolumeAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesinstances-volumeassociation.html)" + "A trust store. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-truststore.html)" ] }, "Properties": { - "$ref": "resources/aws-workspacesinstances-volumeassociation.json" + "$ref": "resources/aws-cloudfront-truststore.json" } }, "required": [ @@ -41759,9 +41702,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TrafficMirrorTarget": { + "AWS_AppStream_Fleet": { "type": "object", - "markdownDescription": "The description of the Traffic Mirror target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html)", "allOf": [ { "type": "object", @@ -41769,18 +41712,19 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TrafficMirrorTarget" + "AWS::AppStream::Fleet" ], "markdownEnumDescriptions": [ - "The description of the Traffic Mirror target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html)" + "Resource Type definition for AWS::AppStream::Fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-trafficmirrortarget.json" + "$ref": "resources/aws-appstream-fleet.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -41789,9 +41733,9 @@ ], "additionalProperties": false }, - "AWS_Logs_MetricFilter": { + "AWS_Scheduler_ScheduleGroup": { "type": "object", - "markdownDescription": "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html)", + "markdownDescription": "Definition of AWS::Scheduler::ScheduleGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedulegroup.html)", "allOf": [ { "type": "object", @@ -41799,19 +41743,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Logs::MetricFilter" + "AWS::Scheduler::ScheduleGroup" ], "markdownEnumDescriptions": [ - "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html)" + "Definition of AWS::Scheduler::ScheduleGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedulegroup.html)" ] }, "Properties": { - "$ref": "resources/aws-logs-metricfilter.json" + "$ref": "resources/aws-scheduler-schedulegroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -41820,9 +41763,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_AutomatedReasoningPolicy": { + "AWS_Connect_IntegrationAssociation": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::AutomatedReasoningPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicy.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::IntegrationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html)", "allOf": [ { "type": "object", @@ -41830,14 +41773,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::AutomatedReasoningPolicy" + "AWS::Connect::IntegrationAssociation" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::AutomatedReasoningPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicy.html)" + "Resource Type definition for AWS::Connect::IntegrationAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-automatedreasoningpolicy.json" + "$ref": "resources/aws-connect-integrationassociation.json" } }, "required": [ @@ -41851,9 +41794,9 @@ ], "additionalProperties": false }, - "AWS_ApplicationInsights_Application": { + "AWS_SageMaker_Image": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApplicationInsights::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html)", "allOf": [ { "type": "object", @@ -41861,14 +41804,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApplicationInsights::Application" + "AWS::SageMaker::Image" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApplicationInsights::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html)" + "Resource Type definition for AWS::SageMaker::Image \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html)" ] }, "Properties": { - "$ref": "resources/aws-applicationinsights-application.json" + "$ref": "resources/aws-sagemaker-image.json" } }, "required": [ @@ -41882,9 +41825,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Model": { + "AWS_WorkSpacesWeb_SessionLogger": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Model`` resource defines the structure of a request or response payload for an API method. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html)", + "markdownDescription": "Definition of AWS::WorkSpacesWeb::SessionLogger Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-sessionlogger.html)", "allOf": [ { "type": "object", @@ -41892,14 +41835,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Model" + "AWS::WorkSpacesWeb::SessionLogger" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Model`` resource defines the structure of a request or response payload for an API method. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html)" + "Definition of AWS::WorkSpacesWeb::SessionLogger Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-sessionlogger.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-model.json" + "$ref": "resources/aws-workspacesweb-sessionlogger.json" } }, "required": [ @@ -41913,9 +41856,9 @@ ], "additionalProperties": false }, - "AWS_Personalize_Dataset": { + "AWS_ManagedBlockchain_Accessor": { "type": "object", - "markdownDescription": "Resource schema for AWS::Personalize::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html)", + "markdownDescription": "Definition of AWS::ManagedBlockchain::com.amazonaws.taiga.webservice.api#Accessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-accessor.html)", "allOf": [ { "type": "object", @@ -41923,14 +41866,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Personalize::Dataset" + "AWS::ManagedBlockchain::Accessor" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Personalize::Dataset. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html)" + "Definition of AWS::ManagedBlockchain::com.amazonaws.taiga.webservice.api#Accessor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-accessor.html)" ] }, "Properties": { - "$ref": "resources/aws-personalize-dataset.json" + "$ref": "resources/aws-managedblockchain-accessor.json" } }, "required": [ @@ -41944,9 +41887,9 @@ ], "additionalProperties": false }, - "AWS_Personalize_DatasetGroup": { + "AWS_Pinpoint_APNSChannel": { "type": "object", - "markdownDescription": "Resource Schema for AWS::Personalize::DatasetGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-datasetgroup.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnschannel.html)", "allOf": [ { "type": "object", @@ -41954,14 +41897,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Personalize::DatasetGroup" + "AWS::Pinpoint::APNSChannel" ], "markdownEnumDescriptions": [ - "Resource Schema for AWS::Personalize::DatasetGroup. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-datasetgroup.html)" + "Resource Type definition for AWS::Pinpoint::APNSChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnschannel.html)" ] }, "Properties": { - "$ref": "resources/aws-personalize-datasetgroup.json" + "$ref": "resources/aws-pinpoint-apnschannel.json" } }, "required": [ @@ -41975,9 +41918,9 @@ ], "additionalProperties": false }, - "AWS_Macie_CustomDataIdentifier": { + "AWS_KMS_Key": { "type": "object", - "markdownDescription": "Macie CustomDataIdentifier resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html)", + "markdownDescription": "The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.\n If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.\n KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.\n You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.\n You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.\n You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.\n You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.\n You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).\n *Regions* \n KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)", "allOf": [ { "type": "object", @@ -41985,19 +41928,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Macie::CustomDataIdentifier" + "AWS::KMS::Key" ], "markdownEnumDescriptions": [ - "Macie CustomDataIdentifier resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html)" + "The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.\n If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.\n KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.\n You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.\n You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.\n You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.\n You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.\n You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).\n *Regions* \n KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)" ] }, "Properties": { - "$ref": "resources/aws-macie-customdataidentifier.json" + "$ref": "resources/aws-kms-key.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -42006,9 +41948,9 @@ ], "additionalProperties": false }, - "AWS_QLDB_Ledger": { + "AWS_Timestream_Table": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::QLDB::Ledger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html)", + "markdownDescription": "The AWS::Timestream::Table resource creates a Timestream Table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-table.html)", "allOf": [ { "type": "object", @@ -42016,14 +41958,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QLDB::Ledger" + "AWS::Timestream::Table" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::QLDB::Ledger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html)" + "The AWS::Timestream::Table resource creates a Timestream Table. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-table.html)" ] }, "Properties": { - "$ref": "resources/aws-qldb-ledger.json" + "$ref": "resources/aws-timestream-table.json" } }, "required": [ @@ -42037,9 +41979,9 @@ ], "additionalProperties": false }, - "AWS_SES_ConfigurationSet": { + "AWS_SES_ContactList": { "type": "object", - "markdownDescription": "Resource schema for AWS::SES::ConfigurationSet. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html)", + "markdownDescription": "Resource schema for AWS::SES::ContactList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-contactlist.html)", "allOf": [ { "type": "object", @@ -42047,14 +41989,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::ConfigurationSet" + "AWS::SES::ContactList" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::SES::ConfigurationSet. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html)" + "Resource schema for AWS::SES::ContactList. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-contactlist.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-configurationset.json" + "$ref": "resources/aws-ses-contactlist.json" } }, "required": [ @@ -42067,9 +42009,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_GroupProfile": { + "AWS_Kendra_Faq": { "type": "object", - "markdownDescription": "Group profiles represent groups of Amazon DataZone users. Groups can be manually created, or mapped to Active Directory groups of enterprise customers. In Amazon DataZone, groups serve two purposes. First, a group can map to a team of users in the organizational chart, and thus reduce the administrative work of a Amazon DataZone project owner when there are new employees joining or leaving a team. Second, corporate administrators use Active Directory groups to manage and update user statuses and so Amazon DataZone domain administrators can use these group memberships to implement Amazon DataZone domain policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-groupprofile.html)", + "markdownDescription": "A Kendra FAQ resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html)", "allOf": [ { "type": "object", @@ -42077,14 +42019,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::GroupProfile" + "AWS::Kendra::Faq" ], "markdownEnumDescriptions": [ - "Group profiles represent groups of Amazon DataZone users. Groups can be manually created, or mapped to Active Directory groups of enterprise customers. In Amazon DataZone, groups serve two purposes. First, a group can map to a team of users in the organizational chart, and thus reduce the administrative work of a Amazon DataZone project owner when there are new employees joining or leaving a team. Second, corporate administrators use Active Directory groups to manage and update user statuses and so Amazon DataZone domain administrators can use these group memberships to implement Amazon DataZone domain policies. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-groupprofile.html)" + "A Kendra FAQ resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-groupprofile.json" + "$ref": "resources/aws-kendra-faq.json" } }, "required": [ @@ -42098,9 +42040,9 @@ ], "additionalProperties": false }, - "AWS_Macie_AllowList": { + "AWS_MediaConnect_FlowVpcInterface": { "type": "object", - "markdownDescription": "Macie AllowList resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-allowlist.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::FlowVpcInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html)", "allOf": [ { "type": "object", @@ -42108,14 +42050,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Macie::AllowList" + "AWS::MediaConnect::FlowVpcInterface" ], "markdownEnumDescriptions": [ - "Macie AllowList resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-allowlist.html)" + "Resource schema for AWS::MediaConnect::FlowVpcInterface \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html)" ] }, "Properties": { - "$ref": "resources/aws-macie-allowlist.json" + "$ref": "resources/aws-mediaconnect-flowvpcinterface.json" } }, "required": [ @@ -42129,9 +42071,9 @@ ], "additionalProperties": false }, - "AWS_DataZone_EnvironmentProfile": { + "AWS_Signer_SigningProfile": { "type": "object", - "markdownDescription": "AWS Datazone Environment Profile is pre-configured set of resources and blueprints that provide reusable templates for creating environments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentprofile.html)", + "markdownDescription": "A signing profile is a signing template that can be used to carry out a pre-defined signing job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html)", "allOf": [ { "type": "object", @@ -42139,14 +42081,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DataZone::EnvironmentProfile" + "AWS::Signer::SigningProfile" ], "markdownEnumDescriptions": [ - "AWS Datazone Environment Profile is pre-configured set of resources and blueprints that provide reusable templates for creating environments. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentprofile.html)" + "A signing profile is a signing template that can be used to carry out a pre-defined signing job. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html)" ] }, "Properties": { - "$ref": "resources/aws-datazone-environmentprofile.json" + "$ref": "resources/aws-signer-signingprofile.json" } }, "required": [ @@ -42160,9 +42102,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_DataQualityJobDefinition": { + "AWS_EC2_KeyPair": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::DataQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-dataqualityjobdefinition.html)", + "markdownDescription": "Specifies a key pair for use with an EC2long instance as follows:\n + To import an existing key pair, include the ``PublicKeyMaterial`` property.\n + To create a new key pair, omit the ``PublicKeyMaterial`` property.\n \n When you import an existing key pair, you specify the public key material for the key. We assume that you have the private key material for the key. CFNlong does not create or return the private key material when you import a key pair.\n When you create a new key pair, the private key is saved to SYSlong Parameter Store, using a parameter with the following name: ``/ec2/keypair/{key_pair_id}``. For more information about retrieving private key, and the required permissions, see [Create a key pair using](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#create-key-pair-cloudformation) in the *User Guide*.\n When CFN deletes a key pair that was created or imported by a stack, it also deletes the parameter that was used to store the private key material in Parameter Store. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html)", "allOf": [ { "type": "object", @@ -42170,14 +42112,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::DataQualityJobDefinition" + "AWS::EC2::KeyPair" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::DataQualityJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-dataqualityjobdefinition.html)" + "Specifies a key pair for use with an EC2long instance as follows:\n + To import an existing key pair, include the ``PublicKeyMaterial`` property.\n + To create a new key pair, omit the ``PublicKeyMaterial`` property.\n \n When you import an existing key pair, you specify the public key material for the key. We assume that you have the private key material for the key. CFNlong does not create or return the private key material when you import a key pair.\n When you create a new key pair, the private key is saved to SYSlong Parameter Store, using a parameter with the following name: ``/ec2/keypair/{key_pair_id}``. For more information about retrieving private key, and the required permissions, see [Create a key pair using](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#create-key-pair-cloudformation) in the *User Guide*.\n When CFN deletes a key pair that was created or imported by a stack, it also deletes the parameter that was used to store the private key material in Parameter Store. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-dataqualityjobdefinition.json" + "$ref": "resources/aws-ec2-keypair.json" } }, "required": [ @@ -42191,9 +42133,9 @@ ], "additionalProperties": false }, - "AWS_IAM_ServerCertificate": { + "AWS_SageMaker_Space": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IAM::ServerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Space \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-space.html)", "allOf": [ { "type": "object", @@ -42201,18 +42143,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IAM::ServerCertificate" + "AWS::SageMaker::Space" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IAM::ServerCertificate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html)" + "Resource Type definition for AWS::SageMaker::Space \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-space.html)" ] }, "Properties": { - "$ref": "resources/aws-iam-servercertificate.json" + "$ref": "resources/aws-sagemaker-space.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -42221,9 +42164,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_FindingAggregator": { + "AWS_Logs_Transformer": { "type": "object", - "markdownDescription": "The ``AWS::SecurityHub::FindingAggregator`` resource enables cross-Region aggregation. When cross-Region aggregation is enabled, you can aggregate findings, finding updates, insights, control compliance statuses, and security scores from one or more linked Regions to a single aggregation Region. You can then view and manage all of this data from the aggregation Region. For more details about cross-Region aggregation, see [Cross-Region aggregation](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html) in the *User Guide*\n This resource must be created in the Region that you want to designate as your aggregation Region.\n Cross-Region aggregation is also a prerequisite for using [central configuration](https://docs.aws.amazon.com/securityhub/latest/userguide/central-configuration-intro.html) in ASH. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-findingaggregator.html)", + "markdownDescription": "Specifies a transformer on the log group to transform logs into consistent structured and information rich format. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-transformer.html)", "allOf": [ { "type": "object", @@ -42231,14 +42174,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::FindingAggregator" + "AWS::Logs::Transformer" ], "markdownEnumDescriptions": [ - "The ``AWS::SecurityHub::FindingAggregator`` resource enables cross-Region aggregation. When cross-Region aggregation is enabled, you can aggregate findings, finding updates, insights, control compliance statuses, and security scores from one or more linked Regions to a single aggregation Region. You can then view and manage all of this data from the aggregation Region. For more details about cross-Region aggregation, see [Cross-Region aggregation](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html) in the *User Guide*\n This resource must be created in the Region that you want to designate as your aggregation Region.\n Cross-Region aggregation is also a prerequisite for using [central configuration](https://docs.aws.amazon.com/securityhub/latest/userguide/central-configuration-intro.html) in ASH. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-findingaggregator.html)" + "Specifies a transformer on the log group to transform logs into consistent structured and information rich format. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-transformer.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-findingaggregator.json" + "$ref": "resources/aws-logs-transformer.json" } }, "required": [ @@ -42252,9 +42195,9 @@ ], "additionalProperties": false }, - "AWS_B2BI_Profile": { + "AWS_Pinpoint_App": { "type": "object", - "markdownDescription": "Definition of AWS::B2BI::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-profile.html)", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-app.html)", "allOf": [ { "type": "object", @@ -42262,14 +42205,14 @@ "Type": { "type": "string", "enum": [ - "AWS::B2BI::Profile" + "AWS::Pinpoint::App" ], "markdownEnumDescriptions": [ - "Definition of AWS::B2BI::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-profile.html)" + "Resource Type definition for AWS::Pinpoint::App \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-app.html)" ] }, "Properties": { - "$ref": "resources/aws-b2bi-profile.json" + "$ref": "resources/aws-pinpoint-app.json" } }, "required": [ @@ -42283,9 +42226,9 @@ ], "additionalProperties": false }, - "AWS_BedrockAgentCore_BrowserCustom": { + "AWS_CloudFront_MonitoringSubscription": { "type": "object", - "markdownDescription": "Resource definition for AWS::BedrockAgentCore::BrowserCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browsercustom.html)", + "markdownDescription": "A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-monitoringsubscription.html)", "allOf": [ { "type": "object", @@ -42293,14 +42236,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BedrockAgentCore::BrowserCustom" + "AWS::CloudFront::MonitoringSubscription" ], "markdownEnumDescriptions": [ - "Resource definition for AWS::BedrockAgentCore::BrowserCustom \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browsercustom.html)" + "A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-monitoringsubscription.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrockagentcore-browsercustom.json" + "$ref": "resources/aws-cloudfront-monitoringsubscription.json" } }, "required": [ @@ -42314,9 +42257,9 @@ ], "additionalProperties": false }, - "AWS_IoT_TopicRuleDestination": { + "AWS_S3Vectors_VectorBucket": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IoT::TopicRuleDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html)", + "markdownDescription": "Resource Type definition for AWS::S3Vectors::VectorBucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3vectors-vectorbucket.html)", "allOf": [ { "type": "object", @@ -42324,14 +42267,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoT::TopicRuleDestination" + "AWS::S3Vectors::VectorBucket" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IoT::TopicRuleDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html)" + "Resource Type definition for AWS::S3Vectors::VectorBucket \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3vectors-vectorbucket.html)" ] }, "Properties": { - "$ref": "resources/aws-iot-topicruledestination.json" + "$ref": "resources/aws-s3vectors-vectorbucket.json" } }, "required": [ @@ -42344,9 +42287,9 @@ ], "additionalProperties": false }, - "AWS_DSQL_Cluster": { + "AWS_SES_EmailIdentity": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DSQL::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html)", + "markdownDescription": "Resource Type definition for AWS::SES::EmailIdentity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-emailidentity.html)", "allOf": [ { "type": "object", @@ -42354,18 +42297,19 @@ "Type": { "type": "string", "enum": [ - "AWS::DSQL::Cluster" + "AWS::SES::EmailIdentity" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DSQL::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html)" + "Resource Type definition for AWS::SES::EmailIdentity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-emailidentity.html)" ] }, "Properties": { - "$ref": "resources/aws-dsql-cluster.json" + "$ref": "resources/aws-ses-emailidentity.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -42374,9 +42318,9 @@ ], "additionalProperties": false }, - "AWS_Notifications_NotificationHub": { + "AWS_Route53_HostedZone": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Notifications::NotificationHub \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationhub.html)", + "markdownDescription": "Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs). \n You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.\n For more information about charges for hosted zones, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/).\n Note the following:\n + You can't create a hosted zone for a top-level domain (TLD) such as .com.\n + If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see [Migrating DNS Service for an Existing Domain to Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) in the *Amazon Route 53 Developer Guide*. \n \n When you submit a ``CreateHostedZone`` request, the initial status of the hosted zone is ``PENDING``. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to ``INSYNC``.\n The ``CreateHostedZone`` request requires the caller to have an ``ec2:DescribeVpcs`` permission.\n When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of AWS-Regions. Each AWS-account is scoped to one partition.\n The following are the supported partitions:\n + ``aws`` - AWS-Regions\n + ``aws-cn`` - China Regions\n + ``aws-us-gov`` - govcloud-us-region\n \n For more information, see [Access Management](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html)", "allOf": [ { "type": "object", @@ -42384,45 +42328,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Notifications::NotificationHub" + "AWS::Route53::HostedZone" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Notifications::NotificationHub \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-notificationhub.html)" - ] - }, - "Properties": { - "$ref": "resources/aws-notifications-notificationhub.json" - } - }, - "required": [ - "Type", - "Properties" - ] - }, - { - "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" - } - ], - "additionalProperties": false - }, - "AWS_VpcLattice_ServiceNetwork": { - "type": "object", - "markdownDescription": "A service network is a logical boundary for a collection of services. You can associate services and VPCs with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetwork.html)", - "allOf": [ - { - "type": "object", - "properties": { - "Type": { - "type": "string", - "enum": [ - "AWS::VpcLattice::ServiceNetwork" - ], - "markdownEnumDescriptions": [ - "A service network is a logical boundary for a collection of services. You can associate services and VPCs with a service network. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-servicenetwork.html)" + "Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs). \n You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.\n For more information about charges for hosted zones, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/).\n Note the following:\n + You can't create a hosted zone for a top-level domain (TLD) such as .com.\n + If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see [Migrating DNS Service for an Existing Domain to Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) in the *Amazon Route 53 Developer Guide*. \n \n When you submit a ``CreateHostedZone`` request, the initial status of the hosted zone is ``PENDING``. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to ``INSYNC``.\n The ``CreateHostedZone`` request requires the caller to have an ``ec2:DescribeVpcs`` permission.\n When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of AWS-Regions. Each AWS-account is scoped to one partition.\n The following are the supported partitions:\n + ``aws`` - AWS-Regions\n + ``aws-cn`` - China Regions\n + ``aws-us-gov`` - govcloud-us-region\n \n For more information, see [Access Management](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html)" ] }, "Properties": { - "$ref": "resources/aws-vpclattice-servicenetwork.json" + "$ref": "resources/aws-route53-hostedzone.json" } }, "required": [ @@ -42435,9 +42348,9 @@ ], "additionalProperties": false }, - "AWS_SecurityHub_Insight": { + "AWS_Route53RecoveryControl_Cluster": { "type": "object", - "markdownDescription": "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html)", + "markdownDescription": "AWS Route53 Recovery Control Cluster resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-cluster.html)", "allOf": [ { "type": "object", @@ -42445,14 +42358,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityHub::Insight" + "AWS::Route53RecoveryControl::Cluster" ], "markdownEnumDescriptions": [ - "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html)" + "AWS Route53 Recovery Control Cluster resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-securityhub-insight.json" + "$ref": "resources/aws-route53recoverycontrol-cluster.json" } }, "required": [ @@ -42466,9 +42379,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_PushTemplate": { + "AWS_CE_AnomalyMonitor": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::PushTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html)", + "markdownDescription": "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. You can use Cost Anomaly Detection by creating monitor. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html)", "allOf": [ { "type": "object", @@ -42476,14 +42389,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::PushTemplate" + "AWS::CE::AnomalyMonitor" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::PushTemplate \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html)" + "AWS Cost Anomaly Detection leverages advanced Machine Learning technologies to identify anomalous spend and root causes, so you can quickly take action. You can use Cost Anomaly Detection by creating monitor. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-pushtemplate.json" + "$ref": "resources/aws-ce-anomalymonitor.json" } }, "required": [ @@ -42497,9 +42410,9 @@ ], "additionalProperties": false }, - "AWS_MediaConnect_Gateway": { + "AWS_SageMaker_ModelPackage": { "type": "object", - "markdownDescription": "Resource schema for AWS::MediaConnect::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-gateway.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelPackage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackage.html)", "allOf": [ { "type": "object", @@ -42507,19 +42420,18 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaConnect::Gateway" + "AWS::SageMaker::ModelPackage" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::MediaConnect::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-gateway.html)" + "Resource Type definition for AWS::SageMaker::ModelPackage \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelpackage.html)" ] }, "Properties": { - "$ref": "resources/aws-mediaconnect-gateway.json" + "$ref": "resources/aws-sagemaker-modelpackage.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -42528,9 +42440,9 @@ ], "additionalProperties": false }, - "AWS_KinesisVideo_Stream": { + "AWS_CloudFormation_GuardHook": { "type": "object", - "markdownDescription": "Resource Type Definition for AWS::KinesisVideo::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-stream.html)", + "markdownDescription": "This is a CloudFormation resource for activating the first-party AWS::Hooks::GuardHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html)", "allOf": [ { "type": "object", @@ -42538,18 +42450,19 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisVideo::Stream" + "AWS::CloudFormation::GuardHook" ], "markdownEnumDescriptions": [ - "Resource Type Definition for AWS::KinesisVideo::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisvideo-stream.html)" + "This is a CloudFormation resource for activating the first-party AWS::Hooks::GuardHook. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-guardhook.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisvideo-stream.json" + "$ref": "resources/aws-cloudformation-guardhook.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -42558,9 +42471,9 @@ ], "additionalProperties": false }, - "AWS_CloudFormation_CustomResource": { + "AWS_DirectConnect_Connection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudFormation::CustomResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html)", + "markdownDescription": "Resource Type definition for AWS::DirectConnect::Connection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-connection.html)", "allOf": [ { "type": "object", @@ -42568,14 +42481,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudFormation::CustomResource" + "AWS::DirectConnect::Connection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudFormation::CustomResource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html)" + "Resource Type definition for AWS::DirectConnect::Connection \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directconnect-connection.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudformation-customresource.json" + "$ref": "resources/aws-directconnect-connection.json" } }, "required": [ @@ -42589,9 +42502,9 @@ ], "additionalProperties": false }, - "AWS_Chatbot_MicrosoftTeamsChannelConfiguration": { + "AWS_DSQL_Cluster": { "type": "object", - "markdownDescription": "Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::DSQL::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html)", "allOf": [ { "type": "object", @@ -42599,19 +42512,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" + "AWS::DSQL::Cluster" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html)" + "Resource Type definition for AWS::DSQL::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-chatbot-microsoftteamschannelconfiguration.json" + "$ref": "resources/aws-dsql-cluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -42620,9 +42532,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_GatewayResponse": { + "AWS_ApplicationInsights_Application": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::GatewayResponse`` resource creates a gateway response for your API. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html)", + "markdownDescription": "Resource Type definition for AWS::ApplicationInsights::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html)", "allOf": [ { "type": "object", @@ -42630,14 +42542,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::GatewayResponse" + "AWS::ApplicationInsights::Application" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::GatewayResponse`` resource creates a gateway response for your API. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html)" + "Resource Type definition for AWS::ApplicationInsights::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-gatewayresponse.json" + "$ref": "resources/aws-applicationinsights-application.json" } }, "required": [ @@ -42651,9 +42563,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_KnowledgeBase": { + "AWS_MediaLive_Cluster": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html)", + "markdownDescription": "Definition of AWS::MediaLive::Cluster Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cluster.html)", "allOf": [ { "type": "object", @@ -42661,19 +42573,18 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::KnowledgeBase" + "AWS::MediaLive::Cluster" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::KnowledgeBase Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html)" + "Definition of AWS::MediaLive::Cluster Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cluster.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-knowledgebase.json" + "$ref": "resources/aws-medialive-cluster.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -42682,9 +42593,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Project": { + "AWS_Logs_SubscriptionFilter": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-project.html)", + "markdownDescription": "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html)", "allOf": [ { "type": "object", @@ -42692,14 +42603,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Project" + "AWS::Logs::SubscriptionFilter" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-project.html)" + "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-project.json" + "$ref": "resources/aws-logs-subscriptionfilter.json" } }, "required": [ @@ -42713,9 +42624,9 @@ ], "additionalProperties": false }, - "AWS_AppConfig_Environment": { + "AWS_DataZone_PolicyGrant": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AppConfig::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html)", + "markdownDescription": "Policy Grant in AWS DataZone is an explicit authorization assignment that allows a specific principal (user, group, or project) to perform particular actions (such as creating glossary terms, managing projects, or accessing resources) on governed resources within a certain scope (like a Domain Unit or Project). Policy Grants are essentially the mechanism by which DataZone enforces fine-grained, role-based access control beyond what is possible through AWS IAM alone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-policygrant.html)", "allOf": [ { "type": "object", @@ -42723,14 +42634,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppConfig::Environment" + "AWS::DataZone::PolicyGrant" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AppConfig::Environment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html)" + "Policy Grant in AWS DataZone is an explicit authorization assignment that allows a specific principal (user, group, or project) to perform particular actions (such as creating glossary terms, managing projects, or accessing resources) on governed resources within a certain scope (like a Domain Unit or Project). Policy Grants are essentially the mechanism by which DataZone enforces fine-grained, role-based access control beyond what is possible through AWS IAM alone. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-policygrant.html)" ] }, "Properties": { - "$ref": "resources/aws-appconfig-environment.json" + "$ref": "resources/aws-datazone-policygrant.json" } }, "required": [ @@ -42744,9 +42655,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_VPCConnection": { + "AWS_Logs_Destination": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::VPCConnection Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-vpcconnection.html)", + "markdownDescription": "The AWS::Logs::Destination resource specifies a CloudWatch Logs destination. A destination encapsulates a physical resource (such as an Amazon Kinesis data stream) and enables you to subscribe that resource to a stream of log events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html)", "allOf": [ { "type": "object", @@ -42754,18 +42665,19 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::VPCConnection" + "AWS::Logs::Destination" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::VPCConnection Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-vpcconnection.html)" + "The AWS::Logs::Destination resource specifies a CloudWatch Logs destination. A destination encapsulates a physical resource (such as an Amazon Kinesis data stream) and enables you to subscribe that resource to a stream of log events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-vpcconnection.json" + "$ref": "resources/aws-logs-destination.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -42774,9 +42686,9 @@ ], "additionalProperties": false }, - "AWS_DocDB_EventSubscription": { + "AWS_CodeStar_GitHubRepository": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DocDB::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html)", + "markdownDescription": "Resource Type definition for AWS::CodeStar::GitHubRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html)", "allOf": [ { "type": "object", @@ -42784,14 +42696,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DocDB::EventSubscription" + "AWS::CodeStar::GitHubRepository" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DocDB::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html)" + "Resource Type definition for AWS::CodeStar::GitHubRepository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html)" ] }, "Properties": { - "$ref": "resources/aws-docdb-eventsubscription.json" + "$ref": "resources/aws-codestar-githubrepository.json" } }, "required": [ @@ -42805,9 +42717,9 @@ ], "additionalProperties": false }, - "AWS_Backup_LogicallyAirGappedBackupVault": { + "AWS_Lightsail_StaticIp": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Backup::LogicallyAirGappedBackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-logicallyairgappedbackupvault.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::StaticIp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html)", "allOf": [ { "type": "object", @@ -42815,14 +42727,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Backup::LogicallyAirGappedBackupVault" + "AWS::Lightsail::StaticIp" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Backup::LogicallyAirGappedBackupVault \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-logicallyairgappedbackupvault.html)" + "Resource Type definition for AWS::Lightsail::StaticIp \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html)" ] }, "Properties": { - "$ref": "resources/aws-backup-logicallyairgappedbackupvault.json" + "$ref": "resources/aws-lightsail-staticip.json" } }, "required": [ @@ -42836,9 +42748,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_LaunchTemplateConstraint": { + "AWS_EC2_TransitGatewayVpcAttachment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::LaunchTemplateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html)", "allOf": [ { "type": "object", @@ -42846,14 +42758,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::LaunchTemplateConstraint" + "AWS::EC2::TransitGatewayVpcAttachment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::LaunchTemplateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html)" + "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-launchtemplateconstraint.json" + "$ref": "resources/aws-ec2-transitgatewayvpcattachment.json" } }, "required": [ @@ -42867,9 +42779,9 @@ ], "additionalProperties": false }, - "AWS_ServiceDiscovery_Instance": { + "AWS_S3_StorageLens": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceDiscovery::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)", + "markdownDescription": "The AWS::S3::StorageLens resource is an Amazon S3 resource type that you can use to create Storage Lens configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html)", "allOf": [ { "type": "object", @@ -42877,14 +42789,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceDiscovery::Instance" + "AWS::S3::StorageLens" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceDiscovery::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)" + "The AWS::S3::StorageLens resource is an Amazon S3 resource type that you can use to create Storage Lens configurations. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html)" ] }, "Properties": { - "$ref": "resources/aws-servicediscovery-instance.json" + "$ref": "resources/aws-s3-storagelens.json" } }, "required": [ @@ -42898,9 +42810,9 @@ ], "additionalProperties": false }, - "AWS_OpenSearchServerless_Index": { + "AWS_MemoryDB_ACL": { "type": "object", - "markdownDescription": "An OpenSearch Serverless index resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-index.html)", + "markdownDescription": "Resource Type definition for AWS::MemoryDB::ACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html)", "allOf": [ { "type": "object", @@ -42908,14 +42820,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpenSearchServerless::Index" + "AWS::MemoryDB::ACL" ], "markdownEnumDescriptions": [ - "An OpenSearch Serverless index resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-index.html)" + "Resource Type definition for AWS::MemoryDB::ACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html)" ] }, "Properties": { - "$ref": "resources/aws-opensearchserverless-index.json" + "$ref": "resources/aws-memorydb-acl.json" } }, "required": [ @@ -42929,9 +42841,9 @@ ], "additionalProperties": false }, - "AWS_VerifiedPermissions_Policy": { + "AWS_RDS_DBShardGroup": { "type": "object", - "markdownDescription": "Definition of AWS::VerifiedPermissions::Policy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policy.html)", + "markdownDescription": "Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.\n Valid for: Aurora DB clusters only \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbshardgroup.html)", "allOf": [ { "type": "object", @@ -42939,14 +42851,14 @@ "Type": { "type": "string", "enum": [ - "AWS::VerifiedPermissions::Policy" + "AWS::RDS::DBShardGroup" ], "markdownEnumDescriptions": [ - "Definition of AWS::VerifiedPermissions::Policy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policy.html)" + "Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.\n Valid for: Aurora DB clusters only \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbshardgroup.html)" ] }, "Properties": { - "$ref": "resources/aws-verifiedpermissions-policy.json" + "$ref": "resources/aws-rds-dbshardgroup.json" } }, "required": [ @@ -42960,9 +42872,9 @@ ], "additionalProperties": false }, - "AWS_EC2_VPCEndpoint": { + "AWS_ApiGateway_ClientCertificate": { "type": "object", - "markdownDescription": "Specifies a VPC endpoint. A VPC endpoint provides a private connection between your VPC and an endpoint service. You can use an endpoint service provided by AWS, an MKT Partner, or another AWS accounts in your organization. For more information, see the [User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/).\n An endpoint of type ``Interface`` establishes connections between the subnets in your VPC and an AWS-service, your own service, or a service hosted by another AWS-account. With an interface VPC endpoint, you specify the subnets in which to create the endpoint and the security groups to associate with the endpoint network interfaces.\n An endpoint of type ``gateway`` serves as a target for a route in your route table for traffic destined for S3 or DDB. You can specify an endpoint policy for the endpoint, which controls access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. For more information about connectivity to S3, see [Why can't I connect to an S3 bucket using a gateway VPC endpoint?](https://docs.aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint)\n An endpoint of type ``GatewayLoadBalancer`` provides private connectivity between your VPC and virtual appliances from a service provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html)", + "markdownDescription": "The ``AWS::ApiGateway::ClientCertificate`` resource creates a client certificate that API Gateway uses to configure client-side SSL authentication for sending requests to the integration endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html)", "allOf": [ { "type": "object", @@ -42970,19 +42882,18 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::VPCEndpoint" + "AWS::ApiGateway::ClientCertificate" ], "markdownEnumDescriptions": [ - "Specifies a VPC endpoint. A VPC endpoint provides a private connection between your VPC and an endpoint service. You can use an endpoint service provided by AWS, an MKT Partner, or another AWS accounts in your organization. For more information, see the [User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/).\n An endpoint of type ``Interface`` establishes connections between the subnets in your VPC and an AWS-service, your own service, or a service hosted by another AWS-account. With an interface VPC endpoint, you specify the subnets in which to create the endpoint and the security groups to associate with the endpoint network interfaces.\n An endpoint of type ``gateway`` serves as a target for a route in your route table for traffic destined for S3 or DDB. You can specify an endpoint policy for the endpoint, which controls access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. For more information about connectivity to S3, see [Why can't I connect to an S3 bucket using a gateway VPC endpoint?](https://docs.aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint)\n An endpoint of type ``GatewayLoadBalancer`` provides private connectivity between your VPC and virtual appliances from a service provider. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html)" + "The ``AWS::ApiGateway::ClientCertificate`` resource creates a client certificate that API Gateway uses to configure client-side SSL authentication for sending requests to the integration endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-vpcendpoint.json" + "$ref": "resources/aws-apigateway-clientcertificate.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -42991,9 +42902,9 @@ ], "additionalProperties": false }, - "AWS_SES_ReceiptRuleSet": { + "AWS_CodeStarConnections_Connection": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SES::ReceiptRuleSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html)", + "markdownDescription": "Schema for AWS::CodeStarConnections::Connection resource which can be used to connect external source providers with AWS CodePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)", "allOf": [ { "type": "object", @@ -43001,18 +42912,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SES::ReceiptRuleSet" + "AWS::CodeStarConnections::Connection" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SES::ReceiptRuleSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html)" + "Schema for AWS::CodeStarConnections::Connection resource which can be used to connect external source providers with AWS CodePipeline \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)" ] }, "Properties": { - "$ref": "resources/aws-ses-receiptruleset.json" + "$ref": "resources/aws-codestarconnections-connection.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -43021,9 +42933,9 @@ ], "additionalProperties": false }, - "AWS_LakeFormation_Permissions": { + "AWS_AutoScalingPlans_ScalingPlan": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::LakeFormation::Permissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html)", + "markdownDescription": "Resource Type definition for AWS::AutoScalingPlans::ScalingPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html)", "allOf": [ { "type": "object", @@ -43031,14 +42943,14 @@ "Type": { "type": "string", "enum": [ - "AWS::LakeFormation::Permissions" + "AWS::AutoScalingPlans::ScalingPlan" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::LakeFormation::Permissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html)" + "Resource Type definition for AWS::AutoScalingPlans::ScalingPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html)" ] }, "Properties": { - "$ref": "resources/aws-lakeformation-permissions.json" + "$ref": "resources/aws-autoscalingplans-scalingplan.json" } }, "required": [ @@ -43052,9 +42964,9 @@ ], "additionalProperties": false }, - "AWS_ResourceGroups_Group": { + "AWS_AppStream_Entitlement": { "type": "object", - "markdownDescription": "Schema for ResourceGroups::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html)", + "markdownDescription": "Resource Type definition for AWS::AppStream::Entitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-entitlement.html)", "allOf": [ { "type": "object", @@ -43062,14 +42974,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ResourceGroups::Group" + "AWS::AppStream::Entitlement" ], "markdownEnumDescriptions": [ - "Schema for ResourceGroups::Group \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html)" + "Resource Type definition for AWS::AppStream::Entitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-entitlement.html)" ] }, "Properties": { - "$ref": "resources/aws-resourcegroups-group.json" + "$ref": "resources/aws-appstream-entitlement.json" } }, "required": [ @@ -43083,9 +42995,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Endpoint": { + "AWS_NetworkManager_GlobalNetwork": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html)", + "markdownDescription": "The AWS::NetworkManager::GlobalNetwork type specifies a global network of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html)", "allOf": [ { "type": "object", @@ -43093,19 +43005,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Endpoint" + "AWS::NetworkManager::GlobalNetwork" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Endpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html)" + "The AWS::NetworkManager::GlobalNetwork type specifies a global network of the user's account \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-endpoint.json" + "$ref": "resources/aws-networkmanager-globalnetwork.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43114,9 +43025,9 @@ ], "additionalProperties": false }, - "AWS_ObservabilityAdmin_TelemetryRule": { + "AWS_QuickSight_Folder": { "type": "object", - "markdownDescription": "The AWS::ObservabilityAdmin::TelemetryRule resource defines a CloudWatch Observability Admin Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetryrule.html)", + "markdownDescription": "Definition of the AWS::QuickSight::Folder Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-folder.html)", "allOf": [ { "type": "object", @@ -43124,19 +43035,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ObservabilityAdmin::TelemetryRule" + "AWS::QuickSight::Folder" ], "markdownEnumDescriptions": [ - "The AWS::ObservabilityAdmin::TelemetryRule resource defines a CloudWatch Observability Admin Telemetry Rule. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-telemetryrule.html)" + "Definition of the AWS::QuickSight::Folder Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-folder.html)" ] }, "Properties": { - "$ref": "resources/aws-observabilityadmin-telemetryrule.json" + "$ref": "resources/aws-quicksight-folder.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43145,9 +43055,9 @@ ], "additionalProperties": false }, - "AWS_AutoScalingPlans_ScalingPlan": { + "AWS_SES_VdmAttributes": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::AutoScalingPlans::ScalingPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html)", + "markdownDescription": "Resource Type definition for AWS::SES::VdmAttributes \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-vdmattributes.html)", "allOf": [ { "type": "object", @@ -43155,19 +43065,18 @@ "Type": { "type": "string", "enum": [ - "AWS::AutoScalingPlans::ScalingPlan" + "AWS::SES::VdmAttributes" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::AutoScalingPlans::ScalingPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html)" + "Resource Type definition for AWS::SES::VdmAttributes \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-vdmattributes.html)" ] }, "Properties": { - "$ref": "resources/aws-autoscalingplans-scalingplan.json" + "$ref": "resources/aws-ses-vdmattributes.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43176,9 +43085,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_PortfolioShare": { + "AWS_EMRContainers_Endpoint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::PortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html)", + "markdownDescription": "Resource Schema of AWS::EMRContainers::Endpoint Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html)", "allOf": [ { "type": "object", @@ -43186,14 +43095,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::PortfolioShare" + "AWS::EMRContainers::Endpoint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::PortfolioShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html)" + "Resource Schema of AWS::EMRContainers::Endpoint Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-portfolioshare.json" + "$ref": "resources/aws-emrcontainers-endpoint.json" } }, "required": [ @@ -43207,9 +43116,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBSecurityGroup": { + "AWS_ECR_Repository": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::RDS::DBSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroup.html)", + "markdownDescription": "The ``AWS::ECR::Repository`` resource specifies an Amazon Elastic Container Registry (Amazon ECR) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR private repositories](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) in the *Amazon ECR User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html)", "allOf": [ { "type": "object", @@ -43217,19 +43126,18 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBSecurityGroup" + "AWS::ECR::Repository" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::RDS::DBSecurityGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroup.html)" + "The ``AWS::ECR::Repository`` resource specifies an Amazon Elastic Container Registry (Amazon ECR) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR private repositories](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) in the *Amazon ECR User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbsecuritygroup.json" + "$ref": "resources/aws-ecr-repository.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43238,9 +43146,9 @@ ], "additionalProperties": false }, - "AWS_ResilienceHub_ResiliencyPolicy": { + "AWS_IoT_ResourceSpecificLogging": { "type": "object", - "markdownDescription": "Resource Type Definition for Resiliency Policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-resiliencypolicy.html)", + "markdownDescription": "Resource-specific logging allows you to specify a logging level for a specific thing group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html)", "allOf": [ { "type": "object", @@ -43248,14 +43156,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ResilienceHub::ResiliencyPolicy" + "AWS::IoT::ResourceSpecificLogging" ], "markdownEnumDescriptions": [ - "Resource Type Definition for Resiliency Policy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resiliencehub-resiliencypolicy.html)" + "Resource-specific logging allows you to specify a logging level for a specific thing group. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html)" ] }, "Properties": { - "$ref": "resources/aws-resiliencehub-resiliencypolicy.json" + "$ref": "resources/aws-iot-resourcespecificlogging.json" } }, "required": [ @@ -43269,9 +43177,9 @@ ], "additionalProperties": false }, - "AWS_ElasticBeanstalk_Application": { + "AWS_EC2_CapacityReservationFleet": { "type": "object", - "markdownDescription": "The AWS::ElasticBeanstalk::Application resource specifies an Elastic Beanstalk application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html)", + "markdownDescription": "Resource Type definition for AWS::EC2::CapacityReservationFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html)", "allOf": [ { "type": "object", @@ -43279,14 +43187,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ElasticBeanstalk::Application" + "AWS::EC2::CapacityReservationFleet" ], "markdownEnumDescriptions": [ - "The AWS::ElasticBeanstalk::Application resource specifies an Elastic Beanstalk application. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html)" + "Resource Type definition for AWS::EC2::CapacityReservationFleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html)" ] }, "Properties": { - "$ref": "resources/aws-elasticbeanstalk-application.json" + "$ref": "resources/aws-ec2-capacityreservationfleet.json" } }, "required": [ @@ -43299,9 +43207,9 @@ ], "additionalProperties": false }, - "AWS_SNS_TopicInlinePolicy": { + "AWS_BillingConductor_PricingPlan": { "type": "object", - "markdownDescription": "Schema for AWS::SNS::TopicInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html)", + "markdownDescription": "Pricing Plan enables you to customize your billing details consistent with the usage that accrues in each of your billing groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html)", "allOf": [ { "type": "object", @@ -43309,14 +43217,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SNS::TopicInlinePolicy" + "AWS::BillingConductor::PricingPlan" ], "markdownEnumDescriptions": [ - "Schema for AWS::SNS::TopicInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html)" + "Pricing Plan enables you to customize your billing details consistent with the usage that accrues in each of your billing groups. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html)" ] }, "Properties": { - "$ref": "resources/aws-sns-topicinlinepolicy.json" + "$ref": "resources/aws-billingconductor-pricingplan.json" } }, "required": [ @@ -43330,9 +43238,9 @@ ], "additionalProperties": false }, - "AWS_WAFv2_WebACL": { + "AWS_APS_Workspace": { "type": "object", - "markdownDescription": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html)", + "markdownDescription": "Resource Type definition for AWS::APS::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html)", "allOf": [ { "type": "object", @@ -43340,19 +43248,18 @@ "Type": { "type": "string", "enum": [ - "AWS::WAFv2::WebACL" + "AWS::APS::Workspace" ], "markdownEnumDescriptions": [ - "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html)" + "Resource Type definition for AWS::APS::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html)" ] }, "Properties": { - "$ref": "resources/aws-wafv2-webacl.json" + "$ref": "resources/aws-aps-workspace.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43361,9 +43268,9 @@ ], "additionalProperties": false }, - "AWS_FIS_TargetAccountConfiguration": { + "AWS_Logs_MetricFilter": { "type": "object", - "markdownDescription": "Resource schema for AWS::FIS::TargetAccountConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-targetaccountconfiguration.html)", + "markdownDescription": "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html)", "allOf": [ { "type": "object", @@ -43371,14 +43278,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FIS::TargetAccountConfiguration" + "AWS::Logs::MetricFilter" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::FIS::TargetAccountConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-targetaccountconfiguration.html)" + "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html)" ] }, "Properties": { - "$ref": "resources/aws-fis-targetaccountconfiguration.json" + "$ref": "resources/aws-logs-metricfilter.json" } }, "required": [ @@ -43392,9 +43299,9 @@ ], "additionalProperties": false }, - "AWS_ApiGatewayV2_RoutingRule": { + "AWS_ApiGatewayV2_Api": { "type": "object", - "markdownDescription": "Schema for AWS::ApiGatewayV2::RoutingRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routingrule.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::Api`` resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html)", "allOf": [ { "type": "object", @@ -43402,19 +43309,18 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGatewayV2::RoutingRule" + "AWS::ApiGatewayV2::Api" ], "markdownEnumDescriptions": [ - "Schema for AWS::ApiGatewayV2::RoutingRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routingrule.html)" + "The ``AWS::ApiGatewayV2::Api`` resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.* \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html)" ] }, "Properties": { - "$ref": "resources/aws-apigatewayv2-routingrule.json" + "$ref": "resources/aws-apigatewayv2-api.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43423,9 +43329,9 @@ ], "additionalProperties": false }, - "AWS_BedrockAgentCore_Runtime": { + "AWS_WAFRegional_WebACL": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::Runtime \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtime.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html)", "allOf": [ { "type": "object", @@ -43433,14 +43339,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BedrockAgentCore::Runtime" + "AWS::WAFRegional::WebACL" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::BedrockAgentCore::Runtime \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtime.html)" + "Resource Type definition for AWS::WAFRegional::WebACL \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrockagentcore-runtime.json" + "$ref": "resources/aws-wafregional-webacl.json" } }, "required": [ @@ -43454,9 +43360,9 @@ ], "additionalProperties": false }, - "AWS_Omics_VariantStore": { + "AWS_Connect_Queue": { "type": "object", - "markdownDescription": "Definition of AWS::Omics::VariantStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-variantstore.html)", + "markdownDescription": "Resource Type definition for AWS::Connect::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html)", "allOf": [ { "type": "object", @@ -43464,14 +43370,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Omics::VariantStore" + "AWS::Connect::Queue" ], "markdownEnumDescriptions": [ - "Definition of AWS::Omics::VariantStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-variantstore.html)" + "Resource Type definition for AWS::Connect::Queue \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html)" ] }, "Properties": { - "$ref": "resources/aws-omics-variantstore.json" + "$ref": "resources/aws-connect-queue.json" } }, "required": [ @@ -43485,9 +43391,9 @@ ], "additionalProperties": false }, - "AWS_CodeCommit_Repository": { + "AWS_Athena_DataCatalog": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CodeCommit::Repository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html)", + "markdownDescription": "Resource schema for AWS::Athena::DataCatalog \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html)", "allOf": [ { "type": "object", @@ -43495,14 +43401,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeCommit::Repository" + "AWS::Athena::DataCatalog" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CodeCommit::Repository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html)" + "Resource schema for AWS::Athena::DataCatalog \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html)" ] }, "Properties": { - "$ref": "resources/aws-codecommit-repository.json" + "$ref": "resources/aws-athena-datacatalog.json" } }, "required": [ @@ -43516,9 +43422,9 @@ ], "additionalProperties": false }, - "AWS_EC2_PlacementGroup": { + "AWS_SSO_Instance": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::PlacementGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html)", + "markdownDescription": "Resource Type definition for Identity Center (SSO) Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instance.html)", "allOf": [ { "type": "object", @@ -43526,14 +43432,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::PlacementGroup" + "AWS::SSO::Instance" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::PlacementGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html)" + "Resource Type definition for Identity Center (SSO) Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instance.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-placementgroup.json" + "$ref": "resources/aws-sso-instance.json" } }, "required": [ @@ -43546,9 +43452,9 @@ ], "additionalProperties": false }, - "AWS_AmplifyUIBuilder_Theme": { + "AWS_PinpointEmail_Identity": { "type": "object", - "markdownDescription": "Definition of AWS::AmplifyUIBuilder::Theme Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html)", + "markdownDescription": "Resource Type definition for AWS::PinpointEmail::Identity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html)", "allOf": [ { "type": "object", @@ -43556,18 +43462,19 @@ "Type": { "type": "string", "enum": [ - "AWS::AmplifyUIBuilder::Theme" + "AWS::PinpointEmail::Identity" ], "markdownEnumDescriptions": [ - "Definition of AWS::AmplifyUIBuilder::Theme Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html)" + "Resource Type definition for AWS::PinpointEmail::Identity \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html)" ] }, "Properties": { - "$ref": "resources/aws-amplifyuibuilder-theme.json" + "$ref": "resources/aws-pinpointemail-identity.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -43576,9 +43483,9 @@ ], "additionalProperties": false }, - "AWS_NetworkManager_CustomerGatewayAssociation": { + "AWS_IoTFleetWise_Campaign": { "type": "object", - "markdownDescription": "The AWS::NetworkManager::CustomerGatewayAssociation type associates a customer gateway with a device and optionally, with a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html)", + "markdownDescription": "Definition of AWS::IoTFleetWise::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-campaign.html)", "allOf": [ { "type": "object", @@ -43586,14 +43493,14 @@ "Type": { "type": "string", "enum": [ - "AWS::NetworkManager::CustomerGatewayAssociation" + "AWS::IoTFleetWise::Campaign" ], "markdownEnumDescriptions": [ - "The AWS::NetworkManager::CustomerGatewayAssociation type associates a customer gateway with a device and optionally, with a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html)" + "Definition of AWS::IoTFleetWise::Campaign Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleetwise-campaign.html)" ] }, "Properties": { - "$ref": "resources/aws-networkmanager-customergatewayassociation.json" + "$ref": "resources/aws-iotfleetwise-campaign.json" } }, "required": [ @@ -43607,9 +43514,9 @@ ], "additionalProperties": false }, - "AWS_SecurityLake_Subscriber": { + "AWS_MediaConnect_Flow": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecurityLake::Subscriber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html)", + "markdownDescription": "Resource Type definition for AWS::MediaConnect::Flow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html)", "allOf": [ { "type": "object", @@ -43617,14 +43524,14 @@ "Type": { "type": "string", "enum": [ - "AWS::SecurityLake::Subscriber" + "AWS::MediaConnect::Flow" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecurityLake::Subscriber \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html)" + "Resource Type definition for AWS::MediaConnect::Flow \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html)" ] }, "Properties": { - "$ref": "resources/aws-securitylake-subscriber.json" + "$ref": "resources/aws-mediaconnect-flow.json" } }, "required": [ @@ -43638,9 +43545,9 @@ ], "additionalProperties": false }, - "AWS_CloudTrail_EventDataStore": { + "AWS_IAM_ServiceLinkedRole": { "type": "object", - "markdownDescription": "A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html)", + "markdownDescription": "Resource Type definition for AWS::IAM::ServiceLinkedRole \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html)", "allOf": [ { "type": "object", @@ -43648,14 +43555,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudTrail::EventDataStore" + "AWS::IAM::ServiceLinkedRole" ], "markdownEnumDescriptions": [ - "A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html)" + "Resource Type definition for AWS::IAM::ServiceLinkedRole \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudtrail-eventdatastore.json" + "$ref": "resources/aws-iam-servicelinkedrole.json" } }, "required": [ @@ -43668,9 +43575,9 @@ ], "additionalProperties": false }, - "AWS_DAX_SubnetGroup": { + "AWS_Bedrock_AgentAlias": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::DAX::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html)", + "markdownDescription": "Definition of AWS::Bedrock::AgentAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html)", "allOf": [ { "type": "object", @@ -43678,14 +43585,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DAX::SubnetGroup" + "AWS::Bedrock::AgentAlias" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::DAX::SubnetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html)" + "Definition of AWS::Bedrock::AgentAlias Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html)" ] }, "Properties": { - "$ref": "resources/aws-dax-subnetgroup.json" + "$ref": "resources/aws-bedrock-agentalias.json" } }, "required": [ @@ -43699,9 +43606,9 @@ ], "additionalProperties": false }, - "AWS_RolesAnywhere_TrustAnchor": { + "AWS_MediaLive_SignalMap": { "type": "object", - "markdownDescription": "Definition of AWS::RolesAnywhere::TrustAnchor Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html)", + "markdownDescription": "Definition of AWS::MediaLive::SignalMap Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-signalmap.html)", "allOf": [ { "type": "object", @@ -43709,14 +43616,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RolesAnywhere::TrustAnchor" + "AWS::MediaLive::SignalMap" ], "markdownEnumDescriptions": [ - "Definition of AWS::RolesAnywhere::TrustAnchor Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html)" + "Definition of AWS::MediaLive::SignalMap Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-signalmap.html)" ] }, "Properties": { - "$ref": "resources/aws-rolesanywhere-trustanchor.json" + "$ref": "resources/aws-medialive-signalmap.json" } }, "required": [ @@ -43730,9 +43637,9 @@ ], "additionalProperties": false }, - "AWS_IoTTwinMaker_SyncJob": { + "AWS_CloudFront_ContinuousDeploymentPolicy": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTTwinMaker::SyncJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-syncjob.html)", + "markdownDescription": "Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.\n After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.\n For more information, see [Using CloudFront continuous deployment to safely test CDN configuration changes](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html)", "allOf": [ { "type": "object", @@ -43740,14 +43647,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTTwinMaker::SyncJob" + "AWS::CloudFront::ContinuousDeploymentPolicy" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTTwinMaker::SyncJob \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-syncjob.html)" + "Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.\n After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.\n For more information, see [Using CloudFront continuous deployment to safely test CDN configuration changes](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-iottwinmaker-syncjob.json" + "$ref": "resources/aws-cloudfront-continuousdeploymentpolicy.json" } }, "required": [ @@ -43761,9 +43668,9 @@ ], "additionalProperties": false }, - "AWS_Events_Endpoint": { + "AWS_DataZone_FormType": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Events::Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-endpoint.html)", + "markdownDescription": "Create and manage form types in Amazon Datazone \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-formtype.html)", "allOf": [ { "type": "object", @@ -43771,14 +43678,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Events::Endpoint" + "AWS::DataZone::FormType" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Events::Endpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-endpoint.html)" + "Create and manage form types in Amazon Datazone \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-formtype.html)" ] }, "Properties": { - "$ref": "resources/aws-events-endpoint.json" + "$ref": "resources/aws-datazone-formtype.json" } }, "required": [ @@ -43792,9 +43699,9 @@ ], "additionalProperties": false }, - "AWS_SecretsManager_ResourcePolicy": { + "AWS_IAM_OIDCProvider": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SecretsManager::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html)", + "markdownDescription": "Resource Type definition for AWS::IAM::OIDCProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html)", "allOf": [ { "type": "object", @@ -43802,19 +43709,18 @@ "Type": { "type": "string", "enum": [ - "AWS::SecretsManager::ResourcePolicy" + "AWS::IAM::OIDCProvider" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SecretsManager::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html)" + "Resource Type definition for AWS::IAM::OIDCProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-secretsmanager-resourcepolicy.json" + "$ref": "resources/aws-iam-oidcprovider.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -43823,9 +43729,9 @@ ], "additionalProperties": false }, - "AWS_Bedrock_AutomatedReasoningPolicyVersion": { + "AWS_IoTEvents_AlarmModel": { "type": "object", - "markdownDescription": "Definition of AWS::Bedrock::AutomatedReasoningPolicyVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicyversion.html)", + "markdownDescription": "Represents an alarm model to monitor an ITE input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see [Create an alarm model](https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-alarmmodel.html)", "allOf": [ { "type": "object", @@ -43833,14 +43739,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Bedrock::AutomatedReasoningPolicyVersion" + "AWS::IoTEvents::AlarmModel" ], "markdownEnumDescriptions": [ - "Definition of AWS::Bedrock::AutomatedReasoningPolicyVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicyversion.html)" + "Represents an alarm model to monitor an ITE input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see [Create an alarm model](https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-alarmmodel.html)" ] }, "Properties": { - "$ref": "resources/aws-bedrock-automatedreasoningpolicyversion.json" + "$ref": "resources/aws-iotevents-alarmmodel.json" } }, "required": [ @@ -43854,9 +43760,9 @@ ], "additionalProperties": false }, - "AWS_WAF_Rule": { + "AWS_Macie_AllowList": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::WAF::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html)", + "markdownDescription": "Macie AllowList resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-allowlist.html)", "allOf": [ { "type": "object", @@ -43864,14 +43770,14 @@ "Type": { "type": "string", "enum": [ - "AWS::WAF::Rule" + "AWS::Macie::AllowList" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::WAF::Rule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html)" + "Macie AllowList resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-allowlist.html)" ] }, "Properties": { - "$ref": "resources/aws-waf-rule.json" + "$ref": "resources/aws-macie-allowlist.json" } }, "required": [ @@ -43885,9 +43791,9 @@ ], "additionalProperties": false }, - "AWS_SageMaker_Cluster": { + "AWS_Greengrass_FunctionDefinition": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::SageMaker::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::FunctionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html)", "allOf": [ { "type": "object", @@ -43895,18 +43801,19 @@ "Type": { "type": "string", "enum": [ - "AWS::SageMaker::Cluster" + "AWS::Greengrass::FunctionDefinition" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::SageMaker::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html)" + "Resource Type definition for AWS::Greengrass::FunctionDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-sagemaker-cluster.json" + "$ref": "resources/aws-greengrass-functiondefinition.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -43915,9 +43822,9 @@ ], "additionalProperties": false }, - "AWS_IoTTwinMaker_Workspace": { + "AWS_SageMaker_StudioLifecycleConfig": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTTwinMaker::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-workspace.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::StudioLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-studiolifecycleconfig.html)", "allOf": [ { "type": "object", @@ -43925,14 +43832,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTTwinMaker::Workspace" + "AWS::SageMaker::StudioLifecycleConfig" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTTwinMaker::Workspace \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iottwinmaker-workspace.html)" + "Resource Type definition for AWS::SageMaker::StudioLifecycleConfig \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-studiolifecycleconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-iottwinmaker-workspace.json" + "$ref": "resources/aws-sagemaker-studiolifecycleconfig.json" } }, "required": [ @@ -43946,9 +43853,9 @@ ], "additionalProperties": false }, - "AWS_S3ObjectLambda_AccessPoint": { + "AWS_RDS_DBSecurityGroupIngress": { "type": "object", - "markdownDescription": "The AWS::S3ObjectLambda::AccessPoint resource is an Amazon S3ObjectLambda resource type that you can use to add computation to S3 actions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html)", + "markdownDescription": "Resource Type definition for AWS::RDS::DBSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroupingress.html)", "allOf": [ { "type": "object", @@ -43956,14 +43863,14 @@ "Type": { "type": "string", "enum": [ - "AWS::S3ObjectLambda::AccessPoint" + "AWS::RDS::DBSecurityGroupIngress" ], "markdownEnumDescriptions": [ - "The AWS::S3ObjectLambda::AccessPoint resource is an Amazon S3ObjectLambda resource type that you can use to add computation to S3 actions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html)" + "Resource Type definition for AWS::RDS::DBSecurityGroupIngress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsecuritygroupingress.html)" ] }, "Properties": { - "$ref": "resources/aws-s3objectlambda-accesspoint.json" + "$ref": "resources/aws-rds-dbsecuritygroupingress.json" } }, "required": [ @@ -43977,9 +43884,9 @@ ], "additionalProperties": false }, - "AWS_ECS_TaskDefinition": { + "AWS_CloudFront_CloudFrontOriginAccessIdentity": { "type": "object", - "markdownDescription": "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html)", + "markdownDescription": "The request to create a new origin access identity (OAI). An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content. For more information, see [Restricting Access to Amazon S3 Content by Using an Origin Access Identity](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html)", "allOf": [ { "type": "object", @@ -43987,18 +43894,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ECS::TaskDefinition" + "AWS::CloudFront::CloudFrontOriginAccessIdentity" ], "markdownEnumDescriptions": [ - "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html)" + "The request to create a new origin access identity (OAI). An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content. For more information, see [Restricting Access to Amazon S3 Content by Using an Origin Access Identity](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html)" ] }, "Properties": { - "$ref": "resources/aws-ecs-taskdefinition.json" + "$ref": "resources/aws-cloudfront-cloudfrontoriginaccessidentity.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -44007,9 +43915,9 @@ ], "additionalProperties": false }, - "AWS_Glue_Trigger": { + "AWS_SecurityHub_DelegatedAdmin": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Glue::Trigger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html)", + "markdownDescription": "The ``AWS::SecurityHub::DelegatedAdmin`` resource designates the delegated ASHlong administrator account for an organization. You must enable the integration between ASH and AOlong before you can designate a delegated ASH administrator. Only the management account for an organization can designate the delegated ASH administrator account. For more information, see [Designating the delegated administrator](https://docs.aws.amazon.com/securityhub/latest/userguide/designate-orgs-admin-account.html#designate-admin-instructions) in the *User Guide*.\n To change the delegated administrator account, remove the current delegated administrator account, and then designate the new account.\n To designate multiple delegated administrators in different organizations and AWS-Regions, we recommend using [mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html).\n Tags aren't supported for this resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html)", "allOf": [ { "type": "object", @@ -44017,14 +43925,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Glue::Trigger" + "AWS::SecurityHub::DelegatedAdmin" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Glue::Trigger \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html)" + "The ``AWS::SecurityHub::DelegatedAdmin`` resource designates the delegated ASHlong administrator account for an organization. You must enable the integration between ASH and AOlong before you can designate a delegated ASH administrator. Only the management account for an organization can designate the delegated ASH administrator account. For more information, see [Designating the delegated administrator](https://docs.aws.amazon.com/securityhub/latest/userguide/designate-orgs-admin-account.html#designate-admin-instructions) in the *User Guide*.\n To change the delegated administrator account, remove the current delegated administrator account, and then designate the new account.\n To designate multiple delegated administrators in different organizations and AWS-Regions, we recommend using [mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html).\n Tags aren't supported for this resource. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html)" ] }, "Properties": { - "$ref": "resources/aws-glue-trigger.json" + "$ref": "resources/aws-securityhub-delegatedadmin.json" } }, "required": [ @@ -44038,9 +43946,9 @@ ], "additionalProperties": false }, - "AWS_CodeArtifact_Domain": { + "AWS_Omics_RunGroup": { "type": "object", - "markdownDescription": "The resource schema to create a CodeArtifact domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html)", + "markdownDescription": "Definition of AWS::Omics::RunGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-rungroup.html)", "allOf": [ { "type": "object", @@ -44048,19 +43956,18 @@ "Type": { "type": "string", "enum": [ - "AWS::CodeArtifact::Domain" + "AWS::Omics::RunGroup" ], "markdownEnumDescriptions": [ - "The resource schema to create a CodeArtifact domain. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html)" + "Definition of AWS::Omics::RunGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-rungroup.html)" ] }, "Properties": { - "$ref": "resources/aws-codeartifact-domain.json" + "$ref": "resources/aws-omics-rungroup.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -44069,9 +43976,9 @@ ], "additionalProperties": false }, - "AWS_EC2_InstanceConnectEndpoint": { + "AWS_WAFRegional_WebACLAssociation": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::InstanceConnectEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::WebACLAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html)", "allOf": [ { "type": "object", @@ -44079,14 +43986,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::InstanceConnectEndpoint" + "AWS::WAFRegional::WebACLAssociation" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::InstanceConnectEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html)" + "Resource Type definition for AWS::WAFRegional::WebACLAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-instanceconnectendpoint.json" + "$ref": "resources/aws-wafregional-webaclassociation.json" } }, "required": [ @@ -44100,9 +44007,9 @@ ], "additionalProperties": false }, - "AWS_QuickSight_Theme": { + "AWS_Evidently_Experiment": { "type": "object", - "markdownDescription": "Definition of the AWS::QuickSight::Theme Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-theme.html)", + "markdownDescription": "Resource Type definition for AWS::Evidently::Experiment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html)", "allOf": [ { "type": "object", @@ -44110,14 +44017,14 @@ "Type": { "type": "string", "enum": [ - "AWS::QuickSight::Theme" + "AWS::Evidently::Experiment" ], "markdownEnumDescriptions": [ - "Definition of the AWS::QuickSight::Theme Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-theme.html)" + "Resource Type definition for AWS::Evidently::Experiment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html)" ] }, "Properties": { - "$ref": "resources/aws-quicksight-theme.json" + "$ref": "resources/aws-evidently-experiment.json" } }, "required": [ @@ -44131,9 +44038,9 @@ ], "additionalProperties": false }, - "AWS_KinesisAnalytics_ApplicationReferenceDataSource": { + "AWS_ApiGatewayV2_RouteResponse": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::KinesisAnalytics::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html)", + "markdownDescription": "The ``AWS::ApiGatewayV2::RouteResponse`` resource creates a route response for a WebSocket API. For more information, see [Set up Route Responses for a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html)", "allOf": [ { "type": "object", @@ -44141,14 +44048,14 @@ "Type": { "type": "string", "enum": [ - "AWS::KinesisAnalytics::ApplicationReferenceDataSource" + "AWS::ApiGatewayV2::RouteResponse" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::KinesisAnalytics::ApplicationReferenceDataSource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html)" + "The ``AWS::ApiGatewayV2::RouteResponse`` resource creates a route response for a WebSocket API. For more information, see [Set up Route Responses for a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html) in the *API Gateway Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html)" ] }, "Properties": { - "$ref": "resources/aws-kinesisanalytics-applicationreferencedatasource.json" + "$ref": "resources/aws-apigatewayv2-routeresponse.json" } }, "required": [ @@ -44162,9 +44069,9 @@ ], "additionalProperties": false }, - "AWS_Route53Profiles_ProfileAssociation": { + "AWS_SageMaker_Domain": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Route53Profiles::ProfileAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileassociation.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html)", "allOf": [ { "type": "object", @@ -44172,14 +44079,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Route53Profiles::ProfileAssociation" + "AWS::SageMaker::Domain" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Route53Profiles::ProfileAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profileassociation.html)" + "Resource Type definition for AWS::SageMaker::Domain \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html)" ] }, "Properties": { - "$ref": "resources/aws-route53profiles-profileassociation.json" + "$ref": "resources/aws-sagemaker-domain.json" } }, "required": [ @@ -44193,9 +44100,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_APNSVoipSandboxChannel": { + "AWS_OpsWorks_Instance": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::APNSVoipSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipsandboxchannel.html)", + "markdownDescription": "Resource Type definition for AWS::OpsWorks::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html)", "allOf": [ { "type": "object", @@ -44203,14 +44110,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::APNSVoipSandboxChannel" + "AWS::OpsWorks::Instance" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::APNSVoipSandboxChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipsandboxchannel.html)" + "Resource Type definition for AWS::OpsWorks::Instance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-apnsvoipsandboxchannel.json" + "$ref": "resources/aws-opsworks-instance.json" } }, "required": [ @@ -44224,9 +44131,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkAclEntry": { + "AWS_Evidently_Segment": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::NetworkAclEntry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html)", + "markdownDescription": "Resource Type definition for AWS::Evidently::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-segment.html)", "allOf": [ { "type": "object", @@ -44234,14 +44141,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkAclEntry" + "AWS::Evidently::Segment" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::NetworkAclEntry \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html)" + "Resource Type definition for AWS::Evidently::Segment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-segment.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkaclentry.json" + "$ref": "resources/aws-evidently-segment.json" } }, "required": [ @@ -44255,9 +44162,9 @@ ], "additionalProperties": false }, - "AWS_S3_Bucket": { + "AWS_EMR_StudioSessionMapping": { "type": "object", - "markdownDescription": "The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.\n To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n You can only delete empty buckets. Deletion fails for buckets that have contents. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html)", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html)", "allOf": [ { "type": "object", @@ -44265,18 +44172,19 @@ "Type": { "type": "string", "enum": [ - "AWS::S3::Bucket" + "AWS::EMR::StudioSessionMapping" ], "markdownEnumDescriptions": [ - "The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.\n To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n You can only delete empty buckets. Deletion fails for buckets that have contents. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html)" + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html)" ] }, "Properties": { - "$ref": "resources/aws-s3-bucket.json" + "$ref": "resources/aws-emr-studiosessionmapping.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -44285,9 +44193,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkInterfacePermission": { + "AWS_ElastiCache_UserGroup": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::NetworkInterfacePermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html)", + "markdownDescription": "Resource Type definition for AWS::ElastiCache::UserGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html)", "allOf": [ { "type": "object", @@ -44295,14 +44203,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkInterfacePermission" + "AWS::ElastiCache::UserGroup" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::NetworkInterfacePermission \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html)" + "Resource Type definition for AWS::ElastiCache::UserGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkinterfacepermission.json" + "$ref": "resources/aws-elasticache-usergroup.json" } }, "required": [ @@ -44316,9 +44224,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_ApiKey": { + "AWS_MediaLive_CloudWatchAlarmTemplateGroup": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::ApiKey`` resource creates a unique key that you can distribute to clients who are executing API Gateway ``Method`` resources that require an API key. To specify which API key clients must use, map the API key with the ``RestApi`` and ``Stage`` resources that include the methods that require a key. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)", + "markdownDescription": "Definition of AWS::MediaLive::CloudWatchAlarmTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplategroup.html)", "allOf": [ { "type": "object", @@ -44326,18 +44234,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::ApiKey" + "AWS::MediaLive::CloudWatchAlarmTemplateGroup" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::ApiKey`` resource creates a unique key that you can distribute to clients who are executing API Gateway ``Method`` resources that require an API key. To specify which API key clients must use, map the API key with the ``RestApi`` and ``Stage`` resources that include the methods that require a key. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)" + "Definition of AWS::MediaLive::CloudWatchAlarmTemplateGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-cloudwatchalarmtemplategroup.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-apikey.json" + "$ref": "resources/aws-medialive-cloudwatchalarmtemplategroup.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -44346,9 +44255,9 @@ ], "additionalProperties": false }, - "AWS_IVS_IngestConfiguration": { + "AWS_IAM_GroupPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::IVS::IngestConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-ingestconfiguration.html)", + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM group.\n A group can also have managed policies attached to it. To attach a managed policy to a group, use [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a group, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html)", "allOf": [ { "type": "object", @@ -44356,18 +44265,19 @@ "Type": { "type": "string", "enum": [ - "AWS::IVS::IngestConfiguration" + "AWS::IAM::GroupPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::IVS::IngestConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-ingestconfiguration.html)" + "Adds or updates an inline policy document that is embedded in the specified IAM group.\n A group can also have managed policies attached to it. To attach a managed policy to a group, use [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.\n For information about the maximum number of inline policies that you can embed in a group, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-ivs-ingestconfiguration.json" + "$ref": "resources/aws-iam-grouppolicy.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -44376,9 +44286,9 @@ ], "additionalProperties": false }, - "AWS_BillingConductor_CustomLineItem": { + "AWS_Lightsail_DiskSnapshot": { "type": "object", - "markdownDescription": "A custom line item is an one time charge that is applied to a specific billing group's bill. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html)", + "markdownDescription": "Resource Type definition for AWS::Lightsail::DiskSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disksnapshot.html)", "allOf": [ { "type": "object", @@ -44386,14 +44296,14 @@ "Type": { "type": "string", "enum": [ - "AWS::BillingConductor::CustomLineItem" + "AWS::Lightsail::DiskSnapshot" ], "markdownEnumDescriptions": [ - "A custom line item is an one time charge that is applied to a specific billing group's bill. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html)" + "Resource Type definition for AWS::Lightsail::DiskSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disksnapshot.html)" ] }, "Properties": { - "$ref": "resources/aws-billingconductor-customlineitem.json" + "$ref": "resources/aws-lightsail-disksnapshot.json" } }, "required": [ @@ -44407,9 +44317,9 @@ ], "additionalProperties": false }, - "AWS_EC2_TransitGatewayConnectPeer": { + "AWS_Cases_Template": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::TransitGatewayConnectPeer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnectpeer.html)", + "markdownDescription": "A template in the Cases domain. This template is used to define the case object model (that is, to define what data can be captured on cases) in a Cases domain. A template must have a unique name within a domain, and it must reference existing field IDs and layout IDs. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-template.html)", "allOf": [ { "type": "object", @@ -44417,14 +44327,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::TransitGatewayConnectPeer" + "AWS::Cases::Template" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::TransitGatewayConnectPeer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnectpeer.html)" + "A template in the Cases domain. This template is used to define the case object model (that is, to define what data can be captured on cases) in a Cases domain. A template must have a unique name within a domain, and it must reference existing field IDs and layout IDs. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cases-template.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-transitgatewayconnectpeer.json" + "$ref": "resources/aws-cases-template.json" } }, "required": [ @@ -44438,9 +44348,9 @@ ], "additionalProperties": false }, - "AWS_MediaPackageV2_Channel": { + "AWS_Cognito_UserPoolIdentityProvider": { "type": "object", - "markdownDescription": "

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channel.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolIdentityProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html)", "allOf": [ { "type": "object", @@ -44448,14 +44358,14 @@ "Type": { "type": "string", "enum": [ - "AWS::MediaPackageV2::Channel" + "AWS::Cognito::UserPoolIdentityProvider" ], "markdownEnumDescriptions": [ - "

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channel.html)" + "Resource Type definition for AWS::Cognito::UserPoolIdentityProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html)" ] }, "Properties": { - "$ref": "resources/aws-mediapackagev2-channel.json" + "$ref": "resources/aws-cognito-userpoolidentityprovider.json" } }, "required": [ @@ -44469,9 +44379,9 @@ ], "additionalProperties": false }, - "AWS_FMS_NotificationChannel": { + "AWS_IoT_FleetMetric": { "type": "object", - "markdownDescription": "Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html)", + "markdownDescription": "An aggregated metric of certain devices in your fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html)", "allOf": [ { "type": "object", @@ -44479,14 +44389,14 @@ "Type": { "type": "string", "enum": [ - "AWS::FMS::NotificationChannel" + "AWS::IoT::FleetMetric" ], "markdownEnumDescriptions": [ - "Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html)" + "An aggregated metric of certain devices in your fleet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html)" ] }, "Properties": { - "$ref": "resources/aws-fms-notificationchannel.json" + "$ref": "resources/aws-iot-fleetmetric.json" } }, "required": [ @@ -44500,9 +44410,9 @@ ], "additionalProperties": false }, - "AWS_SQS_QueueInlinePolicy": { + "AWS_BackupGateway_Hypervisor": { "type": "object", - "markdownDescription": "Schema for SQS QueueInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html)", + "markdownDescription": "Definition of AWS::BackupGateway::Hypervisor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backupgateway-hypervisor.html)", "allOf": [ { "type": "object", @@ -44510,14 +44420,44 @@ "Type": { "type": "string", "enum": [ - "AWS::SQS::QueueInlinePolicy" + "AWS::BackupGateway::Hypervisor" ], "markdownEnumDescriptions": [ - "Schema for SQS QueueInlinePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html)" + "Definition of AWS::BackupGateway::Hypervisor Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backupgateway-hypervisor.html)" ] }, "Properties": { - "$ref": "resources/aws-sqs-queueinlinepolicy.json" + "$ref": "resources/aws-backupgateway-hypervisor.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_IpPoolRouteTableAssociation": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::EC2::IpPoolRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ippoolroutetableassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::IpPoolRouteTableAssociation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::EC2::IpPoolRouteTableAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ippoolroutetableassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-ippoolroutetableassociation.json" } }, "required": [ @@ -44531,9 +44471,9 @@ ], "additionalProperties": false }, - "AWS_Macie_FindingsFilter": { + "AWS_SageMaker_ModelBiasJobDefinition": { "type": "object", - "markdownDescription": "Macie FindingsFilter resource schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html)", + "markdownDescription": "Resource Type definition for AWS::SageMaker::ModelBiasJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelbiasjobdefinition.html)", "allOf": [ { "type": "object", @@ -44541,14 +44481,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Macie::FindingsFilter" + "AWS::SageMaker::ModelBiasJobDefinition" ], "markdownEnumDescriptions": [ - "Macie FindingsFilter resource schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html)" + "Resource Type definition for AWS::SageMaker::ModelBiasJobDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-modelbiasjobdefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-macie-findingsfilter.json" + "$ref": "resources/aws-sagemaker-modelbiasjobdefinition.json" } }, "required": [ @@ -44562,9 +44502,9 @@ ], "additionalProperties": false }, - "AWS_AppRunner_AutoScalingConfiguration": { + "AWS_VpcLattice_Service": { "type": "object", - "markdownDescription": "Describes an AWS App Runner automatic configuration resource that enables automatic scaling of instances used to process web requests. You can share an auto scaling configuration across multiple services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-autoscalingconfiguration.html)", + "markdownDescription": "A service is any software application that can run on instances containers, or serverless functions within an account or virtual private cloud (VPC). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-service.html)", "allOf": [ { "type": "object", @@ -44572,14 +44512,14 @@ "Type": { "type": "string", "enum": [ - "AWS::AppRunner::AutoScalingConfiguration" + "AWS::VpcLattice::Service" ], "markdownEnumDescriptions": [ - "Describes an AWS App Runner automatic configuration resource that enables automatic scaling of instances used to process web requests. You can share an auto scaling configuration across multiple services. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-autoscalingconfiguration.html)" + "A service is any software application that can run on instances containers, or serverless functions within an account or virtual private cloud (VPC). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-service.html)" ] }, "Properties": { - "$ref": "resources/aws-apprunner-autoscalingconfiguration.json" + "$ref": "resources/aws-vpclattice-service.json" } }, "required": [ @@ -44592,9 +44532,9 @@ ], "additionalProperties": false }, - "AWS_EC2_EnclaveCertificateIamRoleAssociation": { + "AWS_Route53GlobalResolver_FirewallDomainList": { "type": "object", - "markdownDescription": "Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate Manager (ACM) certificate. This association is based on Amazon Resource Names and it enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html)", + "markdownDescription": "Resource schema for AWS::Route53GlobalResolver::FirewallDomainList \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-firewalldomainlist.html)", "allOf": [ { "type": "object", @@ -44602,14 +44542,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::EnclaveCertificateIamRoleAssociation" + "AWS::Route53GlobalResolver::FirewallDomainList" ], "markdownEnumDescriptions": [ - "Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate Manager (ACM) certificate. This association is based on Amazon Resource Names and it enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html)" + "Resource schema for AWS::Route53GlobalResolver::FirewallDomainList \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53globalresolver-firewalldomainlist.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-enclavecertificateiamroleassociation.json" + "$ref": "resources/aws-route53globalresolver-firewalldomainlist.json" } }, "required": [ @@ -44623,9 +44563,9 @@ ], "additionalProperties": false }, - "AWS_ApiGateway_Stage": { + "AWS_Location_RouteCalculator": { "type": "object", - "markdownDescription": "The ``AWS::ApiGateway::Stage`` resource creates a stage for a deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html)", + "markdownDescription": "Definition of AWS::Location::RouteCalculator Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html)", "allOf": [ { "type": "object", @@ -44633,14 +44573,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ApiGateway::Stage" + "AWS::Location::RouteCalculator" ], "markdownEnumDescriptions": [ - "The ``AWS::ApiGateway::Stage`` resource creates a stage for a deployment. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html)" + "Definition of AWS::Location::RouteCalculator Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html)" ] }, "Properties": { - "$ref": "resources/aws-apigateway-stage.json" + "$ref": "resources/aws-location-routecalculator.json" } }, "required": [ @@ -44654,9 +44594,9 @@ ], "additionalProperties": false }, - "AWS_ServiceCatalog_LaunchNotificationConstraint": { + "AWS_WAF_SizeConstraintSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html)", + "markdownDescription": "Resource Type definition for AWS::WAF::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html)", "allOf": [ { "type": "object", @@ -44664,14 +44604,14 @@ "Type": { "type": "string", "enum": [ - "AWS::ServiceCatalog::LaunchNotificationConstraint" + "AWS::WAF::SizeConstraintSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html)" + "Resource Type definition for AWS::WAF::SizeConstraintSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html)" ] }, "Properties": { - "$ref": "resources/aws-servicecatalog-launchnotificationconstraint.json" + "$ref": "resources/aws-waf-sizeconstraintset.json" } }, "required": [ @@ -44685,9 +44625,9 @@ ], "additionalProperties": false }, - "AWS_CloudTrail_ResourcePolicy": { + "AWS_OpenSearchServerless_SecurityPolicy": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::CloudTrail::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-resourcepolicy.html)", + "markdownDescription": "Amazon OpenSearchServerless security policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securitypolicy.html)", "allOf": [ { "type": "object", @@ -44695,14 +44635,14 @@ "Type": { "type": "string", "enum": [ - "AWS::CloudTrail::ResourcePolicy" + "AWS::OpenSearchServerless::SecurityPolicy" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::CloudTrail::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-resourcepolicy.html)" + "Amazon OpenSearchServerless security policy resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchserverless-securitypolicy.html)" ] }, "Properties": { - "$ref": "resources/aws-cloudtrail-resourcepolicy.json" + "$ref": "resources/aws-opensearchserverless-securitypolicy.json" } }, "required": [ @@ -44716,9 +44656,9 @@ ], "additionalProperties": false }, - "AWS_Pinpoint_ApplicationSettings": { + "AWS_Backup_Framework": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::Pinpoint::ApplicationSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-applicationsettings.html)", + "markdownDescription": "Contains detailed information about a framework. Frameworks contain controls, which evaluate and report on your backup events and resources. Frameworks generate daily compliance results. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html)", "allOf": [ { "type": "object", @@ -44726,14 +44666,14 @@ "Type": { "type": "string", "enum": [ - "AWS::Pinpoint::ApplicationSettings" + "AWS::Backup::Framework" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::Pinpoint::ApplicationSettings \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-applicationsettings.html)" + "Contains detailed information about a framework. Frameworks contain controls, which evaluate and report on your backup events and resources. Frameworks generate daily compliance results. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html)" ] }, "Properties": { - "$ref": "resources/aws-pinpoint-applicationsettings.json" + "$ref": "resources/aws-backup-framework.json" } }, "required": [ @@ -44747,9 +44687,9 @@ ], "additionalProperties": false }, - "AWS_IoTSiteWise_Gateway": { + "AWS_MediaConnect_FlowEntitlement": { "type": "object", - "markdownDescription": "Resource schema for AWS::IoTSiteWise::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html)", + "markdownDescription": "Resource schema for AWS::MediaConnect::FlowEntitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html)", "allOf": [ { "type": "object", @@ -44757,14 +44697,14 @@ "Type": { "type": "string", "enum": [ - "AWS::IoTSiteWise::Gateway" + "AWS::MediaConnect::FlowEntitlement" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::IoTSiteWise::Gateway \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html)" + "Resource schema for AWS::MediaConnect::FlowEntitlement \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html)" ] }, "Properties": { - "$ref": "resources/aws-iotsitewise-gateway.json" + "$ref": "resources/aws-mediaconnect-flowentitlement.json" } }, "required": [ @@ -44778,9 +44718,9 @@ ], "additionalProperties": false }, - "AWS_ApplicationSignals_Discovery": { + "AWS_Route53_RecordSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ApplicationSignals::Discovery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-discovery.html)", + "markdownDescription": "Resource Type definition for AWS::Route53::RecordSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html)", "allOf": [ { "type": "object", @@ -44788,18 +44728,19 @@ "Type": { "type": "string", "enum": [ - "AWS::ApplicationSignals::Discovery" + "AWS::Route53::RecordSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ApplicationSignals::Discovery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-discovery.html)" + "Resource Type definition for AWS::Route53::RecordSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html)" ] }, "Properties": { - "$ref": "resources/aws-applicationsignals-discovery.json" + "$ref": "resources/aws-route53-recordset.json" } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -44808,9 +44749,9 @@ ], "additionalProperties": false }, - "AWS_InspectorV2_Filter": { + "AWS_ApplicationAutoScaling_ScalableTarget": { "type": "object", - "markdownDescription": "Inspector Filter resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-filter.html)", + "markdownDescription": "The ``AWS::ApplicationAutoScaling::ScalableTarget`` resource specifies a resource that Application Auto Scaling can scale, such as an AWS::DynamoDB::Table or AWS::ECS::Service resource.\n For more information, see [Getting started](https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) in the *Application Auto Scaling User Guide*.\n If the resource that you want Application Auto Scaling to scale is not yet created in your account, add a dependency on the resource when registering it as a scalable target using the [DependsOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) attribute. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html)", "allOf": [ { "type": "object", @@ -44818,14 +44759,14 @@ "Type": { "type": "string", "enum": [ - "AWS::InspectorV2::Filter" + "AWS::ApplicationAutoScaling::ScalableTarget" ], "markdownEnumDescriptions": [ - "Inspector Filter resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspectorv2-filter.html)" + "The ``AWS::ApplicationAutoScaling::ScalableTarget`` resource specifies a resource that Application Auto Scaling can scale, such as an AWS::DynamoDB::Table or AWS::ECS::Service resource.\n For more information, see [Getting started](https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) in the *Application Auto Scaling User Guide*.\n If the resource that you want Application Auto Scaling to scale is not yet created in your account, add a dependency on the resource when registering it as a scalable target using the [DependsOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) attribute. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html)" ] }, "Properties": { - "$ref": "resources/aws-inspectorv2-filter.json" + "$ref": "resources/aws-applicationautoscaling-scalabletarget.json" } }, "required": [ @@ -44839,9 +44780,9 @@ ], "additionalProperties": false }, - "AWS_GuardDuty_MalwareProtectionPlan": { + "AWS_WAFRegional_XssMatchSet": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::GuardDuty::MalwareProtectionPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-malwareprotectionplan.html)", + "markdownDescription": "Resource Type definition for AWS::WAFRegional::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html)", "allOf": [ { "type": "object", @@ -44849,14 +44790,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GuardDuty::MalwareProtectionPlan" + "AWS::WAFRegional::XssMatchSet" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::GuardDuty::MalwareProtectionPlan \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-malwareprotectionplan.html)" + "Resource Type definition for AWS::WAFRegional::XssMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html)" ] }, "Properties": { - "$ref": "resources/aws-guardduty-malwareprotectionplan.json" + "$ref": "resources/aws-wafregional-xssmatchset.json" } }, "required": [ @@ -44870,9 +44811,9 @@ ], "additionalProperties": false }, - "AWS_OpsWorks_Volume": { + "AWS_Config_ConfigurationRecorder": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::OpsWorks::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)", + "markdownDescription": "Resource Type definition for AWS::Config::ConfigurationRecorder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html)", "allOf": [ { "type": "object", @@ -44880,14 +44821,14 @@ "Type": { "type": "string", "enum": [ - "AWS::OpsWorks::Volume" + "AWS::Config::ConfigurationRecorder" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::OpsWorks::Volume \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)" + "Resource Type definition for AWS::Config::ConfigurationRecorder \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html)" ] }, "Properties": { - "$ref": "resources/aws-opsworks-volume.json" + "$ref": "resources/aws-config-configurationrecorder.json" } }, "required": [ @@ -44901,9 +44842,9 @@ ], "additionalProperties": false }, - "AWS_RDS_DBProxyEndpoint": { + "AWS_Greengrass_DeviceDefinition": { "type": "object", - "markdownDescription": "Resource schema for AWS::RDS::DBProxyEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxyendpoint.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::DeviceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html)", "allOf": [ { "type": "object", @@ -44911,14 +44852,14 @@ "Type": { "type": "string", "enum": [ - "AWS::RDS::DBProxyEndpoint" + "AWS::Greengrass::DeviceDefinition" ], "markdownEnumDescriptions": [ - "Resource schema for AWS::RDS::DBProxyEndpoint. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxyendpoint.html)" + "Resource Type definition for AWS::Greengrass::DeviceDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html)" ] }, "Properties": { - "$ref": "resources/aws-rds-dbproxyendpoint.json" + "$ref": "resources/aws-greengrass-devicedefinition.json" } }, "required": [ @@ -44932,9 +44873,9 @@ ], "additionalProperties": false }, - "AWS_EC2_NetworkPerformanceMetricSubscription": { + "AWS_PCAConnectorSCEP_Challenge": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::EC2::NetworkPerformanceMetricSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkperformancemetricsubscription.html)", + "markdownDescription": "Represents a SCEP Challenge that is used for certificate enrollment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-challenge.html)", "allOf": [ { "type": "object", @@ -44942,14 +44883,14 @@ "Type": { "type": "string", "enum": [ - "AWS::EC2::NetworkPerformanceMetricSubscription" + "AWS::PCAConnectorSCEP::Challenge" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::EC2::NetworkPerformanceMetricSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkperformancemetricsubscription.html)" + "Represents a SCEP Challenge that is used for certificate enrollment \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcaconnectorscep-challenge.html)" ] }, "Properties": { - "$ref": "resources/aws-ec2-networkperformancemetricsubscription.json" + "$ref": "resources/aws-pcaconnectorscep-challenge.json" } }, "required": [ @@ -44963,9 +44904,9 @@ ], "additionalProperties": false }, - "AWS_DeviceFarm_VPCEConfiguration": { + "AWS_CloudWatch_AlarmMuteRule": { "type": "object", - "markdownDescription": "Resource Type definition for a Device Farm VPCE Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-vpceconfiguration.html)", + "markdownDescription": "Resource Type definition for AWS::CloudWatch::AlarmMuteRule that allows defining a rule and targeting alarms to mute their actions during the specified window. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarmmuterule.html)", "allOf": [ { "type": "object", @@ -44973,14 +44914,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DeviceFarm::VPCEConfiguration" + "AWS::CloudWatch::AlarmMuteRule" ], "markdownEnumDescriptions": [ - "Resource Type definition for a Device Farm VPCE Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-vpceconfiguration.html)" + "Resource Type definition for AWS::CloudWatch::AlarmMuteRule that allows defining a rule and targeting alarms to mute their actions during the specified window. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarmmuterule.html)" ] }, "Properties": { - "$ref": "resources/aws-devicefarm-vpceconfiguration.json" + "$ref": "resources/aws-cloudwatch-alarmmuterule.json" } }, "required": [ @@ -44994,9 +44935,9 @@ ], "additionalProperties": false }, - "AWS_DeviceFarm_InstanceProfile": { + "AWS_Evidently_Launch": { "type": "object", - "markdownDescription": "Resource Type definition for a Device Farm Instance Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-instanceprofile.html)", + "markdownDescription": "Resource Type definition for AWS::Evidently::Launch. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html)", "allOf": [ { "type": "object", @@ -45004,14 +44945,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DeviceFarm::InstanceProfile" + "AWS::Evidently::Launch" ], "markdownEnumDescriptions": [ - "Resource Type definition for a Device Farm Instance Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-instanceprofile.html)" + "Resource Type definition for AWS::Evidently::Launch. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html)" ] }, "Properties": { - "$ref": "resources/aws-devicefarm-instanceprofile.json" + "$ref": "resources/aws-evidently-launch.json" } }, "required": [ @@ -45025,9 +44966,9 @@ ], "additionalProperties": false }, - "AWS_DeviceFarm_TestGridProject": { + "AWS_EMR_Step": { "type": "object", - "markdownDescription": "Resource Type definition for a Device Farm TestGrid Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-testgridproject.html)", + "markdownDescription": "Schema for AWS::EMR::Step \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html)", "allOf": [ { "type": "object", @@ -45035,14 +44976,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DeviceFarm::TestGridProject" + "AWS::EMR::Step" ], "markdownEnumDescriptions": [ - "Resource Type definition for a Device Farm TestGrid Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-testgridproject.html)" + "Schema for AWS::EMR::Step \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html)" ] }, "Properties": { - "$ref": "resources/aws-devicefarm-testgridproject.json" + "$ref": "resources/aws-emr-step.json" } }, "required": [ @@ -45056,9 +44997,9 @@ ], "additionalProperties": false }, - "AWS_DeviceFarm_Project": { + "AWS_Greengrass_ConnectorDefinitionVersion": { "type": "object", - "markdownDescription": "Resource Type definition for a Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-project.html)", + "markdownDescription": "Resource Type definition for AWS::Greengrass::ConnectorDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html)", "allOf": [ { "type": "object", @@ -45066,14 +45007,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DeviceFarm::Project" + "AWS::Greengrass::ConnectorDefinitionVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for a Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-project.html)" + "Resource Type definition for AWS::Greengrass::ConnectorDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html)" ] }, "Properties": { - "$ref": "resources/aws-devicefarm-project.json" + "$ref": "resources/aws-greengrass-connectordefinitionversion.json" } }, "required": [ @@ -45087,9 +45028,9 @@ ], "additionalProperties": false }, - "AWS_DeviceFarm_DevicePool": { + "AWS_Bedrock_GuardrailVersion": { "type": "object", - "markdownDescription": "Resource Type definition for a Device Pool for a given Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-devicepool.html)", + "markdownDescription": "Definition of AWS::Bedrock::GuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrailversion.html)", "allOf": [ { "type": "object", @@ -45097,14 +45038,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DeviceFarm::DevicePool" + "AWS::Bedrock::GuardrailVersion" ], "markdownEnumDescriptions": [ - "Resource Type definition for a Device Pool for a given Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-devicepool.html)" + "Definition of AWS::Bedrock::GuardrailVersion Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrailversion.html)" ] }, "Properties": { - "$ref": "resources/aws-devicefarm-devicepool.json" + "$ref": "resources/aws-bedrock-guardrailversion.json" } }, "required": [ @@ -45118,9 +45059,9 @@ ], "additionalProperties": false }, - "AWS_GameLiftStreams_Application": { + "AWS_Cognito_UserPoolClient": { "type": "object", - "markdownDescription": "Definition of AWS::GameLiftStreams::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-application.html)", + "markdownDescription": "Resource Type definition for AWS::Cognito::UserPoolClient \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html)", "allOf": [ { "type": "object", @@ -45128,14 +45069,14 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLiftStreams::Application" + "AWS::Cognito::UserPoolClient" ], "markdownEnumDescriptions": [ - "Definition of AWS::GameLiftStreams::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-application.html)" + "Resource Type definition for AWS::Cognito::UserPoolClient \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html)" ] }, "Properties": { - "$ref": "resources/aws-gameliftstreams-application.json" + "$ref": "resources/aws-cognito-userpoolclient.json" } }, "required": [ @@ -45149,9 +45090,9 @@ ], "additionalProperties": false }, - "AWS_GameLiftStreams_StreamGroup": { + "AWS_CloudFormation_HookTypeConfig": { "type": "object", - "markdownDescription": "Definition of AWS::GameLiftStreams::StreamGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-streamgroup.html)", + "markdownDescription": "Specifies the configuration data for a registered hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html)", "allOf": [ { "type": "object", @@ -45159,19 +45100,18 @@ "Type": { "type": "string", "enum": [ - "AWS::GameLiftStreams::StreamGroup" + "AWS::CloudFormation::HookTypeConfig" ], "markdownEnumDescriptions": [ - "Definition of AWS::GameLiftStreams::StreamGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-streamgroup.html)" + "Specifies the configuration data for a registered hook in CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html)" ] }, "Properties": { - "$ref": "resources/aws-gameliftstreams-streamgroup.json" + "$ref": "resources/aws-cloudformation-hooktypeconfig.json" } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -45180,9 +45120,9 @@ ], "additionalProperties": false }, - "AWS_DeviceFarm_NetworkProfile": { + "AWS_ServiceCatalog_LaunchRoleConstraint": { "type": "object", - "markdownDescription": "Resource Type definition for a Device Farm Network Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-networkprofile.html)", + "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::LaunchRoleConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html)", "allOf": [ { "type": "object", @@ -45190,14 +45130,14 @@ "Type": { "type": "string", "enum": [ - "AWS::DeviceFarm::NetworkProfile" + "AWS::ServiceCatalog::LaunchRoleConstraint" ], "markdownEnumDescriptions": [ - "Resource Type definition for a Device Farm Network Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-networkprofile.html)" + "Resource Type definition for AWS::ServiceCatalog::LaunchRoleConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html)" ] }, "Properties": { - "$ref": "resources/aws-devicefarm-networkprofile.json" + "$ref": "resources/aws-servicecatalog-launchroleconstraint.json" } }, "required": [ @@ -45210,4413 +45150,8708 @@ } ], "additionalProperties": false - } - }, - "properties": { - "Resources": { + }, + "AWS_RolesAnywhere_Profile": { "type": "object", - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - "^[a-zA-Z0-9]{1,255}$": { - "oneOf": [ - { - "$ref": "#/definitions/CustomResource" - }, - { - "$ref": "#/definitions/AWS_Kendra_Index" - }, - { - "$ref": "#/definitions/AWS_S3_AccessGrantsLocation" - }, - { - "$ref": "#/definitions/AWS_CloudWatch_InsightRule" - }, - { - "$ref": "#/definitions/AWS_IAM_SAMLProvider" + "markdownDescription": "Definition of AWS::RolesAnywhere::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::RolesAnywhere::Profile Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-rolesanywhere-profile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_MSK_Replicator": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::MSK::Replicator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-replicator.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::MSK::Replicator" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::MSK::Replicator \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-replicator.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-msk-replicator.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Cloud9_EnvironmentEC2": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Cloud9::EnvironmentEC2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Cloud9::EnvironmentEC2" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Cloud9::EnvironmentEC2 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cloud9-environmentec2.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Transfer_User": { + "type": "object", + "markdownDescription": "Definition of AWS::Transfer::User Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Transfer::User" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::Transfer::User Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-transfer-user.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_EnclaveCertificateIamRoleAssociation": { + "type": "object", + "markdownDescription": "Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate Manager (ACM) certificate. This association is based on Amazon Resource Names and it enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::EnclaveCertificateIamRoleAssociation" + ], + "markdownEnumDescriptions": [ + "Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate Manager (ACM) certificate. This association is based on Amazon Resource Names and it enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-enclavecertificateiamroleassociation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Lightsail_Container": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Lightsail::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-container.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Lightsail::Container" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Lightsail::Container \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-container.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-lightsail-container.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IAM_InstanceProfile": { + "type": "object", + "markdownDescription": "Creates a new instance profile. For information about instance profiles, see [Using instance profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html).\n For information about the number of instance profiles you can create, see [object quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IAM::InstanceProfile" + ], + "markdownEnumDescriptions": [ + "Creates a new instance profile. For information about instance profiles, see [Using instance profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html).\n For information about the number of instance profiles you can create, see [object quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-iam-instanceprofile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Timestream_InfluxDBInstance": { + "type": "object", + "markdownDescription": "The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Timestream::InfluxDBInstance" + ], + "markdownEnumDescriptions": [ + "The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-timestream-influxdbinstance.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_VpcLattice_ResourceGateway": { + "type": "object", + "markdownDescription": "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::VpcLattice::ResourceGateway" + ], + "markdownEnumDescriptions": [ + "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-vpclattice-resourcegateway.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_IPAMPool": { + "type": "object", + "markdownDescription": "Resource Schema of AWS::EC2::IPAMPool Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::IPAMPool" + ], + "markdownEnumDescriptions": [ + "Resource Schema of AWS::EC2::IPAMPool Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-ipampool.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DataSync_LocationObjectStorage": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::DataSync::LocationObjectStorage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DataSync::LocationObjectStorage" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::DataSync::LocationObjectStorage. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-datasync-locationobjectstorage.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_MediaConnect_RouterOutput": { + "type": "object", + "markdownDescription": "Represents a router input in AWS Elemental MediaConnect that can be used to egress content transmitted from router inputs \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-routeroutput.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::MediaConnect::RouterOutput" + ], + "markdownEnumDescriptions": [ + "Represents a router input in AWS Elemental MediaConnect that can be used to egress content transmitted from router inputs \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-routeroutput.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-mediaconnect-routeroutput.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Lightsail_LoadBalancer": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Lightsail::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancer.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Lightsail::LoadBalancer" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Lightsail::LoadBalancer \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-loadbalancer.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-lightsail-loadbalancer.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IoTSiteWise_AccessPolicy": { + "type": "object", + "markdownDescription": "Resource schema for AWS::IoTSiteWise::AccessPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IoTSiteWise::AccessPolicy" + ], + "markdownEnumDescriptions": [ + "Resource schema for AWS::IoTSiteWise::AccessPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-iotsitewise-accesspolicy.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SES_ConfigurationSetEventDestination": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::SES::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SES::ConfigurationSetEventDestination" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::SES::ConfigurationSetEventDestination \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ses-configurationseteventdestination.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_NetworkInterfaceAttachment": { + "type": "object", + "markdownDescription": "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfaceattachment.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::NetworkInterfaceAttachment" + ], + "markdownEnumDescriptions": [ + "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfaceattachment.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-networkinterfaceattachment.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_MediaLive_SdiSource": { + "type": "object", + "markdownDescription": "Definition of AWS::MediaLive::SdiSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-sdisource.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::MediaLive::SdiSource" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::MediaLive::SdiSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-sdisource.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-medialive-sdisource.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SecurityHub_HubV2": { + "type": "object", + "markdownDescription": "The AWS::SecurityHub::HubV2 resource represents the implementation of the AWS Security Hub V2 service in your account. Only one hubv2 resource can created in each region in which you enable Security Hub V2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SecurityHub::HubV2" + ], + "markdownEnumDescriptions": [ + "The AWS::SecurityHub::HubV2 resource represents the implementation of the AWS Security Hub V2 service in your account. Only one hubv2 resource can created in each region in which you enable Security Hub V2. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-securityhub-hubv2.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IAM_SAMLProvider": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::IAM::SAMLProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IAM::SAMLProvider" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::IAM::SAMLProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-iam-samlprovider.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Neptune_DBParameterGroup": { + "type": "object", + "markdownDescription": "AWS::Neptune::DBParameterGroup creates a new DB parameter group. This type can be declared in a template and referenced in the DBParameterGroupName parameter of AWS::Neptune::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Neptune::DBParameterGroup" + ], + "markdownEnumDescriptions": [ + "AWS::Neptune::DBParameterGroup creates a new DB parameter group. This type can be declared in a template and referenced in the DBParameterGroupName parameter of AWS::Neptune::DBInstance \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-neptune-dbparametergroup.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_S3Vectors_VectorBucketPolicy": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::S3Vectors::VectorBucketPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3vectors-vectorbucketpolicy.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::S3Vectors::VectorBucketPolicy" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::S3Vectors::VectorBucketPolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3vectors-vectorbucketpolicy.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-s3vectors-vectorbucketpolicy.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IoT_SoftwarePackage": { + "type": "object", + "markdownDescription": "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackage.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IoT::SoftwarePackage" + ], + "markdownEnumDescriptions": [ + "resource definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackage.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-iot-softwarepackage.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EntityResolution_IdNamespace": { + "type": "object", + "markdownDescription": "IdNamespace defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EntityResolution::IdNamespace" + ], + "markdownEnumDescriptions": [ + "IdNamespace defined in AWS Entity Resolution service \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-entityresolution-idnamespace.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Logs_Integration": { + "type": "object", + "markdownDescription": "Resource Schema for Logs Integration Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-integration.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Logs::Integration" + ], + "markdownEnumDescriptions": [ + "Resource Schema for Logs Integration Resource \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-integration.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-logs-integration.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_ControlTower_EnabledControl": { + "type": "object", + "markdownDescription": "Enables a control on a specified target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ControlTower::EnabledControl" + ], + "markdownEnumDescriptions": [ + "Enables a control on a specified target. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-controltower-enabledcontrol.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_VerifiedPermissions_PolicyTemplate": { + "type": "object", + "markdownDescription": "Definition of AWS::VerifiedPermissions::PolicyTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policytemplate.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::VerifiedPermissions::PolicyTemplate" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::VerifiedPermissions::PolicyTemplate Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policytemplate.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-verifiedpermissions-policytemplate.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Pinpoint_BaiduChannel": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Pinpoint::BaiduChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-baiduchannel.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Pinpoint::BaiduChannel" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Pinpoint::BaiduChannel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-baiduchannel.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-pinpoint-baiduchannel.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_WAFv2_IPSet": { + "type": "object", + "markdownDescription": "Contains a list of IP addresses. This can be either IPV4 or IPV6. The list will be mutually \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::WAFv2::IPSet" + ], + "markdownEnumDescriptions": [ + "Contains a list of IP addresses. This can be either IPV4 or IPV6. The list will be mutually \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-wafv2-ipset.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_ElasticLoadBalancingV2_TargetGroup": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::ElasticLoadBalancingV2::TargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ElasticLoadBalancingV2::TargetGroup" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::ElasticLoadBalancingV2::TargetGroup \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-elasticloadbalancingv2-targetgroup.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_NetworkFirewall_LoggingConfiguration": { + "type": "object", + "markdownDescription": "Resource type definition for AWS::NetworkFirewall::LoggingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::NetworkFirewall::LoggingConfiguration" + ], + "markdownEnumDescriptions": [ + "Resource type definition for AWS::NetworkFirewall::LoggingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-networkfirewall-loggingconfiguration.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_MediaLive_Multiplex": { + "type": "object", + "markdownDescription": "Resource schema for AWS::MediaLive::Multiplex \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplex.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::MediaLive::Multiplex" + ], + "markdownEnumDescriptions": [ + "Resource schema for AWS::MediaLive::Multiplex \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-multiplex.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-medialive-multiplex.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_VerifiedPermissions_IdentitySource": { + "type": "object", + "markdownDescription": "Definition of AWS::VerifiedPermissions::IdentitySource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::VerifiedPermissions::IdentitySource" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::VerifiedPermissions::IdentitySource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-verifiedpermissions-identitysource.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SES_ConfigurationSet": { + "type": "object", + "markdownDescription": "Resource schema for AWS::SES::ConfigurationSet. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SES::ConfigurationSet" + ], + "markdownEnumDescriptions": [ + "Resource schema for AWS::SES::ConfigurationSet. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ses-configurationset.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_CustomerGateway": { + "type": "object", + "markdownDescription": "Specifies a customer gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::CustomerGateway" + ], + "markdownEnumDescriptions": [ + "Specifies a customer gateway. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-customergateway.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SecurityLake_SubscriberNotification": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::SecurityLake::SubscriberNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SecurityLake::SubscriberNotification" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::SecurityLake::SubscriberNotification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-securitylake-subscribernotification.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IoTEvents_Input": { + "type": "object", + "markdownDescription": "The AWS::IoTEvents::Input resource creates an input. To monitor your devices and processes, they must have a way to get telemetry data into ITE. This is done by sending messages as *inputs* to ITE. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IoTEvents::Input" + ], + "markdownEnumDescriptions": [ + "The AWS::IoTEvents::Input resource creates an input. To monitor your devices and processes, they must have a way to get telemetry data into ITE. This is done by sending messages as *inputs* to ITE. For more information, see [How to Use](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *Developer Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-iotevents-input.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_MediaPackageV2_Channel": { + "type": "object", + "markdownDescription": "

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channel.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::MediaPackageV2::Channel" + ], + "markdownEnumDescriptions": [ + "

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-channel.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-mediapackagev2-channel.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DocDB_EventSubscription": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::DocDB::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DocDB::EventSubscription" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::DocDB::EventSubscription \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-eventsubscription.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-docdb-eventsubscription.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Bedrock_DataAutomationLibrary": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Bedrock::DataAutomationLibrary \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-dataautomationlibrary.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Bedrock::DataAutomationLibrary" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Bedrock::DataAutomationLibrary \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-dataautomationlibrary.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrock-dataautomationlibrary.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Bedrock_DataSource": { + "type": "object", + "markdownDescription": "Definition of AWS::Bedrock::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Bedrock::DataSource" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::Bedrock::DataSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrock-datasource.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Deadline_MeteredProduct": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Deadline::MeteredProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Deadline::MeteredProduct" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Deadline::MeteredProduct \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-deadline-meteredproduct.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Connect_EmailAddress": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Connect::EmailAddress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-emailaddress.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Connect::EmailAddress" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Connect::EmailAddress \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-emailaddress.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-connect-emailaddress.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Greengrass_LoggerDefinition": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Greengrass::LoggerDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Greengrass::LoggerDefinition" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Greengrass::LoggerDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-greengrass-loggerdefinition.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SSM_MaintenanceWindowTarget": { + "type": "object", + "markdownDescription": "Resource type definition for AWS::SSM::MaintenanceWindowTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtarget.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SSM::MaintenanceWindowTarget" + ], + "markdownEnumDescriptions": [ + "Resource type definition for AWS::SSM::MaintenanceWindowTarget \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtarget.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ssm-maintenancewindowtarget.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SSM_Parameter": { + "type": "object", + "markdownDescription": "The ``AWS::SSM::Parameter`` resource creates an SSM parameter in SYSlong Parameter Store.\n To create an SSM parameter, you must have the IAMlong (IAM) permissions ``ssm:PutParameter`` and ``ssm:AddTagsToResource``. On stack creation, CFNlong adds the following three tags to the parameter: ``aws:cloudformation:stack-name``, ``aws:cloudformation:logical-id``, and ``aws:cloudformation:stack-id``, in addition to any custom tags you specify.\n To add, update, or remove tags during stack update, you must have IAM permissions for both ``ssm:AddTagsToResource`` and ``ssm:RemoveTagsFromResource``. For more information, see [Managing access using policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/security-iam.html#security_iam_access-manage) in the *User Guide*.\n For information about valid values for parameters, see [About requirements and constraints for parameter names](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html#sysman-parameter-name-constraints) in the *User Guide* and [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) in the *API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SSM::Parameter" + ], + "markdownEnumDescriptions": [ + "The ``AWS::SSM::Parameter`` resource creates an SSM parameter in SYSlong Parameter Store.\n To create an SSM parameter, you must have the IAMlong (IAM) permissions ``ssm:PutParameter`` and ``ssm:AddTagsToResource``. On stack creation, CFNlong adds the following three tags to the parameter: ``aws:cloudformation:stack-name``, ``aws:cloudformation:logical-id``, and ``aws:cloudformation:stack-id``, in addition to any custom tags you specify.\n To add, update, or remove tags during stack update, you must have IAM permissions for both ``ssm:AddTagsToResource`` and ``ssm:RemoveTagsFromResource``. For more information, see [Managing access using policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/security-iam.html#security_iam_access-manage) in the *User Guide*.\n For information about valid values for parameters, see [About requirements and constraints for parameter names](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html#sysman-parameter-name-constraints) in the *User Guide* and [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) in the *API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ssm-parameter.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CloudTrail_EventDataStore": { + "type": "object", + "markdownDescription": "A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CloudTrail::EventDataStore" + ], + "markdownEnumDescriptions": [ + "A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cloudtrail-eventdatastore.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CustomerProfiles_Recommender": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::CustomerProfiles::Recommender \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-recommender.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CustomerProfiles::Recommender" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::CustomerProfiles::Recommender \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-recommender.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-customerprofiles-recommender.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SupportApp_AccountAlias": { + "type": "object", + "markdownDescription": "An AWS Support App resource that creates, updates, reads, and deletes a customer's account alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "markdownEnumDescriptions": [ + "An AWS Support App resource that creates, updates, reads, and deletes a customer's account alias. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-supportapp-accountalias.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IVS_PublicKey": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::IVS::PublicKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-publickey.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IVS::PublicKey" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::IVS::PublicKey \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-publickey.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ivs-publickey.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CloudWatch_InsightRule": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::CloudWatch::InsightRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CloudWatch::InsightRule" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::CloudWatch::InsightRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cloudwatch-insightrule.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_WAF_SqlInjectionMatchSet": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::WAF::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::WAF::SqlInjectionMatchSet" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::WAF::SqlInjectionMatchSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-waf-sqlinjectionmatchset.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_TrafficMirrorFilterRule": { + "type": "object", + "markdownDescription": "Resource Type definition for for AWS::EC2::TrafficMirrorFilterRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::TrafficMirrorFilterRule" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for for AWS::EC2::TrafficMirrorFilterRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-trafficmirrorfilterrule.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_RTBFabric_RequesterGateway": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::RequesterGateway Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-requestergateway.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RTBFabric::RequesterGateway" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::RTBFabric::RequesterGateway Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-requestergateway.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-rtbfabric-requestergateway.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_WAFv2_RegexPatternSet": { + "type": "object", + "markdownDescription": "Contains a list of Regular expressions based on the provided inputs. RegexPatternSet can be used with other WAF entities with RegexPatternSetReferenceStatement to perform other actions . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::WAFv2::RegexPatternSet" + ], + "markdownEnumDescriptions": [ + "Contains a list of Regular expressions based on the provided inputs. RegexPatternSet can be used with other WAF entities with RegexPatternSetReferenceStatement to perform other actions . \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-wafv2-regexpatternset.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Wisdom_AssistantAssociation": { + "type": "object", + "markdownDescription": "Definition of AWS::Wisdom::AssistantAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Wisdom::AssistantAssociation" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::Wisdom::AssistantAssociation Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-wisdom-assistantassociation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Wisdom_AIPrompt": { + "type": "object", + "markdownDescription": "Definition of AWS::Wisdom::AIPrompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiprompt.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Wisdom::AIPrompt" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::Wisdom::AIPrompt Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiprompt.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-wisdom-aiprompt.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_NetworkManager_DirectConnectGatewayAttachment": { + "type": "object", + "markdownDescription": "AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-directconnectgatewayattachment.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::NetworkManager::DirectConnectGatewayAttachment" + ], + "markdownEnumDescriptions": [ + "AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-directconnectgatewayattachment.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-networkmanager-directconnectgatewayattachment.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_NetworkManager_ConnectAttachment": { + "type": "object", + "markdownDescription": "AWS::NetworkManager::ConnectAttachment Resource Type Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectattachment.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::NetworkManager::ConnectAttachment" + ], + "markdownEnumDescriptions": [ + "AWS::NetworkManager::ConnectAttachment Resource Type Definition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-connectattachment.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-networkmanager-connectattachment.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_LakeFormation_PrincipalPermissions": { + "type": "object", + "markdownDescription": "The ``AWS::LakeFormation::PrincipalPermissions`` resource represents the permissions that a principal has on a GLUDC resource (such as GLUlong databases or GLUlong tables). When you create a ``PrincipalPermissions`` resource, the permissions are granted via the LFlong``GrantPermissions`` API operation. When you delete a ``PrincipalPermissions`` resource, the permissions on principal-resource pair are revoked via the LFlong``RevokePermissions`` API operation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-principalpermissions.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::LakeFormation::PrincipalPermissions" + ], + "markdownEnumDescriptions": [ + "The ``AWS::LakeFormation::PrincipalPermissions`` resource represents the permissions that a principal has on a GLUDC resource (such as GLUlong databases or GLUlong tables). When you create a ``PrincipalPermissions`` resource, the permissions are granted via the LFlong``GrantPermissions`` API operation. When you delete a ``PrincipalPermissions`` resource, the permissions on principal-resource pair are revoked via the LFlong``RevokePermissions`` API operation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-principalpermissions.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-lakeformation-principalpermissions.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SecurityAgent_Pentest": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::SecurityAgent::Pentest \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-pentest.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SecurityAgent::Pentest" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::SecurityAgent::Pentest \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityagent-pentest.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-securityagent-pentest.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Evidently_Project": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Evidently::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Evidently::Project" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Evidently::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-evidently-project.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_AppStream_Application": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::AppStream::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::AppStream::Application" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::AppStream::Application \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-appstream-application.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_BedrockAgentCore_BrowserProfile": { + "type": "object", + "markdownDescription": "Resource definition for AWS::BedrockAgentCore::BrowserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browserprofile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::BedrockAgentCore::BrowserProfile" + ], + "markdownEnumDescriptions": [ + "Resource definition for AWS::BedrockAgentCore::BrowserProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browserprofile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrockagentcore-browserprofile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DynamoDB_GlobalTable": { + "type": "object", + "markdownDescription": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DynamoDB::GlobalTable" + ], + "markdownEnumDescriptions": [ + "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-dynamodb-globaltable.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CloudFormation_ResourceDefaultVersion": { + "type": "object", + "markdownDescription": "The default version of a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CloudFormation::ResourceDefaultVersion" + ], + "markdownEnumDescriptions": [ + "The default version of a resource that has been registered in the CloudFormation Registry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cloudformation-resourcedefaultversion.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_GameLift_Script": { + "type": "object", + "markdownDescription": "The AWS::GameLift::Script resource creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::GameLift::Script" + ], + "markdownEnumDescriptions": [ + "The AWS::GameLift::Script resource creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-gamelift-script.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_VpcLattice_DomainVerification": { + "type": "object", + "markdownDescription": "Creates a Lattice Domain Verification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-domainverification.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::VpcLattice::DomainVerification" + ], + "markdownEnumDescriptions": [ + "Creates a Lattice Domain Verification \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-domainverification.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-vpclattice-domainverification.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Bedrock_AutomatedReasoningPolicy": { + "type": "object", + "markdownDescription": "Definition of AWS::Bedrock::AutomatedReasoningPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicy.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Bedrock::AutomatedReasoningPolicy" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::Bedrock::AutomatedReasoningPolicy Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicy.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrock-automatedreasoningpolicy.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Notifications_ManagedNotificationAccountContactAssociation": { + "type": "object", + "markdownDescription": "Resource Type definition for ManagedNotificationAccountContactAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationaccountcontactassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Notifications::ManagedNotificationAccountContactAssociation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for ManagedNotificationAccountContactAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-notifications-managednotificationaccountcontactassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-notifications-managednotificationaccountcontactassociation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Macie_FindingsFilter": { + "type": "object", + "markdownDescription": "Macie FindingsFilter resource schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Macie::FindingsFilter" + ], + "markdownEnumDescriptions": [ + "Macie FindingsFilter resource schema. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-macie-findingsfilter.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SecurityHub_Hub": { + "type": "object", + "markdownDescription": "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 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SecurityHub::Hub" + ], + "markdownEnumDescriptions": [ + "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 \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-securityhub-hub.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IVS_Channel": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::IVS::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IVS::Channel" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::IVS::Channel \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ivs-channel.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_QuickSight_Analysis": { + "type": "object", + "markdownDescription": "Definition of the AWS::QuickSight::Analysis Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-analysis.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::QuickSight::Analysis" + ], + "markdownEnumDescriptions": [ + "Definition of the AWS::QuickSight::Analysis Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-analysis.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-quicksight-analysis.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Greengrass_ConnectorDefinition": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Greengrass::ConnectorDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Greengrass::ConnectorDefinition" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Greengrass::ConnectorDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-greengrass-connectordefinition.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_ClientVpnEndpoint": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::EC2::ClientVpnEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::ClientVpnEndpoint" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::EC2::ClientVpnEndpoint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-clientvpnendpoint.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_BedrockAgentCore_ApiKeyCredentialProvider": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::ApiKeyCredentialProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-apikeycredentialprovider.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::BedrockAgentCore::ApiKeyCredentialProvider" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::BedrockAgentCore::ApiKeyCredentialProvider \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-apikeycredentialprovider.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrockagentcore-apikeycredentialprovider.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_IAM_User": { + "type": "object", + "markdownDescription": "Creates a new IAM user for your AWS-account.\n For information about quotas for the number of IAM users you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::IAM::User" + ], + "markdownEnumDescriptions": [ + "Creates a new IAM user for your AWS-account.\n For information about quotas for the number of IAM users you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-iam-user.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SSMQuickSetup_ConfigurationManager": { + "type": "object", + "markdownDescription": "Definition of AWS::SSMQuickSetup::ConfigurationManager Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-configurationmanager.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SSMQuickSetup::ConfigurationManager" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::SSMQuickSetup::ConfigurationManager Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-configurationmanager.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ssmquicksetup-configurationmanager.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Omics_AnnotationStore": { + "type": "object", + "markdownDescription": "Definition of AWS::Omics::AnnotationStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-annotationstore.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Omics::AnnotationStore" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::Omics::AnnotationStore Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-annotationstore.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-omics-annotationstore.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_ElementalInference_Feed": { + "type": "object", + "markdownDescription": "Represents a feed that receives media for inference processing \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elementalinference-feed.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ElementalInference::Feed" + ], + "markdownEnumDescriptions": [ + "Represents a feed that receives media for inference processing \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elementalinference-feed.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-elementalinference-feed.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_NetworkManager_CustomerGatewayAssociation": { + "type": "object", + "markdownDescription": "The AWS::NetworkManager::CustomerGatewayAssociation type associates a customer gateway with a device and optionally, with a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::NetworkManager::CustomerGatewayAssociation" + ], + "markdownEnumDescriptions": [ + "The AWS::NetworkManager::CustomerGatewayAssociation type associates a customer gateway with a device and optionally, with a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-networkmanager-customergatewayassociation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Redshift_Cluster": { + "type": "object", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Redshift::Cluster" + ], + "markdownEnumDescriptions": [ + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-redshift-cluster.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_FSx_DataRepositoryAssociation": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::FSx::DataRepositoryAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::FSx::DataRepositoryAssociation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-fsx-datarepositoryassociation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CodeBuild_Project": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::CodeBuild::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CodeBuild::Project" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::CodeBuild::Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-codebuild-project.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_NetworkManager_TransitGatewayPeering": { + "type": "object", + "markdownDescription": "AWS::NetworkManager::TransitGatewayPeering Resoruce Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewaypeering.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::NetworkManager::TransitGatewayPeering" + ], + "markdownEnumDescriptions": [ + "AWS::NetworkManager::TransitGatewayPeering Resoruce Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewaypeering.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-networkmanager-transitgatewaypeering.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_ECS_DaemonTaskDefinition": { + "type": "object", + "markdownDescription": "The details of a daemon task definition. A daemon task definition is a template that describes the containers that form a daemon. Daemons deploy cross-cutting software agents independently across your Amazon ECS infrastructure. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-daemontaskdefinition.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ECS::DaemonTaskDefinition" + ], + "markdownEnumDescriptions": [ + "The details of a daemon task definition. A daemon task definition is a template that describes the containers that form a daemon. Daemons deploy cross-cutting software agents independently across your Amazon ECS infrastructure. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-daemontaskdefinition.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ecs-daemontaskdefinition.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DataSync_LocationFSxLustre": { + "type": "object", + "markdownDescription": "Resource schema for AWS::DataSync::LocationFSxLustre. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxlustre.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DataSync::LocationFSxLustre" + ], + "markdownEnumDescriptions": [ + "Resource schema for AWS::DataSync::LocationFSxLustre. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxlustre.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-datasync-locationfsxlustre.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_CapacityReservation": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::EC2::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::CapacityReservation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::EC2::CapacityReservation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-capacityreservation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SecurityHub_PolicyAssociation": { + "type": "object", + "markdownDescription": "The AWS::SecurityHub::PolicyAssociation resource represents the AWS Security Hub Central Configuration Policy associations in your Target. Only the AWS Security Hub delegated administrator can create the resouce from the home region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-policyassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SecurityHub::PolicyAssociation" + ], + "markdownEnumDescriptions": [ + "The AWS::SecurityHub::PolicyAssociation resource represents the AWS Security Hub Central Configuration Policy associations in your Target. Only the AWS Security Hub delegated administrator can create the resouce from the home region. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-policyassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-securityhub-policyassociation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_FraudDetector_Outcome": { + "type": "object", + "markdownDescription": "An outcome for rule evaluation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::FraudDetector::Outcome" + ], + "markdownEnumDescriptions": [ + "An outcome for rule evaluation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-frauddetector-outcome.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Lambda_Version": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Lambda::Version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Lambda::Version" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Lambda::Version \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-lambda-version.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_VPNGatewayRoutePropagation": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::EC2::VPNGatewayRoutePropagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngatewayroutepropagation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::VPNGatewayRoutePropagation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::EC2::VPNGatewayRoutePropagation \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngatewayroutepropagation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-vpngatewayroutepropagation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_AppConfig_ExtensionAssociation": { + "type": "object", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::AppConfig::ExtensionAssociation" + ], + "markdownEnumDescriptions": [ + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-appconfig-extensionassociation.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_MediaTailor_LiveSource": { + "type": "object", + "markdownDescription": "Definition of AWS::MediaTailor::LiveSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-livesource.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::MediaTailor::LiveSource" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::MediaTailor::LiveSource Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-livesource.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-mediatailor-livesource.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CodeCommit_Repository": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::CodeCommit::Repository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CodeCommit::Repository" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::CodeCommit::Repository \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-codecommit-repository.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CleanRooms_PrivacyBudgetTemplate": { + "type": "object", + "markdownDescription": "Represents a privacy budget within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CleanRooms::PrivacyBudgetTemplate" + ], + "markdownEnumDescriptions": [ + "Represents a privacy budget within a collaboration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cleanrooms-privacybudgettemplate.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EKS_AccessEntry": { + "type": "object", + "markdownDescription": "An object representing an Amazon EKS AccessEntry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-accessentry.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EKS::AccessEntry" + ], + "markdownEnumDescriptions": [ + "An object representing an Amazon EKS AccessEntry. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-accessentry.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-eks-accessentry.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Events_Archive": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Events::Archive \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Events::Archive" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Events::Archive \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-events-archive.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_AppConfig_ConfigurationProfile": { + "type": "object", + "markdownDescription": "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::AppConfig::ConfigurationProfile" + ], + "markdownEnumDescriptions": [ + "An example resource schema demonstrating some basic constructs and validation rules. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-appconfig-configurationprofile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Kinesis_Stream": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Kinesis::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Kinesis::Stream" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Kinesis::Stream \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-kinesis-stream.json" + } + }, + "required": [ + "Type" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CodeConnections_Connection": { + "type": "object", + "markdownDescription": "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CodeConnections::Connection" + ], + "markdownEnumDescriptions": [ + "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-codeconnections-connection.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Greengrass_FunctionDefinitionVersion": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Greengrass::FunctionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Greengrass::FunctionDefinitionVersion" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Greengrass::FunctionDefinitionVersion \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-greengrass-functiondefinitionversion.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CloudTrail_ResourcePolicy": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::CloudTrail::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-resourcepolicy.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CloudTrail::ResourcePolicy" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::CloudTrail::ResourcePolicy \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-resourcepolicy.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cloudtrail-resourcepolicy.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Logs_QueryDefinition": { + "type": "object", + "markdownDescription": "The resource schema for AWSLogs QueryDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Logs::QueryDefinition" + ], + "markdownEnumDescriptions": [ + "The resource schema for AWSLogs QueryDefinition \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-logs-querydefinition.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Macie_CustomDataIdentifier": { + "type": "object", + "markdownDescription": "Macie CustomDataIdentifier resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Macie::CustomDataIdentifier" + ], + "markdownEnumDescriptions": [ + "Macie CustomDataIdentifier resource schema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-macie-customdataidentifier.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_RoboMaker_RobotApplication": { + "type": "object", + "markdownDescription": "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RoboMaker::RobotApplication" + ], + "markdownEnumDescriptions": [ + "This schema is for testing purpose only. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-robomaker-robotapplication.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Connect_View": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Connect::View \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-view.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Connect::View" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Connect::View \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-view.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-connect-view.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SecurityHub_FindingAggregator": { + "type": "object", + "markdownDescription": "The ``AWS::SecurityHub::FindingAggregator`` resource enables cross-Region aggregation. When cross-Region aggregation is enabled, you can aggregate findings, finding updates, insights, control compliance statuses, and security scores from one or more linked Regions to a single aggregation Region. You can then view and manage all of this data from the aggregation Region. For more details about cross-Region aggregation, see [Cross-Region aggregation](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html) in the *User Guide*\n This resource must be created in the Region that you want to designate as your aggregation Region.\n Cross-Region aggregation is also a prerequisite for using [central configuration](https://docs.aws.amazon.com/securityhub/latest/userguide/central-configuration-intro.html) in ASH. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-findingaggregator.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SecurityHub::FindingAggregator" + ], + "markdownEnumDescriptions": [ + "The ``AWS::SecurityHub::FindingAggregator`` resource enables cross-Region aggregation. When cross-Region aggregation is enabled, you can aggregate findings, finding updates, insights, control compliance statuses, and security scores from one or more linked Regions to a single aggregation Region. You can then view and manage all of this data from the aggregation Region. For more details about cross-Region aggregation, see [Cross-Region aggregation](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html) in the *User Guide*\n This resource must be created in the Region that you want to designate as your aggregation Region.\n Cross-Region aggregation is also a prerequisite for using [central configuration](https://docs.aws.amazon.com/securityhub/latest/userguide/central-configuration-intro.html) in ASH. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-findingaggregator.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-securityhub-findingaggregator.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_SSMIncidents_ReplicationSet": { + "type": "object", + "markdownDescription": "Resource type definition for AWS::SSMIncidents::ReplicationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-replicationset.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SSMIncidents::ReplicationSet" + ], + "markdownEnumDescriptions": [ + "Resource type definition for AWS::SSMIncidents::ReplicationSet \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmincidents-replicationset.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ssmincidents-replicationset.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_GameLift_ContainerGroupDefinition": { + "type": "object", + "markdownDescription": "The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::GameLift::ContainerGroupDefinition" + ], + "markdownEnumDescriptions": [ + "The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-gamelift-containergroupdefinition.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Connect_RoutingProfile": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Connect::RoutingProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Connect::RoutingProfile" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Connect::RoutingProfile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-connect-routingprofile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Config_StoredQuery": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Config::StoredQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Config::StoredQuery" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Config::StoredQuery \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-config-storedquery.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Route53Profiles_Profile": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Route53Profiles::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Route53Profiles::Profile" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Route53Profiles::Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53profiles-profile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-route53profiles-profile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_Cognito_IdentityPoolPrincipalTag": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Cognito::IdentityPoolPrincipalTag \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolprincipaltag.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Cognito::IdentityPoolPrincipalTag" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Cognito::IdentityPoolPrincipalTag \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolprincipaltag.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-cognito-identitypoolprincipaltag.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DAX_Cluster": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::DAX::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DAX::Cluster" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::DAX::Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-dax-cluster.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_RolesAnywhere_CRL": { + "type": "object", + "markdownDescription": "Definition of AWS::RolesAnywhere::CRL Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-crl.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RolesAnywhere::CRL" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::RolesAnywhere::CRL Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-crl.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-rolesanywhere-crl.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_AppSync_GraphQLSchema": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::AppSync::GraphQLSchema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::AppSync::GraphQLSchema" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::AppSync::GraphQLSchema \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-appsync-graphqlschema.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_EC2_VPCEndpointServicePermissions": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::EC2::VPCEndpointServicePermissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::VPCEndpointServicePermissions" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::EC2::VPCEndpointServicePermissions \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-vpcendpointservicepermissions.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DeviceFarm_Project": { + "type": "object", + "markdownDescription": "Resource Type definition for a Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-project.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DeviceFarm::Project" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for a Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-project.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-devicefarm-project.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DeviceFarm_NetworkProfile": { + "type": "object", + "markdownDescription": "Resource Type definition for a Device Farm Network Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-networkprofile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DeviceFarm::NetworkProfile" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for a Device Farm Network Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-networkprofile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-devicefarm-networkprofile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DeviceFarm_VPCEConfiguration": { + "type": "object", + "markdownDescription": "Resource Type definition for a Device Farm VPCE Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-vpceconfiguration.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DeviceFarm::VPCEConfiguration" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for a Device Farm VPCE Configuration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-vpceconfiguration.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-devicefarm-vpceconfiguration.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_GameLiftStreams_StreamGroup": { + "type": "object", + "markdownDescription": "Definition of AWS::GameLiftStreams::StreamGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-streamgroup.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::GameLiftStreams::StreamGroup" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::GameLiftStreams::StreamGroup Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-streamgroup.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-gameliftstreams-streamgroup.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_GameLiftStreams_Application": { + "type": "object", + "markdownDescription": "Definition of AWS::GameLiftStreams::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-application.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::GameLiftStreams::Application" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::GameLiftStreams::Application Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gameliftstreams-application.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-gameliftstreams-application.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DeviceFarm_DevicePool": { + "type": "object", + "markdownDescription": "Resource Type definition for a Device Pool for a given Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-devicepool.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DeviceFarm::DevicePool" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for a Device Pool for a given Device Farm Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-devicepool.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-devicefarm-devicepool.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DeviceFarm_InstanceProfile": { + "type": "object", + "markdownDescription": "Resource Type definition for a Device Farm Instance Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-instanceprofile.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DeviceFarm::InstanceProfile" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for a Device Farm Instance Profile \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-instanceprofile.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-devicefarm-instanceprofile.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_CustomerProfiles_DomainObjectType": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::CustomerProfiles::DomainObjectType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domainobjecttype.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::CustomerProfiles::DomainObjectType" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::CustomerProfiles::DomainObjectType \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domainobjecttype.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-customerprofiles-domainobjecttype.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, + "AWS_DeviceFarm_TestGridProject": { + "type": "object", + "markdownDescription": "Resource Type definition for a Device Farm TestGrid Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-testgridproject.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::DeviceFarm::TestGridProject" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for a Device Farm TestGrid Project \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devicefarm-testgridproject.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-devicefarm-testgridproject.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + } + }, + "properties": { + "Resources": { + "type": "object", + "additionalProperties": false, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]{1,255}$": { + "oneOf": [ + { + "$ref": "#/definitions/CustomResource" + }, + { + "$ref": "#/definitions/AWS_NetworkFirewall_TLSInspectionConfiguration" + }, + { + "$ref": "#/definitions/AWS_RDS_DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS_FIS_ExperimentTemplate" + }, + { + "$ref": "#/definitions/AWS_Route53_DNSSEC" + }, + { + "$ref": "#/definitions/AWS_Wisdom_AIGuardrailVersion" + }, + { + "$ref": "#/definitions/AWS_EMRContainers_VirtualCluster" + }, + { + "$ref": "#/definitions/AWS_AppRunner_Service" + }, + { + "$ref": "#/definitions/AWS_PCS_Cluster" + }, + { + "$ref": "#/definitions/AWS_Greengrass_CoreDefinition" + }, + { + "$ref": "#/definitions/AWS_Route53Resolver_ResolverDNSSECConfig" + }, + { + "$ref": "#/definitions/AWS_WAF_IPSet" + }, + { + "$ref": "#/definitions/AWS_RDS_CustomDBEngineVersion" + }, + { + "$ref": "#/definitions/AWS_S3Outposts_AccessPoint" + }, + { + "$ref": "#/definitions/AWS_WAFRegional_SqlInjectionMatchSet" + }, + { + "$ref": "#/definitions/AWS_CloudFront_VpcOrigin" + }, + { + "$ref": "#/definitions/AWS_DocDB_DBInstance" + }, + { + "$ref": "#/definitions/AWS_AppSync_Api" + }, + { + "$ref": "#/definitions/AWS_Timestream_ScheduledQuery" + }, + { + "$ref": "#/definitions/AWS_DevOpsAgent_Association" + }, + { + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_TrustStoreRevocation" + }, + { + "$ref": "#/definitions/AWS_EC2_RouteServerPeer" + }, + { + "$ref": "#/definitions/AWS_EC2_NetworkAclEntry" + }, + { + "$ref": "#/definitions/AWS_MPA_IdentitySource" + }, + { + "$ref": "#/definitions/AWS_Connect_DataTableAttribute" + }, + { + "$ref": "#/definitions/AWS_Route53RecoveryControl_SafetyRule" + }, + { + "$ref": "#/definitions/AWS_SageMaker_FeatureGroup" + }, + { + "$ref": "#/definitions/AWS_MediaLive_Input" + }, + { + "$ref": "#/definitions/AWS_KinesisAnalyticsV2_ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS_AutoScaling_ScalingPolicy" + }, + { + "$ref": "#/definitions/AWS_MWAAServerless_Workflow" + }, + { + "$ref": "#/definitions/AWS_CodeArtifact_PackageGroup" + }, + { + "$ref": "#/definitions/AWS_EC2_VPNConnectionRoute" + }, + { + "$ref": "#/definitions/AWS_GameLift_Location" }, { - "$ref": "#/definitions/AWS_SES_MailManagerAddonInstance" + "$ref": "#/definitions/AWS_Greengrass_SubscriptionDefinitionVersion" }, { - "$ref": "#/definitions/AWS_Wisdom_AIAgentVersion" + "$ref": "#/definitions/AWS_Cases_Field" }, { - "$ref": "#/definitions/AWS_CloudTrail_Trail" + "$ref": "#/definitions/AWS_DataBrew_Dataset" }, { - "$ref": "#/definitions/AWS_FSx_FileSystem" + "$ref": "#/definitions/AWS_MediaStore_Container" }, { - "$ref": "#/definitions/AWS_SageMaker_DeviceFleet" + "$ref": "#/definitions/AWS_Glue_Crawler" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastDomainAssociation" + "$ref": "#/definitions/AWS_GroundStation_Config" }, { - "$ref": "#/definitions/AWS_AppStream_DirectoryConfig" + "$ref": "#/definitions/AWS_NetworkManager_VpcAttachment" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_ServiceAction" + "$ref": "#/definitions/AWS_Glue_Database" }, { - "$ref": "#/definitions/AWS_Logs_ResourcePolicy" + "$ref": "#/definitions/AWS_IoT_ThingGroup" }, { - "$ref": "#/definitions/AWS_GuardDuty_IPSet" + "$ref": "#/definitions/AWS_Events_Rule" }, { - "$ref": "#/definitions/AWS_EKS_Nodegroup" + "$ref": "#/definitions/AWS_WAF_ByteMatchSet" }, { - "$ref": "#/definitions/AWS_EC2_Subnet" + "$ref": "#/definitions/AWS_DataBrew_Recipe" }, { - "$ref": "#/definitions/AWS_AppTest_TestCase" + "$ref": "#/definitions/AWS_Location_GeofenceCollection" }, { - "$ref": "#/definitions/AWS_Detective_Graph" + "$ref": "#/definitions/AWS_EC2_VPCPeeringConnection" }, { - "$ref": "#/definitions/AWS_EC2_VPNConnectionRoute" + "$ref": "#/definitions/AWS_EC2_EgressOnlyInternetGateway" }, { - "$ref": "#/definitions/AWS_ImageBuilder_ContainerRecipe" + "$ref": "#/definitions/AWS_EventSchemas_Schema" }, { - "$ref": "#/definitions/AWS_Shield_ProtectionGroup" + "$ref": "#/definitions/AWS_Omics_WorkflowVersion" }, { - "$ref": "#/definitions/AWS_IoTWireless_Destination" + "$ref": "#/definitions/Alexa_ASK_Skill" }, { - "$ref": "#/definitions/AWS_NetworkManager_GlobalNetwork" + "$ref": "#/definitions/AWS_NetworkFirewall_RuleGroup" }, { - "$ref": "#/definitions/AWS_MSK_BatchScramSecret" + "$ref": "#/definitions/AWS_SSMContacts_Rotation" }, { - "$ref": "#/definitions/AWS_Pinpoint_EmailTemplate" + "$ref": "#/definitions/AWS_S3Files_MountTarget" }, { - "$ref": "#/definitions/AWS_Notifications_ManagedNotificationAccountContactAssociation" + "$ref": "#/definitions/AWS_ApiGateway_Deployment" }, { - "$ref": "#/definitions/AWS_Athena_CapacityReservation" + "$ref": "#/definitions/AWS_CloudFormation_HookVersion" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_CloudFormationProvisionedProduct" + "$ref": "#/definitions/AWS_Greengrass_GroupVersion" }, { - "$ref": "#/definitions/AWS_Omics_RunGroup" + "$ref": "#/definitions/AWS_EC2_SecurityGroupEgress" }, { - "$ref": "#/definitions/AWS_PinpointEmail_ConfigurationSet" + "$ref": "#/definitions/AWS_Connect_EvaluationForm" }, { - "$ref": "#/definitions/AWS_S3Tables_TableBucketPolicy" + "$ref": "#/definitions/AWS_EC2_TransitGatewayRouteTableAssociation" }, { - "$ref": "#/definitions/AWS_EC2_LocalGatewayRoute" + "$ref": "#/definitions/AWS_DataSync_LocationS3" }, { - "$ref": "#/definitions/AWS_EC2_VPC" + "$ref": "#/definitions/AWS_DataZone_SubscriptionTarget" }, { - "$ref": "#/definitions/AWS_IoT_ResourceSpecificLogging" + "$ref": "#/definitions/AWS_ApiGateway_Method" }, { - "$ref": "#/definitions/AWS_DevOpsGuru_LogAnomalyDetectionIntegration" + "$ref": "#/definitions/AWS_EC2_EIPAssociation" }, { - "$ref": "#/definitions/AWS_NetworkManager_VpcAttachment" + "$ref": "#/definitions/AWS_ServiceCatalog_LaunchTemplateConstraint" }, { - "$ref": "#/definitions/AWS_DevOpsGuru_ResourceCollection" + "$ref": "#/definitions/AWS_RDS_OptionGroup" }, { - "$ref": "#/definitions/AWS_WAF_XssMatchSet" + "$ref": "#/definitions/AWS_Detective_MemberInvitation" }, { - "$ref": "#/definitions/AWS_Amplify_Branch" + "$ref": "#/definitions/AWS_MSK_ClusterPolicy" }, { - "$ref": "#/definitions/AWS_Bedrock_AgentAlias" + "$ref": "#/definitions/AWS_Route53Resolver_FirewallDomainList" }, { - "$ref": "#/definitions/AWS_QBusiness_WebExperience" + "$ref": "#/definitions/AWS_Config_ConfigRule" }, { - "$ref": "#/definitions/AWS_Redshift_ClusterSecurityGroupIngress" + "$ref": "#/definitions/AWS_DMS_EventSubscription" }, { - "$ref": "#/definitions/AWS_MediaConnect_FlowVpcInterface" + "$ref": "#/definitions/AWS_EC2_NetworkAcl" }, { - "$ref": "#/definitions/AWS_Greengrass_ConnectorDefinitionVersion" + "$ref": "#/definitions/AWS_ECS_CapacityProvider" }, { - "$ref": "#/definitions/AWS_IAM_User" + "$ref": "#/definitions/AWS_Rbin_Rule" }, { - "$ref": "#/definitions/AWS_AppConfig_Extension" + "$ref": "#/definitions/AWS_EC2_VPCEndpointService" }, { - "$ref": "#/definitions/AWS_ARCRegionSwitch_Plan" + "$ref": "#/definitions/AWS_QuickSight_Topic" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInsightsAccessScope" + "$ref": "#/definitions/AWS_S3Tables_TablePolicy" }, { - "$ref": "#/definitions/AWS_ElastiCache_SecurityGroupIngress" + "$ref": "#/definitions/AWS_Location_PlaceIndex" }, { - "$ref": "#/definitions/AWS_IoTTwinMaker_Entity" + "$ref": "#/definitions/AWS_VpcLattice_AuthPolicy" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_SecurityPolicy" + "$ref": "#/definitions/AWS_Backup_RestoreTestingSelection" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastGroupMember" + "$ref": "#/definitions/AWS_EC2_RouteServerAssociation" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_LifecyclePolicy" + "$ref": "#/definitions/AWS_SSMIncidents_ResponsePlan" }, { - "$ref": "#/definitions/AWS_KinesisAnalytics_ApplicationOutput" + "$ref": "#/definitions/AWS_EC2_VolumeAttachment" }, { - "$ref": "#/definitions/AWS_CloudTrail_Dashboard" + "$ref": "#/definitions/AWS_Glue_Schema" }, { - "$ref": "#/definitions/AWS_WAFv2_RegexPatternSet" + "$ref": "#/definitions/AWS_Wisdom_MessageTemplate" }, { - "$ref": "#/definitions/AWS_CodeBuild_Fleet" + "$ref": "#/definitions/AWS_AppIntegrations_EventIntegration" }, { - "$ref": "#/definitions/AWS_Glue_DataQualityRuleset" + "$ref": "#/definitions/AWS_CodeArtifact_Repository" }, { - "$ref": "#/definitions/AWS_Redshift_Integration" + "$ref": "#/definitions/AWS_FMS_ResourceSet" }, { - "$ref": "#/definitions/AWS_Greengrass_ResourceDefinitionVersion" + "$ref": "#/definitions/AWS_Deadline_LicenseEndpoint" }, { - "$ref": "#/definitions/AWS_SMSVOICE_SenderId" + "$ref": "#/definitions/AWS_MediaPackage_PackagingConfiguration" }, { - "$ref": "#/definitions/AWS_AmazonMQ_Configuration" + "$ref": "#/definitions/AWS_ServiceCatalog_ResourceUpdateConstraint" }, { - "$ref": "#/definitions/AWS_Bedrock_FlowVersion" + "$ref": "#/definitions/AWS_Deadline_StorageProfile" }, { - "$ref": "#/definitions/AWS_Logs_Transformer" + "$ref": "#/definitions/AWS_S3_BucketPolicy" }, { - "$ref": "#/definitions/AWS_Greengrass_FunctionDefinitionVersion" + "$ref": "#/definitions/AWS_MediaLive_EventBridgeRuleTemplate" }, { - "$ref": "#/definitions/AWS_DataSync_LocationFSxOpenZFS" + "$ref": "#/definitions/AWS_IoTWireless_PartnerAccount" }, { - "$ref": "#/definitions/AWS_Wisdom_KnowledgeBase" + "$ref": "#/definitions/AWS_NetworkManager_Link" }, { - "$ref": "#/definitions/AWS_ACMPCA_CertificateAuthorityActivation" + "$ref": "#/definitions/AWS_SageMaker_InferenceExperiment" }, { - "$ref": "#/definitions/AWS_ServiceDiscovery_Service" + "$ref": "#/definitions/AWS_IAM_VirtualMFADevice" }, { - "$ref": "#/definitions/AWS_Route53RecoveryReadiness_RecoveryGroup" + "$ref": "#/definitions/AWS_Pinpoint_Segment" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_DataProtectionSettings" + "$ref": "#/definitions/AWS_Cognito_IdentityPool" }, { - "$ref": "#/definitions/AWS_AmazonMQ_Broker" + "$ref": "#/definitions/AWS_EntityResolution_SchemaMapping" }, { - "$ref": "#/definitions/AWS_IoT_ProvisioningTemplate" + "$ref": "#/definitions/AWS_Lightsail_Certificate" }, { - "$ref": "#/definitions/AWS_Pinpoint_Campaign" + "$ref": "#/definitions/AWS_DataZone_EnvironmentProfile" }, { - "$ref": "#/definitions/AWS_Lambda_EventInvokeConfig" + "$ref": "#/definitions/AWS_OpenSearchServerless_CollectionGroup" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Deployment" + "$ref": "#/definitions/AWS_KinesisAnalyticsV2_ApplicationCloudWatchLoggingOption" }, { - "$ref": "#/definitions/AWS_Route53Resolver_OutpostResolver" + "$ref": "#/definitions/AWS_MemoryDB_SubnetGroup" }, { - "$ref": "#/definitions/AWS_S3ObjectLambda_AccessPointPolicy" + "$ref": "#/definitions/AWS_SecurityHub_ConnectorV2" }, { - "$ref": "#/definitions/AWS_IoTEvents_DetectorModel" + "$ref": "#/definitions/AWS_CustomerProfiles_ObjectType" }, { - "$ref": "#/definitions/AWS_DataZone_ProjectMembership" + "$ref": "#/definitions/AWS_ECR_RepositoryCreationTemplate" }, { - "$ref": "#/definitions/AWS_RDS_DBSubnetGroup" + "$ref": "#/definitions/AWS_EC2_TransitGatewayMeteringPolicy" }, { - "$ref": "#/definitions/AWS_WAFv2_LoggingConfiguration" + "$ref": "#/definitions/AWS_RDS_DBProxy" }, { - "$ref": "#/definitions/AWS_EC2_ClientVpnEndpoint" + "$ref": "#/definitions/AWS_FMS_NotificationChannel" }, { - "$ref": "#/definitions/AWS_MediaLive_Input" + "$ref": "#/definitions/AWS_Bedrock_PromptVersion" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_CalculatedAttributeDefinition" + "$ref": "#/definitions/AWS_DocDB_DBCluster" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayRoute" + "$ref": "#/definitions/AWS_QBusiness_Application" }, { - "$ref": "#/definitions/AWS_EC2_SubnetCidrBlock" + "$ref": "#/definitions/AWS_Route53_KeySigningKey" }, { - "$ref": "#/definitions/AWS_Greengrass_FunctionDefinition" + "$ref": "#/definitions/AWS_CloudWatch_Alarm" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_AssetModel" + "$ref": "#/definitions/AWS_Kinesis_StreamConsumer" }, { - "$ref": "#/definitions/AWS_IoTAnalytics_Channel" + "$ref": "#/definitions/AWS_MSK_Configuration" }, { - "$ref": "#/definitions/AWS_IAM_Policy" + "$ref": "#/definitions/AWS_DataSync_LocationAzureBlob" }, { - "$ref": "#/definitions/AWS_IVS_PlaybackKeyPair" + "$ref": "#/definitions/AWS_APS_RuleGroupsNamespace" }, { - "$ref": "#/definitions/AWS_Pinpoint_APNSVoipChannel" + "$ref": "#/definitions/AWS_EKS_Cluster" }, { - "$ref": "#/definitions/AWS_MediaLive_Multiplexprogram" + "$ref": "#/definitions/AWS_Lightsail_LoadBalancerTlsCertificate" }, { - "$ref": "#/definitions/AWS_IoT_FleetMetric" + "$ref": "#/definitions/AWS_EC2_LocalGatewayRouteTableVirtualInterfaceGroupAssociation" + }, + { + "$ref": "#/definitions/AWS_BillingConductor_BillingGroup" + }, + { + "$ref": "#/definitions/AWS_ResourceGroups_TagSyncTask" + }, + { + "$ref": "#/definitions/AWS_ACMPCA_CertificateAuthority" + }, + { + "$ref": "#/definitions/AWS_SES_MultiRegionEndpoint" + }, + { + "$ref": "#/definitions/AWS_ServiceDiscovery_Service" }, { "$ref": "#/definitions/AWS_EC2_SecurityGroupIngress" }, { - "$ref": "#/definitions/AWS_DevOpsGuru_NotificationChannel" + "$ref": "#/definitions/AWS_ApiGatewayV2_Stage" }, { - "$ref": "#/definitions/AWS_Route53RecoveryReadiness_ReadinessCheck" + "$ref": "#/definitions/AWS_ApiGateway_BasePathMappingV2" }, { - "$ref": "#/definitions/AWS_MediaConnect_FlowSource" + "$ref": "#/definitions/AWS_Budgets_BudgetsAction" }, { - "$ref": "#/definitions/AWS_NetworkFirewall_LoggingConfiguration" + "$ref": "#/definitions/AWS_SES_MailManagerArchive" }, { - "$ref": "#/definitions/AWS_EC2_FlowLog" + "$ref": "#/definitions/AWS_Wisdom_Assistant" }, { - "$ref": "#/definitions/AWS_KMS_Key" + "$ref": "#/definitions/AWS_ControlTower_EnabledBaseline" }, { - "$ref": "#/definitions/AWS_Connect_TrafficDistributionGroup" + "$ref": "#/definitions/AWS_Route53Profiles_ProfileAssociation" }, { - "$ref": "#/definitions/AWS_NeptuneGraph_Graph" + "$ref": "#/definitions/AWS_Bedrock_ApplicationInferenceProfile" }, { - "$ref": "#/definitions/AWS_Panorama_ApplicationInstance" + "$ref": "#/definitions/AWS_EC2_ClientVpnAuthorizationRule" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_TagOptionAssociation" + "$ref": "#/definitions/AWS_IAM_UserToGroupAddition" }, { - "$ref": "#/definitions/AWS_VpcLattice_Service" + "$ref": "#/definitions/AWS_Lambda_Permission" }, { - "$ref": "#/definitions/AWS_AppSync_GraphQLApi" + "$ref": "#/definitions/AWS_Backup_ReportPlan" }, { - "$ref": "#/definitions/AWS_ARCZonalShift_ZonalAutoshiftConfiguration" + "$ref": "#/definitions/AWS_MSK_Cluster" }, { - "$ref": "#/definitions/AWS_MediaLive_CloudWatchAlarmTemplate" + "$ref": "#/definitions/AWS_InspectorV2_CodeSecurityIntegration" }, { - "$ref": "#/definitions/AWS_CE_AnomalySubscription" + "$ref": "#/definitions/AWS_S3Files_FileSystemPolicy" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_ResourceUpdateConstraint" + "$ref": "#/definitions/AWS_CloudWatch_CompositeAlarm" }, { - "$ref": "#/definitions/AWS_VpcLattice_Rule" + "$ref": "#/definitions/AWS_ECR_SigningConfiguration" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_TargetGroup" + "$ref": "#/definitions/AWS_IoT_TopicRuleDestination" }, { - "$ref": "#/definitions/AWS_S3Outposts_Endpoint" + "$ref": "#/definitions/AWS_CloudFormation_CustomResource" }, { - "$ref": "#/definitions/AWS_Wisdom_MessageTemplate" + "$ref": "#/definitions/AWS_EC2_TransitGatewayPeeringAttachment" }, { - "$ref": "#/definitions/AWS_FMS_ResourceSet" + "$ref": "#/definitions/AWS_Location_APIKey" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_Portal" + "$ref": "#/definitions/AWS_VpcLattice_ServiceNetworkVpcAssociation" }, { - "$ref": "#/definitions/AWS_SMSVOICE_ResourcePolicy" + "$ref": "#/definitions/AWS_EC2_IPAMPrefixListResolver" }, { - "$ref": "#/definitions/AWS_Logs_LogStream" + "$ref": "#/definitions/AWS_Pinpoint_EmailChannel" }, { - "$ref": "#/definitions/AWS_DataSync_LocationHDFS" + "$ref": "#/definitions/AWS_IAM_Role" + }, + { + "$ref": "#/definitions/AWS_EC2_SnapshotBlockPublicAccess" + }, + { + "$ref": "#/definitions/AWS_ApiGatewayV2_VpcLink" }, { "$ref": "#/definitions/AWS_SageMaker_ProcessingJob" }, { - "$ref": "#/definitions/AWS_ApiGateway_BasePathMapping" + "$ref": "#/definitions/AWS_AppStream_StackFleetAssociation" }, { - "$ref": "#/definitions/AWS_Scheduler_ScheduleGroup" + "$ref": "#/definitions/AWS_Lambda_Alias" }, { - "$ref": "#/definitions/AWS_RefactorSpaces_Environment" + "$ref": "#/definitions/AWS_VpcLattice_Rule" }, { - "$ref": "#/definitions/AWS_SSM_PatchBaseline" + "$ref": "#/definitions/AWS_CodePipeline_Webhook" }, { - "$ref": "#/definitions/AWS_IoT_BillingGroup" + "$ref": "#/definitions/AWS_WAFRegional_IPSet" + }, + { + "$ref": "#/definitions/AWS_ServiceCatalog_CloudFormationProvisionedProduct" + }, + { + "$ref": "#/definitions/AWS_SecretsManager_ResourcePolicy" + }, + { + "$ref": "#/definitions/AWS_AmplifyUIBuilder_Theme" + }, + { + "$ref": "#/definitions/AWS_MediaPackage_PackagingGroup" + }, + { + "$ref": "#/definitions/AWS_Cognito_IdentityPoolRoleAttachment" + }, + { + "$ref": "#/definitions/AWS_Redshift_ClusterSubnetGroup" + }, + { + "$ref": "#/definitions/AWS_Pinpoint_GCMChannel" + }, + { + "$ref": "#/definitions/AWS_KinesisVideo_SignalingChannel" + }, + { + "$ref": "#/definitions/AWS_S3Outposts_BucketPolicy" + }, + { + "$ref": "#/definitions/AWS_CodePipeline_CustomActionType" + }, + { + "$ref": "#/definitions/AWS_SSMQuickSetup_LifecycleAutomation" + }, + { + "$ref": "#/definitions/AWS_EMRServerless_Application" + }, + { + "$ref": "#/definitions/AWS_DocDBElastic_Cluster" + }, + { + "$ref": "#/definitions/AWS_RAM_ResourceShare" + }, + { + "$ref": "#/definitions/AWS_EC2_IPAMPrefixListResolverTarget" + }, + { + "$ref": "#/definitions/AWS_Transfer_Connector" + }, + { + "$ref": "#/definitions/AWS_VpcLattice_ServiceNetworkServiceAssociation" + }, + { + "$ref": "#/definitions/AWS_EC2_Route" + }, + { + "$ref": "#/definitions/AWS_Timestream_InfluxDBCluster" + }, + { + "$ref": "#/definitions/AWS_IoT_Authorizer" + }, + { + "$ref": "#/definitions/AWS_StepFunctions_StateMachine" + }, + { + "$ref": "#/definitions/AWS_EFS_AccessPoint" + }, + { + "$ref": "#/definitions/AWS_SecurityHub_AutomationRule" + }, + { + "$ref": "#/definitions/AWS_MSK_VpcConnection" + }, + { + "$ref": "#/definitions/AWS_Neptune_DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS_Notifications_NotificationConfiguration" + }, + { + "$ref": "#/definitions/AWS_IoT_JobTemplate" + }, + { + "$ref": "#/definitions/AWS_WAFRegional_Rule" + }, + { + "$ref": "#/definitions/AWS_OpsWorks_UserProfile" + }, + { + "$ref": "#/definitions/AWS_ObservabilityAdmin_TelemetryRule" + }, + { + "$ref": "#/definitions/AWS_ServiceCatalog_AcceptedPortfolioShare" + }, + { + "$ref": "#/definitions/AWS_RoboMaker_SimulationApplicationVersion" + }, + { + "$ref": "#/definitions/AWS_SES_MailManagerIngressPoint" + }, + { + "$ref": "#/definitions/AWS_Pinpoint_SMSChannel" + }, + { + "$ref": "#/definitions/AWS_PCS_ComputeNodeGroup" + }, + { + "$ref": "#/definitions/AWS_Personalize_Solution" + }, + { + "$ref": "#/definitions/AWS_QLDB_Stream" + }, + { + "$ref": "#/definitions/AWS_SageMaker_MlflowTrackingServer" + }, + { + "$ref": "#/definitions/AWS_Connect_DataTableRecord" + }, + { + "$ref": "#/definitions/AWS_Lightsail_DatabaseSnapshot" + }, + { + "$ref": "#/definitions/AWS_GroundStation_MissionProfile" + }, + { + "$ref": "#/definitions/AWS_SMSVOICE_ConfigurationSet" + }, + { + "$ref": "#/definitions/AWS_Kendra_DataSource" + }, + { + "$ref": "#/definitions/AWS_SQS_Queue" + }, + { + "$ref": "#/definitions/AWS_IoT_SoftwarePackageVersion" + }, + { + "$ref": "#/definitions/AWS_IAM_UserPolicy" + }, + { + "$ref": "#/definitions/AWS_Lambda_Function" + }, + { + "$ref": "#/definitions/AWS_MediaPackage_Asset" + }, + { + "$ref": "#/definitions/AWS_Proton_EnvironmentAccountConnection" + }, + { + "$ref": "#/definitions/AWS_LicenseManager_Grant" + }, + { + "$ref": "#/definitions/AWS_Rekognition_Collection" + }, + { + "$ref": "#/definitions/AWS_ApiGatewayV2_IntegrationResponse" + }, + { + "$ref": "#/definitions/AWS_EFS_MountTarget" + }, + { + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_TrustStore" + }, + { + "$ref": "#/definitions/AWS_AppFlow_Connector" + }, + { + "$ref": "#/definitions/AWS_Neptune_DBCluster" + }, + { + "$ref": "#/definitions/AWS_GameLift_MatchmakingRuleSet" + }, + { + "$ref": "#/definitions/AWS_IoTSiteWise_Asset" + }, + { + "$ref": "#/definitions/AWS_AppConfig_Extension" + }, + { + "$ref": "#/definitions/AWS_Deadline_QueueEnvironment" + }, + { + "$ref": "#/definitions/AWS_SES_MailManagerAddonSubscription" + }, + { + "$ref": "#/definitions/AWS_CloudTrail_Trail" + }, + { + "$ref": "#/definitions/AWS_CloudFormation_Publisher" + }, + { + "$ref": "#/definitions/AWS_ApiGateway_RestApi" + }, + { + "$ref": "#/definitions/AWS_Proton_EnvironmentTemplate" + }, + { + "$ref": "#/definitions/AWS_FraudDetector_Variable" + }, + { + "$ref": "#/definitions/AWS_Bedrock_FlowVersion" + }, + { + "$ref": "#/definitions/AWS_AppMesh_VirtualNode" + }, + { + "$ref": "#/definitions/AWS_ElastiCache_CacheCluster" + }, + { + "$ref": "#/definitions/AWS_IoT_MitigationAction" + }, + { + "$ref": "#/definitions/AWS_Lightsail_Distribution" + }, + { + "$ref": "#/definitions/AWS_MediaConnect_BridgeOutput" + }, + { + "$ref": "#/definitions/AWS_ObservabilityAdmin_OrganizationCentralizationRule" + }, + { + "$ref": "#/definitions/AWS_IoTFleetWise_SignalCatalog" + }, + { + "$ref": "#/definitions/AWS_IoTTwinMaker_Scene" + }, + { + "$ref": "#/definitions/AWS_MediaLive_Multiplexprogram" + }, + { + "$ref": "#/definitions/AWS_DevOpsAgent_Service" + }, + { + "$ref": "#/definitions/AWS_CloudFront_ConnectionFunction" + }, + { + "$ref": "#/definitions/AWS_Connect_Notification" + }, + { + "$ref": "#/definitions/AWS_EC2_Instance" + }, + { + "$ref": "#/definitions/AWS_Bedrock_FlowAlias" + }, + { + "$ref": "#/definitions/AWS_EC2_FlowLog" + }, + { + "$ref": "#/definitions/AWS_DMS_Endpoint" + }, + { + "$ref": "#/definitions/AWS_ServiceDiscovery_PublicDnsNamespace" + }, + { + "$ref": "#/definitions/AWS_ElastiCache_GlobalReplicationGroup" + }, + { + "$ref": "#/definitions/AWS_IoT_SecurityProfile" + }, + { + "$ref": "#/definitions/AWS_ODB_CloudVmCluster" + }, + { + "$ref": "#/definitions/AWS_DMS_InstanceProfile" + }, + { + "$ref": "#/definitions/AWS_EC2_PlacementGroup" }, { - "$ref": "#/definitions/AWS_CleanRoomsML_TrainingDataset" + "$ref": "#/definitions/AWS_IoTSiteWise_Portal" }, { - "$ref": "#/definitions/AWS_SecurityHub_ProductSubscription" + "$ref": "#/definitions/AWS_S3_AccessGrant" }, { - "$ref": "#/definitions/AWS_AppRunner_VpcIngressConnection" + "$ref": "#/definitions/AWS_DevOpsGuru_ResourceCollection" }, { - "$ref": "#/definitions/AWS_Route53Resolver_FirewallRuleGroup" + "$ref": "#/definitions/AWS_SageMaker_DataQualityJobDefinition" }, { - "$ref": "#/definitions/AWS_ResourceExplorer2_DefaultViewAssociation" + "$ref": "#/definitions/AWS_IoT_Certificate" }, { - "$ref": "#/definitions/AWS_CloudFront_CachePolicy" + "$ref": "#/definitions/AWS_ApiGateway_Authorizer" }, { - "$ref": "#/definitions/AWS_MediaTailor_SourceLocation" + "$ref": "#/definitions/AWS_SSO_Assignment" }, { - "$ref": "#/definitions/AWS_EKS_PodIdentityAssociation" + "$ref": "#/definitions/AWS_FIS_TargetAccountConfiguration" }, { - "$ref": "#/definitions/AWS_S3_AccessGrant" + "$ref": "#/definitions/AWS_SMSVOICE_ProtectConfiguration" }, { - "$ref": "#/definitions/AWS_Proton_ServiceTemplate" + "$ref": "#/definitions/AWS_ElastiCache_User" }, { - "$ref": "#/definitions/AWS_Omics_Workflow" + "$ref": "#/definitions/AWS_WorkSpacesWeb_UserSettings" }, { - "$ref": "#/definitions/AWS_Lightsail_StaticIp" + "$ref": "#/definitions/AWS_IoTWireless_WirelessDevice" }, { - "$ref": "#/definitions/AWS_Backup_Framework" + "$ref": "#/definitions/AWS_AppStream_Stack" }, { - "$ref": "#/definitions/AWS_WAFRegional_SizeConstraintSet" + "$ref": "#/definitions/AWS_IoTWireless_FuotaTask" }, { - "$ref": "#/definitions/AWS_MediaConnect_BridgeSource" + "$ref": "#/definitions/AWS_MediaConvert_Preset" }, { - "$ref": "#/definitions/AWS_Redshift_EndpointAuthorization" + "$ref": "#/definitions/AWS_EC2_RouteServerPropagation" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_AccessPolicy" + "$ref": "#/definitions/AWS_DataBrew_Schedule" }, { - "$ref": "#/definitions/AWS_EC2_TrafficMirrorSession" + "$ref": "#/definitions/AWS_AppConfig_Deployment" }, { - "$ref": "#/definitions/AWS_Deadline_QueueEnvironment" + "$ref": "#/definitions/AWS_EC2_NetworkInsightsAccessScope" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_BrowserSettings" + "$ref": "#/definitions/AWS_ECR_PullTimeUpdateExclusion" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolUser" + "$ref": "#/definitions/AWS_SageMaker_Workteam" }, { - "$ref": "#/definitions/AWS_S3_AccessGrantsInstance" + "$ref": "#/definitions/AWS_ODB_OdbPeeringConnection" }, { - "$ref": "#/definitions/AWS_FraudDetector_EntityType" + "$ref": "#/definitions/AWS_SES_ReceiptFilter" }, { - "$ref": "#/definitions/AWS_FraudDetector_Outcome" + "$ref": "#/definitions/AWS_DynamoDB_Table" }, { - "$ref": "#/definitions/AWS_LookoutEquipment_InferenceScheduler" + "$ref": "#/definitions/AWS_CloudWatch_MetricStream" }, { - "$ref": "#/definitions/AWS_GameLift_GameServerGroup" + "$ref": "#/definitions/AWS_EMR_SecurityConfiguration" }, { - "$ref": "#/definitions/AWS_FSx_StorageVirtualMachine" + "$ref": "#/definitions/AWS_DataSync_LocationFSxWindows" }, { - "$ref": "#/definitions/AWS_RoboMaker_SimulationApplication" + "$ref": "#/definitions/AWS_IoTSiteWise_Dashboard" }, { - "$ref": "#/definitions/AWS_Wisdom_AIAgent" + "$ref": "#/definitions/AWS_Pinpoint_APNSVoipChannel" }, { - "$ref": "#/definitions/AWS_GuardDuty_Detector" + "$ref": "#/definitions/AWS_Connect_Workspace" }, { - "$ref": "#/definitions/AWS_Greengrass_ConnectorDefinition" + "$ref": "#/definitions/AWS_EC2_VPCDHCPOptionsAssociation" }, { - "$ref": "#/definitions/AWS_SES_Template" + "$ref": "#/definitions/AWS_SageMaker_Project" }, { - "$ref": "#/definitions/AWS_BedrockAgentCore_RuntimeEndpoint" + "$ref": "#/definitions/AWS_DataZone_UserProfile" }, { - "$ref": "#/definitions/AWS_SecurityHub_AutomationRule" + "$ref": "#/definitions/AWS_IVS_StreamKey" }, { - "$ref": "#/definitions/AWS_EC2_LocalGatewayVirtualInterfaceGroup" + "$ref": "#/definitions/AWS_DirectoryService_SimpleAD" }, { - "$ref": "#/definitions/AWS_DataSync_LocationSMB" + "$ref": "#/definitions/AWS_RoboMaker_Robot" }, { - "$ref": "#/definitions/AWS_ElastiCache_ReplicationGroup" + "$ref": "#/definitions/AWS_ElasticBeanstalk_ConfigurationTemplate" }, { - "$ref": "#/definitions/AWS_ApiGateway_Deployment" + "$ref": "#/definitions/AWS_Route53RecoveryReadiness_RecoveryGroup" }, { - "$ref": "#/definitions/AWS_IAM_UserToGroupAddition" + "$ref": "#/definitions/AWS_AppStream_ApplicationFleetAssociation" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Route" + "$ref": "#/definitions/AWS_EC2_VPNGateway" }, { - "$ref": "#/definitions/AWS_AppConfig_DeploymentStrategy" + "$ref": "#/definitions/AWS_SES_MailManagerRuleSet" }, { - "$ref": "#/definitions/AWS_NetworkManager_Device" + "$ref": "#/definitions/AWS_EMR_WALWorkspace" }, { - "$ref": "#/definitions/AWS_DataZone_DataSource" + "$ref": "#/definitions/AWS_Cognito_UserPool" }, { - "$ref": "#/definitions/AWS_CodePipeline_Webhook" + "$ref": "#/definitions/AWS_Lambda_CodeSigningConfig" }, { - "$ref": "#/definitions/AWS_S3Tables_TablePolicy" + "$ref": "#/definitions/AWS_CodeBuild_SourceCredential" }, { - "$ref": "#/definitions/AWS_DirectoryService_MicrosoftAD" + "$ref": "#/definitions/AWS_ApiGateway_GatewayResponse" }, { - "$ref": "#/definitions/AWS_Comprehend_Flywheel" + "$ref": "#/definitions/AWS_DirectoryService_MicrosoftAD" }, { - "$ref": "#/definitions/AWS_ElastiCache_SubnetGroup" + "$ref": "#/definitions/AWS_EC2_NetworkInsightsAccessScopeAnalysis" }, { - "$ref": "#/definitions/AWS_Route53_RecordSet" + "$ref": "#/definitions/AWS_IoTFleetWise_Fleet" }, { - "$ref": "#/definitions/AWS_ECR_RegistryPolicy" + "$ref": "#/definitions/AWS_ODB_CloudExadataInfrastructure" }, { - "$ref": "#/definitions/AWS_WAF_ByteMatchSet" + "$ref": "#/definitions/AWS_Batch_QuotaShare" }, { - "$ref": "#/definitions/AWS_S3_AccessPoint" + "$ref": "#/definitions/AWS_S3Express_DirectoryBucket" }, { - "$ref": "#/definitions/AWS_Organizations_Organization" + "$ref": "#/definitions/AWS_IoT_Logging" }, { - "$ref": "#/definitions/AWS_Connect_UserHierarchyGroup" + "$ref": "#/definitions/AWS_EC2_TrafficMirrorTarget" }, { - "$ref": "#/definitions/AWS_EC2_Volume" + "$ref": "#/definitions/AWS_CloudFront_StreamingDistribution" }, { - "$ref": "#/definitions/AWS_Batch_ServiceEnvironment" + "$ref": "#/definitions/AWS_ECR_ReplicationConfiguration" }, { - "$ref": "#/definitions/AWS_EC2_CapacityReservationFleet" + "$ref": "#/definitions/AWS_Rekognition_Project" }, { - "$ref": "#/definitions/AWS_WAFv2_WebACLAssociation" + "$ref": "#/definitions/AWS_LookoutEquipment_InferenceScheduler" }, { - "$ref": "#/definitions/AWS_ECS_CapacityProvider" + "$ref": "#/definitions/AWS_Pipes_Pipe" }, { - "$ref": "#/definitions/AWS_CodeStarConnections_SyncConfiguration" + "$ref": "#/definitions/AWS_EntityResolution_PolicyStatement" }, { - "$ref": "#/definitions/AWS_EC2_VPCCidrBlock" + "$ref": "#/definitions/AWS_ApiGateway_Account" }, { - "$ref": "#/definitions/AWS_Glue_UsageProfile" + "$ref": "#/definitions/AWS_BedrockAgentCore_OnlineEvaluationConfig" }, { - "$ref": "#/definitions/AWS_EFS_AccessPoint" + "$ref": "#/definitions/AWS_EC2_SecurityGroupVpcAssociation" }, { - "$ref": "#/definitions/AWS_SSM_ResourceDataSync" + "$ref": "#/definitions/AWS_RTBFabric_OutboundExternalLink" }, { - "$ref": "#/definitions/AWS_AppStream_StackUserAssociation" + "$ref": "#/definitions/AWS_MediaConnect_RouterInput" }, { - "$ref": "#/definitions/AWS_EC2_VerifiedAccessEndpoint" + "$ref": "#/definitions/AWS_DevOpsGuru_NotificationChannel" }, { - "$ref": "#/definitions/AWS_ConnectCampaignsV2_Campaign" + "$ref": "#/definitions/AWS_IoT_BillingGroup" }, { - "$ref": "#/definitions/AWS_GuardDuty_ThreatIntelSet" + "$ref": "#/definitions/AWS_S3_MultiRegionAccessPointPolicy" }, { - "$ref": "#/definitions/AWS_SSO_ApplicationAssignment" + "$ref": "#/definitions/AWS_EC2_Volume" }, { - "$ref": "#/definitions/AWS_SES_MailManagerTrafficPolicy" + "$ref": "#/definitions/AWS_EC2_InstanceConnectEndpoint" }, { - "$ref": "#/definitions/AWS_SecretsManager_SecretTargetAttachment" + "$ref": "#/definitions/AWS_RoboMaker_SimulationApplication" }, { - "$ref": "#/definitions/AWS_Batch_JobQueue" + "$ref": "#/definitions/AWS_Cognito_UserPoolGroup" }, { - "$ref": "#/definitions/AWS_KinesisAnalyticsV2_ApplicationReferenceDataSource" + "$ref": "#/definitions/AWS_SecretsManager_SecretTargetAttachment" }, { - "$ref": "#/definitions/AWS_SNS_Topic" + "$ref": "#/definitions/AWS_Greengrass_CoreDefinitionVersion" }, { - "$ref": "#/definitions/AWS_IoT_Thing" + "$ref": "#/definitions/AWS_Deadline_Limit" }, { - "$ref": "#/definitions/AWS_MemoryDB_ParameterGroup" + "$ref": "#/definitions/AWS_BedrockAgentCore_WorkloadIdentity" }, { - "$ref": "#/definitions/AWS_DataZone_Project" + "$ref": "#/definitions/AWS_SecretsManager_Secret" }, { - "$ref": "#/definitions/AWS_ECS_Cluster" + "$ref": "#/definitions/AWS_ApiGateway_Stage" }, { - "$ref": "#/definitions/AWS_RoboMaker_Robot" + "$ref": "#/definitions/AWS_IVSChat_LoggingConfiguration" }, { - "$ref": "#/definitions/AWS_Deadline_Queue" + "$ref": "#/definitions/AWS_Panorama_PackageVersion" }, { - "$ref": "#/definitions/AWS_EntityResolution_IdNamespace" + "$ref": "#/definitions/AWS_SageMaker_ModelCard" }, { - "$ref": "#/definitions/AWS_Route53_HealthCheck" + "$ref": "#/definitions/AWS_EntityResolution_MatchingWorkflow" }, { - "$ref": "#/definitions/AWS_RoboMaker_SimulationApplicationVersion" + "$ref": "#/definitions/AWS_VpcLattice_ServiceNetworkResourceAssociation" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInsightsPath" + "$ref": "#/definitions/AWS_Bedrock_IntelligentPromptRouter" }, { - "$ref": "#/definitions/AWS_ResourceExplorer2_Index" + "$ref": "#/definitions/AWS_PCAConnectorAD_ServicePrincipalName" }, { - "$ref": "#/definitions/AWS_Lambda_Permission" + "$ref": "#/definitions/AWS_ImageBuilder_InfrastructureConfiguration" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_SecurityConfig" + "$ref": "#/definitions/AWS_ECS_Cluster" }, { - "$ref": "#/definitions/AWS_Route53_RecordSetGroup" + "$ref": "#/definitions/AWS_M2_Deployment" }, { - "$ref": "#/definitions/AWS_QBusiness_DataSource" + "$ref": "#/definitions/AWS_Lambda_LayerVersionPermission" }, { - "$ref": "#/definitions/AWS_Oam_Sink" + "$ref": "#/definitions/AWS_QuickSight_DataSource" }, { - "$ref": "#/definitions/AWS_Logs_LogGroup" + "$ref": "#/definitions/AWS_Route53Resolver_ResolverRuleAssociation" }, { - "$ref": "#/definitions/AWS_DMS_DataProvider" + "$ref": "#/definitions/AWS_Organizations_Organization" }, { - "$ref": "#/definitions/AWS_StepFunctions_Activity" + "$ref": "#/definitions/AWS_IoT_Thing" }, { - "$ref": "#/definitions/AWS_Deadline_MeteredProduct" + "$ref": "#/definitions/AWS_FSx_S3AccessPointAttachment" }, { - "$ref": "#/definitions/AWS_Logs_Integration" + "$ref": "#/definitions/AWS_SQS_QueuePolicy" }, { - "$ref": "#/definitions/AWS_PaymentCryptography_Alias" + "$ref": "#/definitions/AWS_MediaLive_Network" }, { - "$ref": "#/definitions/AWS_IoT_PolicyPrincipalAttachment" + "$ref": "#/definitions/AWS_DMS_ReplicationConfig" }, { - "$ref": "#/definitions/AWS_NetworkManager_TransitGatewayRegistration" + "$ref": "#/definitions/AWS_CE_CostCategory" }, { - "$ref": "#/definitions/AWS_SageMaker_NotebookInstanceLifecycleConfig" + "$ref": "#/definitions/AWS_Backup_TieringConfiguration" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Model" + "$ref": "#/definitions/AWS_MediaPackageV2_ChannelGroup" }, { - "$ref": "#/definitions/AWS_EC2_VPCPeeringConnection" + "$ref": "#/definitions/AWS_Bedrock_Flow" }, { - "$ref": "#/definitions/AWS_SDB_Domain" + "$ref": "#/definitions/AWS_AppSync_ApiKey" }, { - "$ref": "#/definitions/AWS_VpcLattice_ServiceNetworkServiceAssociation" + "$ref": "#/definitions/AWS_AppMesh_Route" }, { - "$ref": "#/definitions/AWS_Lightsail_Distribution" + "$ref": "#/definitions/AWS_Lightsail_Instance" }, { - "$ref": "#/definitions/AWS_S3Outposts_BucketPolicy" + "$ref": "#/definitions/AWS_AppRunner_VpcConnector" }, { - "$ref": "#/definitions/AWS_Notifications_ManagedNotificationAdditionalChannelAssociation" + "$ref": "#/definitions/AWS_AppConfig_Environment" }, { - "$ref": "#/definitions/AWS_ConnectCampaigns_Campaign" + "$ref": "#/definitions/AWS_AmazonMQ_Broker" }, { - "$ref": "#/definitions/AWS_CleanRooms_Collaboration" + "$ref": "#/definitions/AWS_DataSync_LocationFSxOpenZFS" }, { - "$ref": "#/definitions/AWS_Redshift_ClusterSubnetGroup" + "$ref": "#/definitions/AWS_Glue_Workflow" }, { - "$ref": "#/definitions/AWS_SES_MailManagerAddressList" + "$ref": "#/definitions/AWS_Oam_Link" }, { - "$ref": "#/definitions/AWS_Lightsail_Disk" + "$ref": "#/definitions/AWS_MediaConnect_Gateway" }, { - "$ref": "#/definitions/AWS_FSx_DataRepositoryAssociation" + "$ref": "#/definitions/AWS_WAFRegional_GeoMatchSet" }, { - "$ref": "#/definitions/AWS_GameLift_MatchmakingConfiguration" + "$ref": "#/definitions/AWS_S3Files_AccessPoint" }, { - "$ref": "#/definitions/AWS_QBusiness_Retriever" + "$ref": "#/definitions/AWS_GameLift_Alias" }, { - "$ref": "#/definitions/AWS_CodeDeploy_DeploymentConfig" + "$ref": "#/definitions/AWS_EC2_IPAMResourceDiscovery" }, { - "$ref": "#/definitions/AWS_EC2_DHCPOptions" + "$ref": "#/definitions/AWS_MemoryDB_Cluster" }, { - "$ref": "#/definitions/AWS_GuardDuty_PublishingDestination" + "$ref": "#/definitions/AWS_Transfer_WebApp" }, { - "$ref": "#/definitions/AWS_Scheduler_Schedule" + "$ref": "#/definitions/AWS_MediaLive_CloudWatchAlarmTemplate" }, { - "$ref": "#/definitions/AWS_WAF_IPSet" + "$ref": "#/definitions/AWS_M2_Environment" }, { - "$ref": "#/definitions/AWS_EC2_ClientVpnRoute" + "$ref": "#/definitions/AWS_OpenSearchService_Domain" }, { - "$ref": "#/definitions/AWS_InspectorV2_CodeSecurityScanConfiguration" + "$ref": "#/definitions/AWS_MediaLive_ChannelPlacementGroup" }, { - "$ref": "#/definitions/AWS_WAFRegional_WebACL" + "$ref": "#/definitions/AWS_Billing_BillingView" }, { - "$ref": "#/definitions/AWS_Athena_NamedQuery" + "$ref": "#/definitions/AWS_DMS_Certificate" }, { - "$ref": "#/definitions/AWS_AppRunner_Service" + "$ref": "#/definitions/AWS_MediaPackageV2_ChannelPolicy" }, { - "$ref": "#/definitions/AWS_AppSync_ApiCache" + "$ref": "#/definitions/AWS_ObservabilityAdmin_TelemetryPipelines" }, { - "$ref": "#/definitions/AWS_ObservabilityAdmin_OrganizationTelemetryRule" + "$ref": "#/definitions/AWS_ResourceExplorer2_DefaultViewAssociation" }, { - "$ref": "#/definitions/AWS_Cognito_IdentityPool" + "$ref": "#/definitions/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus" }, { - "$ref": "#/definitions/AWS_EC2_KeyPair" + "$ref": "#/definitions/AWS_RedshiftServerless_Workgroup" }, { - "$ref": "#/definitions/AWS_PCAConnectorAD_DirectoryRegistration" + "$ref": "#/definitions/AWS_WorkSpaces_ConnectionAlias" }, { - "$ref": "#/definitions/AWS_ApiGateway_BasePathMappingV2" + "$ref": "#/definitions/AWS_Config_OrganizationConformancePack" }, { - "$ref": "#/definitions/AWS_SageMaker_PartnerApp" + "$ref": "#/definitions/AWS_Redshift_ClusterSecurityGroupIngress" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayRouteTablePropagation" + "$ref": "#/definitions/AWS_SSM_MaintenanceWindow" }, { - "$ref": "#/definitions/AWS_ApiGateway_DocumentationPart" + "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastGroupMember" }, { - "$ref": "#/definitions/AWS_MediaConnect_Bridge" + "$ref": "#/definitions/AWS_DataBrew_Project" }, { - "$ref": "#/definitions/AWS_DataBrew_Ruleset" + "$ref": "#/definitions/AWS_Cases_Domain" }, { - "$ref": "#/definitions/AWS_IoT_ScheduledAudit" + "$ref": "#/definitions/AWS_QBusiness_DataAccessor" }, { - "$ref": "#/definitions/AWS_ODB_OdbNetwork" + "$ref": "#/definitions/AWS_CodeDeploy_DeploymentConfig" }, { - "$ref": "#/definitions/AWS_Glue_Crawler" + "$ref": "#/definitions/AWS_WAFv2_RuleGroup" }, { - "$ref": "#/definitions/AWS_AppConfig_Application" + "$ref": "#/definitions/AWS_ResilienceHub_ResiliencyPolicy" }, { - "$ref": "#/definitions/AWS_EMR_InstanceGroupConfig" + "$ref": "#/definitions/AWS_DataBrew_Job" }, { - "$ref": "#/definitions/AWS_CloudFormation_HookDefaultVersion" + "$ref": "#/definitions/AWS_AppSync_GraphQLApi" }, { - "$ref": "#/definitions/AWS_ControlTower_EnabledBaseline" + "$ref": "#/definitions/AWS_CodeDeploy_Application" }, { - "$ref": "#/definitions/AWS_M2_Environment" + "$ref": "#/definitions/AWS_PCAConnectorAD_Connector" }, { - "$ref": "#/definitions/AWS_CleanRooms_PrivacyBudgetTemplate" + "$ref": "#/definitions/AWS_Transfer_Server" }, { - "$ref": "#/definitions/AWS_DMS_Certificate" + "$ref": "#/definitions/AWS_GuardDuty_PublishingDestination" }, { - "$ref": "#/definitions/AWS_SageMaker_ModelCard" + "$ref": "#/definitions/AWS_MediaConnect_BridgeSource" }, { - "$ref": "#/definitions/AWS_GroundStation_Config" + "$ref": "#/definitions/AWS_ARCRegionSwitch_Plan" }, { - "$ref": "#/definitions/AWS_Evidently_Experiment" + "$ref": "#/definitions/AWS_Events_Connection" }, { - "$ref": "#/definitions/AWS_Inspector_AssessmentTemplate" + "$ref": "#/definitions/AWS_SES_ReceiptRuleSet" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_Portfolio" + "$ref": "#/definitions/AWS_Redshift_EndpointAccess" }, { - "$ref": "#/definitions/AWS_IAM_ServiceLinkedRole" + "$ref": "#/definitions/AWS_BCMDataExports_Export" }, { - "$ref": "#/definitions/AWS_CloudFormation_ModuleDefaultVersion" + "$ref": "#/definitions/AWS_SecretsManager_RotationSchedule" }, { - "$ref": "#/definitions/AWS_PCAConnectorAD_Connector" + "$ref": "#/definitions/AWS_Route53Resolver_ResolverConfig" }, { - "$ref": "#/definitions/AWS_Transfer_Agreement" + "$ref": "#/definitions/AWS_EC2_VPCEndpoint" }, { - "$ref": "#/definitions/AWS_EC2_VolumeAttachment" + "$ref": "#/definitions/AWS_Signer_ProfilePermission" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_LaunchRoleConstraint" + "$ref": "#/definitions/AWS_Redshift_ScheduledAction" }, { - "$ref": "#/definitions/AWS_DMS_MigrationProject" + "$ref": "#/definitions/AWS_Route53GlobalResolver_GlobalResolver" }, { - "$ref": "#/definitions/AWS_DataBrew_Schedule" + "$ref": "#/definitions/AWS_QuickSight_ActionConnector" }, { - "$ref": "#/definitions/AWS_PCAConnectorAD_ServicePrincipalName" + "$ref": "#/definitions/AWS_Braket_SpendingLimit" }, { - "$ref": "#/definitions/AWS_Glue_DevEndpoint" + "$ref": "#/definitions/AWS_ApplicationSignals_Discovery" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_Project" + "$ref": "#/definitions/AWS_DMS_MigrationProject" }, { - "$ref": "#/definitions/AWS_Deadline_QueueFleetAssociation" + "$ref": "#/definitions/AWS_PinpointEmail_ConfigurationSet" }, { - "$ref": "#/definitions/AWS_Lightsail_Certificate" + "$ref": "#/definitions/AWS_RDS_DBProxyEndpoint" }, { - "$ref": "#/definitions/AWS_NetworkFirewall_FirewallPolicy" + "$ref": "#/definitions/AWS_OpsWorks_Volume" }, { - "$ref": "#/definitions/AWS_EC2_SecurityGroup" + "$ref": "#/definitions/AWS_Logs_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_DataBrew_Job" + "$ref": "#/definitions/AWS_EC2_LocalGatewayVirtualInterface" }, { - "$ref": "#/definitions/AWS_MediaPackage_OriginEndpoint" + "$ref": "#/definitions/AWS_Glue_SchemaVersion" }, { - "$ref": "#/definitions/AWS_AppMesh_VirtualRouter" + "$ref": "#/definitions/AWS_ElasticLoadBalancing_LoadBalancer" }, { - "$ref": "#/definitions/AWS_LakeFormation_TagAssociation" + "$ref": "#/definitions/AWS_Logs_DeliveryDestination" }, { - "$ref": "#/definitions/AWS_AppFlow_ConnectorProfile" + "$ref": "#/definitions/AWS_IoT_ThingPrincipalAttachment" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_Listener" + "$ref": "#/definitions/AWS_Glue_Table" }, { - "$ref": "#/definitions/AWS_SupportApp_SlackWorkspaceConfiguration" + "$ref": "#/definitions/AWS_NetworkManager_TransitGatewayRouteTableAttachment" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolGroup" + "$ref": "#/definitions/AWS_Config_AggregationAuthorization" }, { - "$ref": "#/definitions/AWS_CloudFormation_Macro" + "$ref": "#/definitions/AWS_EC2_EIP" }, { - "$ref": "#/definitions/AWS_Redshift_EventSubscription" + "$ref": "#/definitions/AWS_FraudDetector_List" }, { - "$ref": "#/definitions/AWS_EC2_SnapshotBlockPublicAccess" + "$ref": "#/definitions/AWS_Lightsail_Alarm" }, { - "$ref": "#/definitions/AWS_DataZone_Domain" + "$ref": "#/definitions/AWS_EC2_IPAM" }, { - "$ref": "#/definitions/AWS_EC2_VerifiedAccessGroup" + "$ref": "#/definitions/AWS_DAX_ParameterGroup" }, { - "$ref": "#/definitions/AWS_S3Tables_Table" + "$ref": "#/definitions/AWS_Bedrock_Agent" }, { - "$ref": "#/definitions/AWS_NetworkFirewall_Firewall" + "$ref": "#/definitions/AWS_AutoScaling_LaunchConfiguration" }, { - "$ref": "#/definitions/AWS_CloudFormation_HookTypeConfig" + "$ref": "#/definitions/AWS_WAFRegional_RegexPatternSet" }, { - "$ref": "#/definitions/AWS_EntityResolution_PolicyStatement" + "$ref": "#/definitions/AWS_EC2_LocalGatewayRouteTable" }, { - "$ref": "#/definitions/AWS_EC2_VPCEndpointServicePermissions" + "$ref": "#/definitions/AWS_Glue_IntegrationResourceProperty" }, { - "$ref": "#/definitions/AWS_DMS_EventSubscription" + "$ref": "#/definitions/AWS_VpcLattice_TargetGroup" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayAttachment" + "$ref": "#/definitions/AWS_HealthImaging_Datastore" }, { - "$ref": "#/definitions/AWS_AppRunner_ObservabilityConfiguration" + "$ref": "#/definitions/AWS_Route53GlobalResolver_AccessSource" }, { - "$ref": "#/definitions/AWS_CodePipeline_CustomActionType" + "$ref": "#/definitions/AWS_S3Express_AccessPoint" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayPeeringAttachment" + "$ref": "#/definitions/AWS_Lex_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_DMS_ReplicationInstance" + "$ref": "#/definitions/AWS_ApiGatewayV2_Deployment" }, { - "$ref": "#/definitions/AWS_SMSVOICE_ConfigurationSet" + "$ref": "#/definitions/AWS_EC2_GatewayRouteTableAssociation" }, { - "$ref": "#/definitions/AWS_IAM_GroupPolicy" + "$ref": "#/definitions/AWS_AmazonMQ_ConfigurationAssociation" }, { - "$ref": "#/definitions/AWS_Organizations_Account" + "$ref": "#/definitions/AWS_AppStream_StackUserAssociation" }, { - "$ref": "#/definitions/AWS_SageMaker_App" + "$ref": "#/definitions/AWS_StepFunctions_StateMachineAlias" }, { - "$ref": "#/definitions/AWS_Bedrock_GuardrailVersion" + "$ref": "#/definitions/AWS_Neptune_DBSubnetGroup" }, { - "$ref": "#/definitions/AWS_FraudDetector_Detector" + "$ref": "#/definitions/AWS_CodePipeline_Pipeline" }, { - "$ref": "#/definitions/AWS_M2_Application" + "$ref": "#/definitions/AWS_Notifications_OrganizationalUnitAssociation" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_CloudFormationProduct" + "$ref": "#/definitions/AWS_S3Tables_Namespace" }, { - "$ref": "#/definitions/AWS_VerifiedPermissions_IdentitySource" + "$ref": "#/definitions/AWS_DataZone_DomainUnit" }, { - "$ref": "#/definitions/AWS_SecurityHub_Hub" + "$ref": "#/definitions/AWS_StepFunctions_Activity" }, { - "$ref": "#/definitions/AWS_Logs_SubscriptionFilter" + "$ref": "#/definitions/AWS_APS_Scraper" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolRiskConfigurationAttachment" + "$ref": "#/definitions/AWS_DataZone_Connection" }, { - "$ref": "#/definitions/AWS_Location_PlaceIndex" + "$ref": "#/definitions/AWS_WorkSpaces_WorkspacesPool" }, { - "$ref": "#/definitions/AWS_Config_ConformancePack" + "$ref": "#/definitions/AWS_SNS_Topic" }, { - "$ref": "#/definitions/AWS_AppConfig_ConfigurationProfile" + "$ref": "#/definitions/AWS_AppConfig_HostedConfigurationVersion" }, { - "$ref": "#/definitions/AWS_AutoScaling_LifecycleHook" + "$ref": "#/definitions/AWS_IAM_Group" }, { - "$ref": "#/definitions/AWS_EC2_IPAMResourceDiscovery" + "$ref": "#/definitions/AWS_Connect_UserHierarchyGroup" }, { - "$ref": "#/definitions/AWS_Events_EventBus" + "$ref": "#/definitions/AWS_Cases_Layout" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayConnect" + "$ref": "#/definitions/AWS_EC2_PrefixList" }, { - "$ref": "#/definitions/AWS_Config_OrganizationConformancePack" + "$ref": "#/definitions/AWS_AppIntegrations_DataIntegration" }, { - "$ref": "#/definitions/AWS_AppMesh_Route" + "$ref": "#/definitions/AWS_Route53RecoveryControl_RoutingControl" }, { "$ref": "#/definitions/AWS_S3_MultiRegionAccessPoint" }, { - "$ref": "#/definitions/AWS_IoT_CustomMetric" + "$ref": "#/definitions/AWS_SecurityHub_AutomationRuleV2" }, { - "$ref": "#/definitions/AWS_RDS_DBCluster" + "$ref": "#/definitions/AWS_RefactorSpaces_Application" }, { - "$ref": "#/definitions/AWS_Backup_BackupSelection" + "$ref": "#/definitions/AWS_AmplifyUIBuilder_Component" }, { - "$ref": "#/definitions/AWS_Notifications_ChannelAssociation" + "$ref": "#/definitions/AWS_Route53RecoveryControl_ControlPanel" }, { - "$ref": "#/definitions/AWS_SSM_MaintenanceWindowTask" + "$ref": "#/definitions/AWS_NetworkManager_LinkAssociation" }, { - "$ref": "#/definitions/AWS_RoboMaker_Fleet" + "$ref": "#/definitions/AWS_KinesisFirehose_DeliveryStream" }, { - "$ref": "#/definitions/AWS_CloudWatch_MetricStream" + "$ref": "#/definitions/AWS_Glue_DevEndpoint" }, { - "$ref": "#/definitions/AWS_Wisdom_AssistantAssociation" + "$ref": "#/definitions/AWS_DataZone_ProjectProfile" }, { - "$ref": "#/definitions/AWS_RDS_DBClusterParameterGroup" + "$ref": "#/definitions/AWS_Lex_Bot" }, { - "$ref": "#/definitions/AWS_Connect_Instance" + "$ref": "#/definitions/AWS_ACMPCA_Permission" }, { - "$ref": "#/definitions/AWS_SES_VdmAttributes" + "$ref": "#/definitions/AWS_EC2_TransitGatewayMeteringPolicyEntry" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_Collection" + "$ref": "#/definitions/AWS_Lightsail_Disk" }, { - "$ref": "#/definitions/AWS_SES_ContactList" + "$ref": "#/definitions/AWS_Lightsail_Bucket" }, { - "$ref": "#/definitions/AWS_Bedrock_Blueprint" + "$ref": "#/definitions/AWS_SageMaker_ModelExplainabilityJobDefinition" }, { - "$ref": "#/definitions/AWS_ElastiCache_UserGroup" + "$ref": "#/definitions/AWS_ServiceCatalog_Portfolio" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverQueryLoggingConfigAssociation" + "$ref": "#/definitions/AWS_ServiceCatalog_PortfolioProductAssociation" }, { - "$ref": "#/definitions/AWS_GameLift_MatchmakingRuleSet" + "$ref": "#/definitions/AWS_BedrockAgentCore_Runtime" }, { - "$ref": "#/definitions/AWS_RefactorSpaces_Route" + "$ref": "#/definitions/AWS_IoTTwinMaker_ComponentType" }, { - "$ref": "#/definitions/AWS_Glue_Connection" + "$ref": "#/definitions/AWS_DirectConnect_DirectConnectGatewayAssociation" }, { - "$ref": "#/definitions/AWS_EC2_GatewayRouteTableAssociation" + "$ref": "#/definitions/AWS_ResourceExplorer2_View" }, { - "$ref": "#/definitions/AWS_IoT_Policy" + "$ref": "#/definitions/AWS_CodeArtifact_Domain" }, { - "$ref": "#/definitions/AWS_Glue_Database" + "$ref": "#/definitions/AWS_ElastiCache_ParameterGroup" }, { - "$ref": "#/definitions/AWS_Route53Resolver_FirewallRuleGroupAssociation" + "$ref": "#/definitions/AWS_EC2_VPC" }, { - "$ref": "#/definitions/AWS_Organizations_ResourcePolicy" + "$ref": "#/definitions/AWS_IoTSiteWise_Dataset" }, { - "$ref": "#/definitions/AWS_WorkspacesInstances_Volume" + "$ref": "#/definitions/AWS_AppStream_AppBlockBuilder" }, { - "$ref": "#/definitions/AWS_Lex_BotVersion" + "$ref": "#/definitions/AWS_IoT_PolicyPrincipalAttachment" }, { - "$ref": "#/definitions/AWS_EventSchemas_Discoverer" + "$ref": "#/definitions/AWS_Shield_ProactiveEngagement" }, { - "$ref": "#/definitions/AWS_APS_Workspace" + "$ref": "#/definitions/AWS_WAFRegional_ByteMatchSet" }, { - "$ref": "#/definitions/AWS_ECS_Service" + "$ref": "#/definitions/AWS_EVS_Environment" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Api" + "$ref": "#/definitions/AWS_IoT_ProvisioningTemplate" }, { - "$ref": "#/definitions/AWS_NetworkManager_CoreNetwork" + "$ref": "#/definitions/AWS_PCS_Queue" }, { - "$ref": "#/definitions/AWS_NetworkManager_TransitGatewayPeering" + "$ref": "#/definitions/AWS_Deadline_QueueLimitAssociation" }, { - "$ref": "#/definitions/AWS_IoTWireless_PartnerAccount" + "$ref": "#/definitions/AWS_RDS_DBProxyTargetGroup" }, { - "$ref": "#/definitions/AWS_QLDB_Stream" + "$ref": "#/definitions/AWS_Batch_ComputeEnvironment" }, { - "$ref": "#/definitions/AWS_Redshift_Cluster" + "$ref": "#/definitions/AWS_Wisdom_QuickResponse" }, { - "$ref": "#/definitions/AWS_XRay_SamplingRule" + "$ref": "#/definitions/AWS_GuardDuty_Filter" }, { - "$ref": "#/definitions/AWS_IAM_OIDCProvider" + "$ref": "#/definitions/AWS_NotificationsContacts_EmailContact" }, { - "$ref": "#/definitions/AWS_CloudWatch_CompositeAlarm" + "$ref": "#/definitions/AWS_EC2_VerifiedAccessEndpoint" }, { - "$ref": "#/definitions/AWS_SES_ReceiptFilter" + "$ref": "#/definitions/AWS_SageMaker_App" }, { - "$ref": "#/definitions/AWS_Connect_RoutingProfile" + "$ref": "#/definitions/AWS_MediaConvert_JobTemplate" }, { - "$ref": "#/definitions/AWS_FMS_Policy" + "$ref": "#/definitions/AWS_EC2_TransitGatewayRoute" }, { - "$ref": "#/definitions/AWS_Oam_Link" + "$ref": "#/definitions/AWS_Wisdom_AIAgentVersion" }, { - "$ref": "#/definitions/AWS_CloudFront_ResponseHeadersPolicy" + "$ref": "#/definitions/AWS_SMSVOICE_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_Lightsail_LoadBalancerTlsCertificate" + "$ref": "#/definitions/AWS_Connect_HoursOfOperation" }, { - "$ref": "#/definitions/AWS_Wisdom_QuickResponse" + "$ref": "#/definitions/AWS_ECS_ClusterCapacityProviderAssociations" }, { - "$ref": "#/definitions/AWS_SES_MailManagerIngressPoint" + "$ref": "#/definitions/AWS_BedrockAgentCore_Evaluator" }, { - "$ref": "#/definitions/AWS_DataZone_UserProfile" + "$ref": "#/definitions/AWS_NetworkManager_TransitGatewayRegistration" }, { - "$ref": "#/definitions/AWS_Pinpoint_APNSSandboxChannel" + "$ref": "#/definitions/AWS_AppTest_TestCase" }, { - "$ref": "#/definitions/AWS_KMS_ReplicaKey" + "$ref": "#/definitions/AWS_DataZone_Owner" }, { - "$ref": "#/definitions/AWS_SSO_Application" + "$ref": "#/definitions/AWS_IoT_ScheduledAudit" }, { - "$ref": "#/definitions/AWS_ECS_PrimaryTaskSet" + "$ref": "#/definitions/AWS_SNS_Subscription" }, { - "$ref": "#/definitions/AWS_VpcLattice_AccessLogSubscription" + "$ref": "#/definitions/AWS_ECS_Daemon" }, { - "$ref": "#/definitions/AWS_NetworkManager_TransitGatewayRouteTableAttachment" + "$ref": "#/definitions/AWS_VpcLattice_Listener" }, { - "$ref": "#/definitions/AWS_APS_RuleGroupsNamespace" + "$ref": "#/definitions/AWS_Pinpoint_InAppTemplate" }, { - "$ref": "#/definitions/AWS_SQS_QueuePolicy" + "$ref": "#/definitions/AWS_Logs_LogAnomalyDetector" }, { - "$ref": "#/definitions/AWS_RedshiftServerless_Snapshot" + "$ref": "#/definitions/AWS_IoTWireless_MulticastGroup" }, { - "$ref": "#/definitions/AWS_Panorama_Package" + "$ref": "#/definitions/AWS_ServiceCatalog_PortfolioPrincipalAssociation" }, { - "$ref": "#/definitions/AWS_Neptune_EventSubscription" + "$ref": "#/definitions/AWS_DataZone_Project" }, { - "$ref": "#/definitions/AWS_PCS_Queue" + "$ref": "#/definitions/AWS_IoT_CustomMetric" }, { - "$ref": "#/definitions/AWS_SageMaker_InferenceExperiment" + "$ref": "#/definitions/AWS_Omics_Workflow" }, { - "$ref": "#/definitions/AWS_XRay_Group" + "$ref": "#/definitions/AWS_BedrockAgentCore_PolicyEngine" }, { - "$ref": "#/definitions/AWS_SupportApp_SlackChannelConfiguration" + "$ref": "#/definitions/AWS_Omics_SequenceStore" }, { - "$ref": "#/definitions/AWS_VerifiedPermissions_PolicyTemplate" + "$ref": "#/definitions/AWS_Events_EventBusPolicy" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverEndpoint" + "$ref": "#/definitions/AWS_OpsWorks_Stack" }, { - "$ref": "#/definitions/AWS_Lightsail_InstanceSnapshot" + "$ref": "#/definitions/AWS_DirectConnect_TransitVirtualInterface" }, { - "$ref": "#/definitions/AWS_SageMaker_ImageVersion" + "$ref": "#/definitions/AWS_EC2_SubnetNetworkAclAssociation" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_StackSetConstraint" + "$ref": "#/definitions/AWS_EMRContainers_SecurityConfiguration" }, { - "$ref": "#/definitions/AWS_SSO_PermissionSet" + "$ref": "#/definitions/AWS_Backup_BackupPlan" }, { - "$ref": "#/definitions/AWS_Lightsail_Domain" + "$ref": "#/definitions/AWS_ApiGateway_DocumentationVersion" }, { - "$ref": "#/definitions/AWS_Bedrock_DataAutomationProject" + "$ref": "#/definitions/AWS_EC2_TransitGatewayConnectPeer" }, { - "$ref": "#/definitions/AWS_Rbin_Rule" + "$ref": "#/definitions/AWS_S3Tables_TableBucket" }, { - "$ref": "#/definitions/AWS_EntityResolution_MatchingWorkflow" + "$ref": "#/definitions/AWS_MediaLive_Channel" }, { - "$ref": "#/definitions/AWS_ApiGateway_ClientCertificate" + "$ref": "#/definitions/AWS_IoTFleetWise_StateTemplate" }, { - "$ref": "#/definitions/AWS_CodePipeline_Pipeline" + "$ref": "#/definitions/AWS_OpenSearchServerless_VpcEndpoint" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayRouteTableAssociation" + "$ref": "#/definitions/AWS_InspectorV2_Filter" }, { - "$ref": "#/definitions/AWS_Glue_DataCatalogEncryptionSettings" + "$ref": "#/definitions/AWS_AppStream_ApplicationEntitlementAssociation" }, { - "$ref": "#/definitions/AWS_ElastiCache_ParameterGroup" + "$ref": "#/definitions/AWS_Route53Resolver_ResolverQueryLoggingConfigAssociation" }, { - "$ref": "#/definitions/AWS_CloudFormation_GuardHook" + "$ref": "#/definitions/AWS_NetworkFirewall_FirewallPolicy" }, { - "$ref": "#/definitions/AWS_Shield_ProactiveEngagement" + "$ref": "#/definitions/AWS_OpenSearchServerless_Index" }, { - "$ref": "#/definitions/AWS_Omics_AnnotationStore" + "$ref": "#/definitions/AWS_ECS_Service" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_Integration" + "$ref": "#/definitions/AWS_Pinpoint_APNSVoipSandboxChannel" }, { - "$ref": "#/definitions/AWS_PCAConnectorSCEP_Connector" + "$ref": "#/definitions/AWS_Connect_ViewVersion" }, { - "$ref": "#/definitions/AWS_IVSChat_Room" + "$ref": "#/definitions/AWS_DirectConnect_PrivateVirtualInterface" }, { - "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation" + "$ref": "#/definitions/AWS_M2_Application" }, { - "$ref": "#/definitions/AWS_Amplify_App" + "$ref": "#/definitions/AWS_Logs_LogStream" }, { - "$ref": "#/definitions/AWS_Connect_HoursOfOperation" + "$ref": "#/definitions/AWS_IoTThingsGraph_FlowTemplate" }, { - "$ref": "#/definitions/AWS_AuditManager_Assessment" + "$ref": "#/definitions/AWS_SecurityHub_ProductSubscription" }, { - "$ref": "#/definitions/AWS_Kendra_Faq" + "$ref": "#/definitions/AWS_WAFRegional_RateBasedRule" }, { - "$ref": "#/definitions/AWS_Chatbot_CustomAction" + "$ref": "#/definitions/AWS_SecurityLake_AwsLogSource" }, { - "$ref": "#/definitions/AWS_Greengrass_DeviceDefinitionVersion" + "$ref": "#/definitions/AWS_EC2_ClientVpnRoute" }, { - "$ref": "#/definitions/AWS_SageMaker_Domain" + "$ref": "#/definitions/AWS_CloudFormation_LambdaHook" }, { - "$ref": "#/definitions/AWS_Shield_Protection" + "$ref": "#/definitions/AWS_AppRunner_AutoScalingConfiguration" }, { - "$ref": "#/definitions/AWS_ApiGateway_RestApi" + "$ref": "#/definitions/AWS_Budgets_Budget" }, { - "$ref": "#/definitions/AWS_DMS_Endpoint" + "$ref": "#/definitions/AWS_QBusiness_DataSource" }, { - "$ref": "#/definitions/AWS_MSK_VpcConnection" + "$ref": "#/definitions/AWS_Chatbot_CustomAction" }, { - "$ref": "#/definitions/AWS_ApplicationSignals_ServiceLevelObjective" + "$ref": "#/definitions/AWS_Notifications_NotificationHub" }, { - "$ref": "#/definitions/AWS_Glue_SchemaVersion" + "$ref": "#/definitions/AWS_GameLift_Build" }, { - "$ref": "#/definitions/AWS_Route53RecoveryControl_Cluster" + "$ref": "#/definitions/AWS_Glue_IdentityCenterConfiguration" }, { - "$ref": "#/definitions/AWS_KMS_Alias" + "$ref": "#/definitions/AWS_CodeStarNotifications_NotificationRule" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_ApiMapping" + "$ref": "#/definitions/AWS_CodeStarConnections_RepositoryLink" }, { - "$ref": "#/definitions/AWS_ApiGateway_DomainNameAccessAssociation" + "$ref": "#/definitions/AWS_IoTAnalytics_Dataset" }, { - "$ref": "#/definitions/AWS_IoTCoreDeviceAdvisor_SuiteDefinition" + "$ref": "#/definitions/AWS_Chime_AppInstance" }, { - "$ref": "#/definitions/AWS_EC2_NetworkAcl" + "$ref": "#/definitions/AWS_CloudFormation_TypeActivation" }, { - "$ref": "#/definitions/AWS_ApiGateway_DomainName" + "$ref": "#/definitions/AWS_Cognito_UserPoolRiskConfigurationAttachment" }, { - "$ref": "#/definitions/AWS_IoT_EncryptionConfiguration" + "$ref": "#/definitions/AWS_ResilienceHub_App" }, { - "$ref": "#/definitions/AWS_SSO_InstanceAccessControlAttributeConfiguration" + "$ref": "#/definitions/AWS_Athena_WorkGroup" }, { - "$ref": "#/definitions/AWS_AppSync_DomainNameApiAssociation" + "$ref": "#/definitions/AWS_EKS_IdentityProviderConfig" }, { - "$ref": "#/definitions/AWS_RefactorSpaces_Service" + "$ref": "#/definitions/AWS_Route53Profiles_ProfileResourceAssociation" }, { - "$ref": "#/definitions/AWS_GreengrassV2_Deployment" + "$ref": "#/definitions/AWS_SES_MailManagerRelay" }, { - "$ref": "#/definitions/AWS_Redshift_ClusterParameterGroup" + "$ref": "#/definitions/AWS_ServiceCatalog_ServiceActionAssociation" }, { - "$ref": "#/definitions/AWS_CloudFront_MonitoringSubscription" + "$ref": "#/definitions/AWS_SSMContacts_Plan" }, { - "$ref": "#/definitions/AWS_MediaTailor_Channel" + "$ref": "#/definitions/AWS_RAM_Permission" }, { - "$ref": "#/definitions/AWS_Logs_Delivery" + "$ref": "#/definitions/AWS_SageMaker_ModelQualityJobDefinition" }, { - "$ref": "#/definitions/AWS_PCS_ComputeNodeGroup" + "$ref": "#/definitions/AWS_Connect_AgentStatus" }, { - "$ref": "#/definitions/AWS_GlobalAccelerator_Listener" + "$ref": "#/definitions/AWS_EMR_InstanceFleetConfig" }, { - "$ref": "#/definitions/AWS_Logs_QueryDefinition" + "$ref": "#/definitions/AWS_Cognito_UserPoolUser" }, { - "$ref": "#/definitions/AWS_DLM_LifecyclePolicy" + "$ref": "#/definitions/AWS_WorkSpacesWeb_DataProtectionSettings" }, { - "$ref": "#/definitions/AWS_Lex_ResourcePolicy" + "$ref": "#/definitions/AWS_AppSync_Resolver" }, { - "$ref": "#/definitions/AWS_M2_Deployment" + "$ref": "#/definitions/AWS_CloudWatch_OTelEnrichment" }, { - "$ref": "#/definitions/AWS_FSx_Snapshot" + "$ref": "#/definitions/AWS_EC2_DHCPOptions" }, { - "$ref": "#/definitions/AWS_WAFRegional_ByteMatchSet" + "$ref": "#/definitions/AWS_ApiGatewayV2_Integration" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInsightsAccessScopeAnalysis" + "$ref": "#/definitions/AWS_WAF_WebACL" }, { - "$ref": "#/definitions/AWS_Panorama_PackageVersion" + "$ref": "#/definitions/AWS_WorkspacesInstances_Volume" }, { - "$ref": "#/definitions/AWS_Bedrock_FlowAlias" + "$ref": "#/definitions/AWS_QuickSight_RefreshSchedule" }, { - "$ref": "#/definitions/AWS_Logs_DeliverySource" + "$ref": "#/definitions/AWS_IoTWireless_WirelessDeviceImportTask" }, { - "$ref": "#/definitions/AWS_EC2_EIP" + "$ref": "#/definitions/AWS_DataZone_ProjectMembership" }, { - "$ref": "#/definitions/AWS_DataSync_LocationFSxWindows" + "$ref": "#/definitions/AWS_XRay_Group" }, { - "$ref": "#/definitions/AWS_ECS_ClusterCapacityProviderAssociations" + "$ref": "#/definitions/AWS_Connect_QuickConnect" }, { - "$ref": "#/definitions/AWS_DocDB_DBClusterParameterGroup" + "$ref": "#/definitions/AWS_EC2_LocalGatewayRoute" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_ApiGatewayManagedOverrides" + "$ref": "#/definitions/AWS_DMS_ReplicationTask" }, { - "$ref": "#/definitions/AWS_Pinpoint_Segment" + "$ref": "#/definitions/AWS_Logs_DeliverySource" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolIdentityProvider" + "$ref": "#/definitions/AWS_EC2_SubnetRouteTableAssociation" }, { - "$ref": "#/definitions/AWS_AutoScaling_WarmPool" + "$ref": "#/definitions/AWS_Forecast_DatasetGroup" }, { - "$ref": "#/definitions/AWS_Location_Map" + "$ref": "#/definitions/AWS_WorkSpaces_Workspace" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInterface" + "$ref": "#/definitions/AWS_SES_Template" }, { - "$ref": "#/definitions/AWS_EC2_LocalGatewayVirtualInterface" + "$ref": "#/definitions/AWS_ServiceCatalog_LaunchNotificationConstraint" }, { - "$ref": "#/definitions/AWS_Connect_PhoneNumber" + "$ref": "#/definitions/AWS_GuardDuty_IPSet" }, { - "$ref": "#/definitions/AWS_ResilienceHub_App" + "$ref": "#/definitions/AWS_Route53Resolver_ResolverQueryLoggingConfig" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_ListenerRule" + "$ref": "#/definitions/AWS_SageMaker_Pipeline" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_Vehicle" + "$ref": "#/definitions/AWS_Glue_Trigger" }, { - "$ref": "#/definitions/AWS_EC2_ClientVpnAuthorizationRule" + "$ref": "#/definitions/AWS_ComputeOptimizer_AutomationRule" }, { - "$ref": "#/definitions/AWS_Personalize_Solution" + "$ref": "#/definitions/AWS_IoTSiteWise_AssetModel" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_Dashboard" + "$ref": "#/definitions/AWS_IoT_DomainConfiguration" }, { - "$ref": "#/definitions/AWS_AutoScaling_ScheduledAction" + "$ref": "#/definitions/AWS_ApiGatewayV2_ApiMapping" }, { - "$ref": "#/definitions/AWS_ACMPCA_Certificate" + "$ref": "#/definitions/AWS_Inspector_ResourceGroup" }, { - "$ref": "#/definitions/AWS_GameLift_ContainerGroupDefinition" + "$ref": "#/definitions/AWS_DataZone_Domain" }, { - "$ref": "#/definitions/AWS_ApiGateway_UsagePlanKey" + "$ref": "#/definitions/AWS_ECR_PublicRepository" }, { - "$ref": "#/definitions/AWS_QBusiness_Permission" + "$ref": "#/definitions/AWS_CloudFormation_Macro" }, { - "$ref": "#/definitions/AWS_CloudFormation_WaitCondition" + "$ref": "#/definitions/AWS_Inspector_AssessmentTemplate" }, { - "$ref": "#/definitions/AWS_ApiGateway_DocumentationVersion" + "$ref": "#/definitions/AWS_AppSync_FunctionConfiguration" }, { - "$ref": "#/definitions/AWS_EC2_SubnetNetworkAclAssociation" + "$ref": "#/definitions/AWS_EMR_InstanceGroupConfig" }, { - "$ref": "#/definitions/AWS_SSMContacts_ContactChannel" + "$ref": "#/definitions/AWS_EC2_NetworkInsightsAnalysis" }, { - "$ref": "#/definitions/AWS_Connect_EvaluationForm" + "$ref": "#/definitions/AWS_Connect_SecurityKey" }, { - "$ref": "#/definitions/AWS_Backup_ReportPlan" + "$ref": "#/definitions/AWS_EC2_VPCEndpointConnectionNotification" }, { - "$ref": "#/definitions/AWS_DataSync_LocationAzureBlob" + "$ref": "#/definitions/AWS_APS_AnomalyDetector" }, { - "$ref": "#/definitions/AWS_Organizations_Policy" + "$ref": "#/definitions/AWS_Greengrass_Group" }, { - "$ref": "#/definitions/AWS_Connect_View" + "$ref": "#/definitions/AWS_BillingConductor_CustomLineItem" }, { - "$ref": "#/definitions/AWS_SystemsManagerSAP_Application" + "$ref": "#/definitions/AWS_Pinpoint_EmailTemplate" }, { - "$ref": "#/definitions/AWS_OpsWorks_ElasticLoadBalancerAttachment" + "$ref": "#/definitions/AWS_EKS_Addon" }, { - "$ref": "#/definitions/AWS_BillingConductor_BillingGroup" + "$ref": "#/definitions/AWS_EFS_FileSystem" }, { - "$ref": "#/definitions/AWS_FraudDetector_Label" + "$ref": "#/definitions/AWS_ApplicationAutoScaling_ScalingPolicy" }, { - "$ref": "#/definitions/AWS_IoTAnalytics_Datastore" + "$ref": "#/definitions/AWS_DirectConnect_PublicVirtualInterface" }, { - "$ref": "#/definitions/AWS_Logs_Destination" + "$ref": "#/definitions/AWS_BedrockAgentCore_BrowserCustom" }, { - "$ref": "#/definitions/AWS_EC2_RouteServerPeer" + "$ref": "#/definitions/AWS_VoiceID_Domain" }, { - "$ref": "#/definitions/AWS_Backup_RestoreTestingPlan" + "$ref": "#/definitions/AWS_Deadline_Farm" }, { - "$ref": "#/definitions/AWS_EMR_Cluster" + "$ref": "#/definitions/AWS_IoTCoreDeviceAdvisor_SuiteDefinition" }, { - "$ref": "#/definitions/AWS_IVSChat_LoggingConfiguration" + "$ref": "#/definitions/AWS_Redshift_EndpointAuthorization" }, { - "$ref": "#/definitions/AWS_DocDB_DBSubnetGroup" + "$ref": "#/definitions/AWS_WorkSpacesWeb_IpAccessSettings" }, { - "$ref": "#/definitions/AWS_SageMaker_Device" + "$ref": "#/definitions/AWS_MemoryDB_MultiRegionCluster" }, { - "$ref": "#/definitions/AWS_SecurityHub_OrganizationConfiguration" + "$ref": "#/definitions/AWS_EC2_NetworkInterface" }, { - "$ref": "#/definitions/AWS_CloudFront_DistributionTenant" + "$ref": "#/definitions/AWS_AppStream_AppBlock" }, { - "$ref": "#/definitions/AWS_Invoicing_InvoiceUnit" + "$ref": "#/definitions/AWS_Panorama_Package" }, { - "$ref": "#/definitions/AWS_EC2_ClientVpnTargetNetworkAssociation" + "$ref": "#/definitions/AWS_DLM_LifecyclePolicy" }, { - "$ref": "#/definitions/AWS_RDS_GlobalCluster" + "$ref": "#/definitions/AWS_Personalize_DatasetGroup" }, { - "$ref": "#/definitions/AWS_Wisdom_AIGuardrail" + "$ref": "#/definitions/AWS_EC2_VerifiedAccessTrustProvider" }, { - "$ref": "#/definitions/AWS_WorkSpacesThinClient_Environment" + "$ref": "#/definitions/AWS_Bedrock_Guardrail" }, { - "$ref": "#/definitions/AWS_WorkspacesInstances_WorkspaceInstance" + "$ref": "#/definitions/AWS_ApiGateway_DomainNameAccessAssociation" }, { - "$ref": "#/definitions/AWS_ECS_TaskSet" + "$ref": "#/definitions/AWS_Redshift_Integration" }, { - "$ref": "#/definitions/AWS_Location_TrackerConsumer" + "$ref": "#/definitions/AWS_EMR_Studio" }, { - "$ref": "#/definitions/AWS_QuickSight_DataSet" + "$ref": "#/definitions/AWS_S3_Bucket" }, { - "$ref": "#/definitions/AWS_ImageBuilder_LifecyclePolicy" + "$ref": "#/definitions/AWS_FMS_Policy" }, { - "$ref": "#/definitions/AWS_GroundStation_DataflowEndpointGroup" + "$ref": "#/definitions/AWS_ECR_PullThroughCacheRule" }, { - "$ref": "#/definitions/AWS_CloudFront_CloudFrontOriginAccessIdentity" + "$ref": "#/definitions/AWS_OpenSearchServerless_SecurityConfig" }, { - "$ref": "#/definitions/AWS_IoTWireless_MulticastGroup" + "$ref": "#/definitions/AWS_XRay_SamplingRule" }, { - "$ref": "#/definitions/AWS_EC2_SubnetRouteTableAssociation" + "$ref": "#/definitions/AWS_EventSchemas_Registry" }, { - "$ref": "#/definitions/AWS_AppIntegrations_EventIntegration" + "$ref": "#/definitions/AWS_CodeGuruProfiler_ProfilingGroup" }, { - "$ref": "#/definitions/AWS_SecurityHub_DelegatedAdmin" + "$ref": "#/definitions/AWS_DataSync_LocationSMB" }, { - "$ref": "#/definitions/AWS_Bedrock_DataSource" + "$ref": "#/definitions/AWS_B2BI_Capability" }, { - "$ref": "#/definitions/AWS_AmplifyUIBuilder_Form" + "$ref": "#/definitions/AWS_WAF_Rule" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_VpcLink" + "$ref": "#/definitions/AWS_Connect_Rule" }, { - "$ref": "#/definitions/AWS_QBusiness_DataAccessor" + "$ref": "#/definitions/AWS_IoT_CACertificate" }, { - "$ref": "#/definitions/AWS_Evidently_Launch" + "$ref": "#/definitions/AWS_ServiceCatalog_TagOption" }, { - "$ref": "#/definitions/AWS_B2BI_Transformer" + "$ref": "#/definitions/AWS_IoTAnalytics_Channel" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolResourceServer" + "$ref": "#/definitions/AWS_KinesisAnalytics_ApplicationReferenceDataSource" }, { - "$ref": "#/definitions/AWS_S3Express_DirectoryBucket" + "$ref": "#/definitions/AWS_DevOpsAgent_AgentSpace" }, { - "$ref": "#/definitions/AWS_Greengrass_LoggerDefinition" + "$ref": "#/definitions/AWS_Proton_ServiceTemplate" }, { - "$ref": "#/definitions/AWS_MSK_Configuration" + "$ref": "#/definitions/AWS_QBusiness_Retriever" }, { - "$ref": "#/definitions/AWS_EC2_Host" + "$ref": "#/definitions/AWS_B2BI_Partnership" }, { - "$ref": "#/definitions/AWS_KendraRanking_ExecutionPlan" + "$ref": "#/definitions/AWS_CleanRooms_ConfiguredTableAssociation" }, { - "$ref": "#/definitions/AWS_QuickSight_Folder" + "$ref": "#/definitions/AWS_GreengrassV2_Deployment" }, { - "$ref": "#/definitions/AWS_Athena_WorkGroup" + "$ref": "#/definitions/AWS_SecurityLake_Subscriber" }, { - "$ref": "#/definitions/AWS_MWAA_Environment" + "$ref": "#/definitions/AWS_XRay_TransactionSearchConfig" }, { - "$ref": "#/definitions/AWS_IoT_MitigationAction" + "$ref": "#/definitions/AWS_CleanRooms_IdNamespaceAssociation" }, { - "$ref": "#/definitions/AWS_SMSVOICE_ProtectConfiguration" + "$ref": "#/definitions/AWS_Shield_ProtectionGroup" }, { - "$ref": "#/definitions/AWS_HealthImaging_Datastore" + "$ref": "#/definitions/AWS_Scheduler_Schedule" }, { - "$ref": "#/definitions/AWS_BackupGateway_Hypervisor" + "$ref": "#/definitions/AWS_PCAConnectorSCEP_Connector" }, { - "$ref": "#/definitions/AWS_S3_StorageLens" + "$ref": "#/definitions/AWS_ElastiCache_SecurityGroup" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Authorizer" + "$ref": "#/definitions/AWS_InspectorV2_CisScanConfiguration" }, { - "$ref": "#/definitions/AWS_EC2_CarrierGateway" + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_ListenerRule" }, { - "$ref": "#/definitions/AWS_EC2_VPCEndpointConnectionNotification" + "$ref": "#/definitions/AWS_EC2_SqlHaStandbyDetectedInstance" }, { - "$ref": "#/definitions/AWS_WAFRegional_XssMatchSet" + "$ref": "#/definitions/AWS_Route53RecoveryReadiness_Cell" }, { - "$ref": "#/definitions/AWS_Transfer_WebApp" + "$ref": "#/definitions/AWS_Pinpoint_EventStream" }, { - "$ref": "#/definitions/AWS_Connect_PredefinedAttribute" + "$ref": "#/definitions/AWS_CustomerProfiles_CalculatedAttributeDefinition" }, { - "$ref": "#/definitions/AWS_EMRServerless_Application" + "$ref": "#/definitions/AWS_AccessAnalyzer_Analyzer" }, { - "$ref": "#/definitions/AWS_ElastiCache_ServerlessCache" + "$ref": "#/definitions/AWS_RoboMaker_Fleet" }, { - "$ref": "#/definitions/AWS_InspectorV2_CodeSecurityIntegration" + "$ref": "#/definitions/AWS_Glue_SecurityConfiguration" }, { - "$ref": "#/definitions/AWS_SES_MailManagerRuleSet" + "$ref": "#/definitions/AWS_ImageBuilder_ImageRecipe" }, { - "$ref": "#/definitions/AWS_GameLift_Build" + "$ref": "#/definitions/AWS_Lambda_EventSourceMapping" }, { - "$ref": "#/definitions/AWS_CodeDeploy_Application" + "$ref": "#/definitions/AWS_AppRunner_VpcIngressConnection" }, { - "$ref": "#/definitions/AWS_Athena_PreparedStatement" + "$ref": "#/definitions/AWS_DataZone_Environment" }, { - "$ref": "#/definitions/AWS_Connect_EmailAddress" + "$ref": "#/definitions/AWS_OSIS_Pipeline" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_RouteResponse" + "$ref": "#/definitions/AWS_EC2_TransitGatewayRouteTable" }, { - "$ref": "#/definitions/AWS_VpcLattice_AuthPolicy" + "$ref": "#/definitions/AWS_MediaPackage_OriginEndpoint" }, { - "$ref": "#/definitions/AWS_CloudFront_AnycastIpList" + "$ref": "#/definitions/AWS_Connect_ContactFlowVersion" }, { - "$ref": "#/definitions/AWS_GlobalAccelerator_EndpointGroup" + "$ref": "#/definitions/AWS_Backup_LogicallyAirGappedBackupVault" }, { - "$ref": "#/definitions/AWS_ACMPCA_Permission" + "$ref": "#/definitions/AWS_IVS_StorageConfiguration" }, { - "$ref": "#/definitions/AWS_LakeFormation_DataLakeSettings" + "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayRouteTable" + "$ref": "#/definitions/AWS_BillingConductor_PricingRule" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_ObjectType" + "$ref": "#/definitions/AWS_Organizations_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_Neptune_DBSubnetGroup" + "$ref": "#/definitions/AWS_ImageBuilder_Workflow" }, { - "$ref": "#/definitions/AWS_Rekognition_Collection" + "$ref": "#/definitions/AWS_DMS_ReplicationInstance" }, { - "$ref": "#/definitions/AWS_QuickSight_DataSource" + "$ref": "#/definitions/AWS_VpcLattice_ResourceConfiguration" }, { - "$ref": "#/definitions/AWS_NetworkManager_LinkAssociation" + "$ref": "#/definitions/AWS_WorkSpacesWeb_UserAccessLoggingSettings" }, { - "$ref": "#/definitions/AWS_AutoScaling_ScalingPolicy" + "$ref": "#/definitions/AWS_Lex_BotAlias" }, { - "$ref": "#/definitions/AWS_ODB_CloudExadataInfrastructure" + "$ref": "#/definitions/AWS_Cognito_UserPoolUICustomizationAttachment" }, { - "$ref": "#/definitions/AWS_APS_Scraper" + "$ref": "#/definitions/AWS_CustomerProfiles_Integration" }, { - "$ref": "#/definitions/AWS_Lightsail_Container" + "$ref": "#/definitions/AWS_EMR_Cluster" }, { - "$ref": "#/definitions/AWS_QuickSight_Analysis" + "$ref": "#/definitions/AWS_RTBFabric_ResponderGateway" }, { - "$ref": "#/definitions/AWS_Wisdom_Assistant" + "$ref": "#/definitions/AWS_ApiGatewayV2_DomainName" }, { - "$ref": "#/definitions/AWS_DataBrew_Dataset" + "$ref": "#/definitions/AWS_Glue_Job" }, { - "$ref": "#/definitions/AWS_DataSync_LocationFSxLustre" + "$ref": "#/definitions/AWS_EC2_VPNConnection" }, { - "$ref": "#/definitions/AWS_CloudFront_Distribution" + "$ref": "#/definitions/AWS_Route53RecoveryReadiness_ResourceSet" }, { - "$ref": "#/definitions/AWS_AppSync_Resolver" + "$ref": "#/definitions/AWS_CloudWatch_AnomalyDetector" }, { - "$ref": "#/definitions/AWS_OpenSearchService_Application" + "$ref": "#/definitions/AWS_ElastiCache_SubnetGroup" }, { - "$ref": "#/definitions/AWS_NetworkManager_DirectConnectGatewayAttachment" + "$ref": "#/definitions/AWS_ControlTower_LandingZone" }, { - "$ref": "#/definitions/AWS_DynamoDB_Table" + "$ref": "#/definitions/AWS_PaymentCryptography_Alias" }, { - "$ref": "#/definitions/AWS_ECR_RepositoryCreationTemplate" + "$ref": "#/definitions/AWS_RDS_DBParameterGroup" }, { - "$ref": "#/definitions/AWS_Greengrass_LoggerDefinitionVersion" + "$ref": "#/definitions/AWS_RefactorSpaces_Route" }, { - "$ref": "#/definitions/AWS_MediaPackage_PackagingGroup" + "$ref": "#/definitions/AWS_PinpointEmail_ConfigurationSetEventDestination" }, { - "$ref": "#/definitions/AWS_MemoryDB_SubnetGroup" + "$ref": "#/definitions/AWS_APS_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_Route53RecoveryControl_RoutingControl" + "$ref": "#/definitions/AWS_Cognito_UserPoolDomain" }, { - "$ref": "#/definitions/AWS_EC2_TrafficMirrorFilter" + "$ref": "#/definitions/AWS_ObservabilityAdmin_OrganizationTelemetryRule" }, { - "$ref": "#/definitions/AWS_SES_DedicatedIpPool" + "$ref": "#/definitions/AWS_Location_Map" }, { - "$ref": "#/definitions/AWS_SSM_Association" + "$ref": "#/definitions/AWS_Events_Endpoint" }, { - "$ref": "#/definitions/AWS_SecurityHub_Standard" + "$ref": "#/definitions/AWS_Synthetics_Group" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_UserAccessLoggingSettings" + "$ref": "#/definitions/AWS_WAFRegional_SizeConstraintSet" }, { - "$ref": "#/definitions/AWS_CloudFormation_ResourceDefaultVersion" + "$ref": "#/definitions/AWS_WorkSpacesWeb_Portal" }, { - "$ref": "#/definitions/AWS_SageMaker_ModelPackage" + "$ref": "#/definitions/AWS_Route53Resolver_FirewallRuleGroupAssociation" }, { - "$ref": "#/definitions/AWS_CodeGuruProfiler_ProfilingGroup" + "$ref": "#/definitions/AWS_SystemsManagerSAP_Application" }, { - "$ref": "#/definitions/AWS_Timestream_Database" + "$ref": "#/definitions/AWS_B2BI_Transformer" }, { - "$ref": "#/definitions/AWS_EC2_LocalGatewayRouteTable" + "$ref": "#/definitions/AWS_GroundStation_DataflowEndpointGroup" }, { - "$ref": "#/definitions/AWS_DataZone_ProjectProfile" + "$ref": "#/definitions/AWS_S3Outposts_Bucket" }, { - "$ref": "#/definitions/AWS_ApplicationAutoScaling_ScalingPolicy" + "$ref": "#/definitions/AWS_InternetMonitor_Monitor" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_EventTrigger" + "$ref": "#/definitions/AWS_SES_ReceiptRule" }, { - "$ref": "#/definitions/AWS_Deadline_Farm" + "$ref": "#/definitions/AWS_DataSync_LocationEFS" }, { - "$ref": "#/definitions/AWS_LookoutVision_Project" + "$ref": "#/definitions/AWS_KMS_ReplicaKey" }, { - "$ref": "#/definitions/AWS_MediaTailor_ChannelPolicy" + "$ref": "#/definitions/AWS_SageMaker_UserProfile" }, { - "$ref": "#/definitions/AWS_S3_MultiRegionAccessPointPolicy" + "$ref": "#/definitions/AWS_DataSync_Task" }, { - "$ref": "#/definitions/AWS_Bedrock_Agent" + "$ref": "#/definitions/AWS_GuardDuty_MalwareProtectionPlan" }, { - "$ref": "#/definitions/AWS_KinesisAnalytics_Application" + "$ref": "#/definitions/AWS_ApiGateway_DocumentationPart" }, { - "$ref": "#/definitions/AWS_IAM_RolePolicy" + "$ref": "#/definitions/AWS_EC2_VerifiedAccessInstance" }, { - "$ref": "#/definitions/AWS_AppIntegrations_DataIntegration" + "$ref": "#/definitions/AWS_Lightsail_Domain" }, { - "$ref": "#/definitions/AWS_EC2_RouteTable" + "$ref": "#/definitions/AWS_SES_MailManagerAddressList" }, { - "$ref": "#/definitions/AWS_WAFv2_RuleGroup" + "$ref": "#/definitions/AWS_CleanRoomsML_ConfiguredModelAlgorithm" }, { - "$ref": "#/definitions/AWS_EKS_FargateProfile" + "$ref": "#/definitions/AWS_Pinpoint_ApplicationSettings" }, { - "$ref": "#/definitions/AWS_Lambda_Version" + "$ref": "#/definitions/AWS_LakeFormation_Tag" }, { - "$ref": "#/definitions/AWS_WAF_SqlInjectionMatchSet" + "$ref": "#/definitions/AWS_IoTAnalytics_Datastore" }, { - "$ref": "#/definitions/AWS_AutoScaling_LaunchConfiguration" + "$ref": "#/definitions/AWS_IoTSiteWise_ComputationModel" }, { - "$ref": "#/definitions/AWS_Inspector_AssessmentTarget" + "$ref": "#/definitions/AWS_Notifications_EventRule" }, { - "$ref": "#/definitions/AWS_DataZone_PolicyGrant" + "$ref": "#/definitions/AWS_IoTWireless_WirelessGateway" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastDomain" + "$ref": "#/definitions/AWS_Forecast_Dataset" }, { - "$ref": "#/definitions/AWS_SageMaker_InferenceComponent" + "$ref": "#/definitions/AWS_LakeFormation_TagAssociation" }, { - "$ref": "#/definitions/AWS_DataSync_LocationS3" + "$ref": "#/definitions/AWS_Cassandra_Keyspace" }, { - "$ref": "#/definitions/AWS_InspectorV2_CisScanConfiguration" + "$ref": "#/definitions/AWS_Kendra_Index" }, { - "$ref": "#/definitions/AWS_GameLift_GameSessionQueue" + "$ref": "#/definitions/AWS_DataZone_DataSource" }, { - "$ref": "#/definitions/AWS_EMR_Step" + "$ref": "#/definitions/AWS_Detective_Graph" }, { - "$ref": "#/definitions/AWS_QBusiness_Plugin" + "$ref": "#/definitions/AWS_DocDB_DBClusterParameterGroup" }, { - "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_ResourceAssociation" + "$ref": "#/definitions/AWS_StepFunctions_StateMachineVersion" }, { - "$ref": "#/definitions/AWS_MediaPackage_PackagingConfiguration" + "$ref": "#/definitions/AWS_SecurityHub_AggregatorV2" }, { - "$ref": "#/definitions/AWS_SES_EmailIdentity" + "$ref": "#/definitions/AWS_Connect_ContactFlowModuleAlias" }, { - "$ref": "#/definitions/AWS_Cassandra_Type" + "$ref": "#/definitions/AWS_QuickSight_DataSet" }, { - "$ref": "#/definitions/AWS_WAFRegional_IPSet" + "$ref": "#/definitions/AWS_WAF_XssMatchSet" }, { - "$ref": "#/definitions/AWS_EC2_PrefixList" + "$ref": "#/definitions/AWS_Greengrass_SubscriptionDefinition" }, { - "$ref": "#/definitions/AWS_EC2_VPNGatewayRoutePropagation" + "$ref": "#/definitions/AWS_LookoutVision_Project" }, { - "$ref": "#/definitions/AWS_ApiGateway_Method" + "$ref": "#/definitions/AWS_ApiGateway_ApiKey" }, { - "$ref": "#/definitions/AWS_DMS_ReplicationSubnetGroup" + "$ref": "#/definitions/AWS_SageMaker_PartnerApp" }, { - "$ref": "#/definitions/AWS_ImageBuilder_Workflow" + "$ref": "#/definitions/AWS_AppSync_DomainName" }, { - "$ref": "#/definitions/AWS_Budgets_Budget" + "$ref": "#/definitions/AWS_FraudDetector_EntityType" }, { - "$ref": "#/definitions/AWS_Transfer_Connector" + "$ref": "#/definitions/AWS_RefactorSpaces_Environment" }, { - "$ref": "#/definitions/AWS_CloudWatch_Alarm" + "$ref": "#/definitions/AWS_KinesisAnalyticsV2_Application" }, { - "$ref": "#/definitions/AWS_APS_ResourcePolicy" + "$ref": "#/definitions/AWS_FraudDetector_Detector" }, { - "$ref": "#/definitions/AWS_MediaConvert_Queue" + "$ref": "#/definitions/AWS_Batch_ConsumableResource" }, { - "$ref": "#/definitions/AWS_KinesisVideo_SignalingChannel" + "$ref": "#/definitions/AWS_ECS_PrimaryTaskSet" }, { - "$ref": "#/definitions/AWS_Events_Rule" + "$ref": "#/definitions/AWS_CleanRooms_AnalysisTemplate" }, { - "$ref": "#/definitions/AWS_SageMaker_Space" + "$ref": "#/definitions/AWS_EC2_NatGateway" }, { - "$ref": "#/definitions/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus" + "$ref": "#/definitions/AWS_EKS_PodIdentityAssociation" }, { - "$ref": "#/definitions/AWS_Rekognition_Project" + "$ref": "#/definitions/AWS_AppSync_DataSource" }, { - "$ref": "#/definitions/AWS_EKS_AccessEntry" + "$ref": "#/definitions/AWS_Route53RecoveryReadiness_ReadinessCheck" }, { - "$ref": "#/definitions/AWS_Connect_User" + "$ref": "#/definitions/AWS_MSK_BatchScramSecret" }, { - "$ref": "#/definitions/AWS_Greengrass_CoreDefinition" + "$ref": "#/definitions/AWS_Batch_JobDefinition" }, { - "$ref": "#/definitions/AWS_Batch_ConsumableResource" + "$ref": "#/definitions/AWS_B2BI_Profile" }, { - "$ref": "#/definitions/AWS_Omics_SequenceStore" + "$ref": "#/definitions/AWS_SSMContacts_ContactChannel" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_ListenerCertificate" + "$ref": "#/definitions/AWS_EC2_NetworkPerformanceMetricSubscription" }, { - "$ref": "#/definitions/AWS_EC2_VPNGateway" + "$ref": "#/definitions/AWS_EKS_Nodegroup" }, { - "$ref": "#/definitions/AWS_Pinpoint_BaiduChannel" + "$ref": "#/definitions/AWS_KinesisVideo_Stream" }, { - "$ref": "#/definitions/AWS_IoTWireless_WirelessGateway" + "$ref": "#/definitions/AWS_CloudFormation_ResourceVersion" }, { - "$ref": "#/definitions/AWS_Greengrass_ResourceDefinition" + "$ref": "#/definitions/AWS_NeptuneGraph_Graph" }, { - "$ref": "#/definitions/AWS_EVS_Environment" + "$ref": "#/definitions/AWS_Chatbot_MicrosoftTeamsChannelConfiguration" }, { - "$ref": "#/definitions/AWS_AIOps_InvestigationGroup" + "$ref": "#/definitions/AWS_WorkSpacesWeb_IdentityProvider" }, { - "$ref": "#/definitions/AWS_MediaTailor_PlaybackConfiguration" + "$ref": "#/definitions/AWS_CertificateManager_Certificate" }, { - "$ref": "#/definitions/AWS_S3_BucketPolicy" + "$ref": "#/definitions/AWS_NovaAct_WorkflowDefinition" }, { - "$ref": "#/definitions/AWS_Shield_DRTAccess" + "$ref": "#/definitions/AWS_ApiGateway_Model" }, { - "$ref": "#/definitions/AWS_Billing_BillingView" + "$ref": "#/definitions/AWS_Wisdom_KnowledgeBase" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverDNSSECConfig" + "$ref": "#/definitions/AWS_SageMaker_NotebookInstanceLifecycleConfig" }, { - "$ref": "#/definitions/AWS_AmazonMQ_ConfigurationAssociation" + "$ref": "#/definitions/AWS_LakeFormation_DataCellsFilter" }, { - "$ref": "#/definitions/AWS_EC2_VPCGatewayAttachment" + "$ref": "#/definitions/AWS_CloudFront_OriginRequestPolicy" }, { - "$ref": "#/definitions/AWS_CloudFront_RealtimeLogConfig" + "$ref": "#/definitions/AWS_SupportApp_SlackWorkspaceConfiguration" }, { - "$ref": "#/definitions/AWS_LakeFormation_Tag" + "$ref": "#/definitions/AWS_Events_ApiDestination" }, { - "$ref": "#/definitions/AWS_InternetMonitor_Monitor" + "$ref": "#/definitions/AWS_MemoryDB_User" }, { - "$ref": "#/definitions/AWS_SMSVOICE_OptOutList" + "$ref": "#/definitions/AWS_SES_DedicatedIpPool" }, { - "$ref": "#/definitions/AWS_EC2_VerifiedAccessInstance" + "$ref": "#/definitions/AWS_Location_TrackerConsumer" }, { - "$ref": "#/definitions/AWS_EntityResolution_IdMappingWorkflow" + "$ref": "#/definitions/AWS_Bedrock_DataAutomationProject" }, { - "$ref": "#/definitions/AWS_QBusiness_Index" + "$ref": "#/definitions/AWS_EC2_TransitGatewayAttachment" }, { - "$ref": "#/definitions/AWS_IoTWireless_TaskDefinition" + "$ref": "#/definitions/AWS_SecurityHub_Standard" }, { - "$ref": "#/definitions/AWS_Redshift_EndpointAccess" + "$ref": "#/definitions/AWS_Transfer_Agreement" }, { - "$ref": "#/definitions/AWS_ApiGateway_Authorizer" + "$ref": "#/definitions/AWS_ImageBuilder_Component" }, { - "$ref": "#/definitions/AWS_Config_DeliveryChannel" + "$ref": "#/definitions/AWS_SageMaker_Device" }, { - "$ref": "#/definitions/AWS_AppStream_Fleet" + "$ref": "#/definitions/AWS_Lambda_EventInvokeConfig" }, { - "$ref": "#/definitions/AWS_Config_ConfigurationAggregator" + "$ref": "#/definitions/AWS_S3Express_BucketPolicy" }, { - "$ref": "#/definitions/AWS_OSIS_Pipeline" + "$ref": "#/definitions/AWS_Route53GlobalResolver_AccessToken" }, { - "$ref": "#/definitions/AWS_SMSVOICE_Pool" + "$ref": "#/definitions/AWS_ManagedBlockchain_Node" }, { - "$ref": "#/definitions/AWS_PCS_Cluster" + "$ref": "#/definitions/AWS_CodeDeploy_DeploymentGroup" }, { - "$ref": "#/definitions/AWS_SecurityHub_AutomationRuleV2" + "$ref": "#/definitions/AWS_Pinpoint_Campaign" }, { - "$ref": "#/definitions/AWS_Route53_CidrCollection" + "$ref": "#/definitions/AWS_EC2_VPNConcentrator" }, { - "$ref": "#/definitions/AWS_SageMaker_MlflowTrackingServer" + "$ref": "#/definitions/AWS_Glue_DataQualityRuleset" }, { - "$ref": "#/definitions/AWS_AppSync_GraphQLSchema" + "$ref": "#/definitions/AWS_WorkSpacesWeb_NetworkSettings" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_NetworkSettings" + "$ref": "#/definitions/AWS_KinesisAnalyticsV2_ApplicationReferenceDataSource" }, { - "$ref": "#/definitions/AWS_SecurityHub_ConfigurationPolicy" + "$ref": "#/definitions/AWS_SQS_QueueInlinePolicy" }, { - "$ref": "#/definitions/AWS_LaunchWizard_Deployment" + "$ref": "#/definitions/AWS_Deadline_Monitor" }, { - "$ref": "#/definitions/AWS_MSK_ClusterPolicy" + "$ref": "#/definitions/AWS_AppStream_DirectoryConfig" }, { - "$ref": "#/definitions/AWS_BCMDataExports_Export" + "$ref": "#/definitions/AWS_CodeBuild_ReportGroup" }, { - "$ref": "#/definitions/AWS_GuardDuty_Filter" + "$ref": "#/definitions/AWS_Config_ConfigurationAggregator" }, { - "$ref": "#/definitions/AWS_CloudWatch_Dashboard" + "$ref": "#/definitions/AWS_Bedrock_AutomatedReasoningPolicyVersion" }, { - "$ref": "#/definitions/AWS_PinpointEmail_ConfigurationSetEventDestination" + "$ref": "#/definitions/AWS_IoTWireless_TaskDefinition" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolUICustomizationAttachment" + "$ref": "#/definitions/AWS_KinesisAnalytics_ApplicationOutput" }, { - "$ref": "#/definitions/AWS_AppSync_SourceApiAssociation" + "$ref": "#/definitions/AWS_AppStream_ImageBuilder" }, { - "$ref": "#/definitions/AWS_AppSync_DomainName" + "$ref": "#/definitions/AWS_DevOpsGuru_LogAnomalyDetectionIntegration" }, { - "$ref": "#/definitions/AWS_MediaLive_Network" + "$ref": "#/definitions/AWS_FinSpace_Environment" }, { - "$ref": "#/definitions/AWS_Deadline_Monitor" + "$ref": "#/definitions/AWS_RedshiftServerless_Namespace" }, { - "$ref": "#/definitions/AWS_AppFlow_Flow" + "$ref": "#/definitions/AWS_IoT_Policy" }, { - "$ref": "#/definitions/AWS_DataZone_FormType" + "$ref": "#/definitions/AWS_WorkSpacesWeb_BrowserSettings" }, { - "$ref": "#/definitions/AWS_ApiGateway_VpcLink" + "$ref": "#/definitions/AWS_AppFlow_Flow" }, { - "$ref": "#/definitions/AWS_SupportApp_AccountAlias" + "$ref": "#/definitions/AWS_Athena_PreparedStatement" }, { - "$ref": "#/definitions/AWS_MediaLive_Multiplex" + "$ref": "#/definitions/AWS_Lightsail_Database" }, { - "$ref": "#/definitions/AWS_MediaConnect_FlowOutput" + "$ref": "#/definitions/AWS_ServiceCatalog_ServiceAction" }, { - "$ref": "#/definitions/AWS_CloudFront_ContinuousDeploymentPolicy" + "$ref": "#/definitions/AWS_AppMesh_VirtualGateway" }, { - "$ref": "#/definitions/AWS_Batch_SchedulingPolicy" + "$ref": "#/definitions/AWS_DirectConnect_DirectConnectGateway" }, { - "$ref": "#/definitions/AWS_AppStream_ApplicationFleetAssociation" + "$ref": "#/definitions/AWS_S3Tables_TableBucketPolicy" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_IntegrationResponse" + "$ref": "#/definitions/AWS_AIOps_InvestigationGroup" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolUserToGroupAttachment" + "$ref": "#/definitions/AWS_Chatbot_SlackChannelConfiguration" }, { - "$ref": "#/definitions/AWS_CodeBuild_SourceCredential" + "$ref": "#/definitions/AWS_Detective_OrganizationAdmin" }, { - "$ref": "#/definitions/AWS_CloudFormation_LambdaHook" + "$ref": "#/definitions/AWS_CE_AnomalySubscription" }, { - "$ref": "#/definitions/AWS_Location_GeofenceCollection" + "$ref": "#/definitions/AWS_MPA_ApprovalTeam" }, { - "$ref": "#/definitions/AWS_AppConfig_HostedConfigurationVersion" + "$ref": "#/definitions/AWS_DMS_ReplicationSubnetGroup" }, { - "$ref": "#/definitions/AWS_Notifications_EventRule" + "$ref": "#/definitions/AWS_SSO_ApplicationAssignment" }, { - "$ref": "#/definitions/AWS_S3_StorageLensGroup" + "$ref": "#/definitions/AWS_EC2_VPCGatewayAttachment" }, { - "$ref": "#/definitions/AWS_IoTEvents_Input" + "$ref": "#/definitions/AWS_SMSVOICE_SenderId" }, { - "$ref": "#/definitions/AWS_EMRContainers_VirtualCluster" + "$ref": "#/definitions/AWS_S3_AccessGrantsLocation" }, { - "$ref": "#/definitions/AWS_IoTAnalytics_Pipeline" + "$ref": "#/definitions/AWS_MediaPackageV2_OriginEndpoint" }, { - "$ref": "#/definitions/AWS_LookoutMetrics_AnomalyDetector" + "$ref": "#/definitions/AWS_DataZone_GroupProfile" }, { - "$ref": "#/definitions/AWS_Batch_ComputeEnvironment" + "$ref": "#/definitions/AWS_MediaLive_InputSecurityGroup" }, { - "$ref": "#/definitions/AWS_IoT_CertificateProvider" + "$ref": "#/definitions/AWS_BedrockAgentCore_Gateway" }, { - "$ref": "#/definitions/AWS_Lambda_LayerVersion" + "$ref": "#/definitions/AWS_RDS_DBSubnetGroup" }, { - "$ref": "#/definitions/AWS_Bedrock_IntelligentPromptRouter" + "$ref": "#/definitions/AWS_DataSync_Agent" }, { - "$ref": "#/definitions/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry" + "$ref": "#/definitions/AWS_Deadline_Queue" }, { - "$ref": "#/definitions/AWS_IoTEvents_AlarmModel" + "$ref": "#/definitions/AWS_BedrockAgentCore_Memory" }, { - "$ref": "#/definitions/AWS_AppStream_AppBlockBuilder" + "$ref": "#/definitions/AWS_CustomerProfiles_EventTrigger" }, { - "$ref": "#/definitions/AWS_Signer_SigningProfile" + "$ref": "#/definitions/AWS_EC2_TrafficMirrorSession" }, { - "$ref": "#/definitions/AWS_MediaLive_Cluster" + "$ref": "#/definitions/AWS_IoTFleetWise_DecoderManifest" }, { - "$ref": "#/definitions/AWS_Route53RecoveryReadiness_ResourceSet" + "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_AttributeGroup" }, { - "$ref": "#/definitions/AWS_MediaConnect_BridgeOutput" + "$ref": "#/definitions/AWS_GameLift_ContainerFleet" }, { - "$ref": "#/definitions/AWS_ApplicationAutoScaling_ScalableTarget" + "$ref": "#/definitions/AWS_Logs_Delivery" }, { - "$ref": "#/definitions/AWS_DMS_ReplicationConfig" + "$ref": "#/definitions/AWS_Pinpoint_APNSSandboxChannel" }, { - "$ref": "#/definitions/AWS_Kendra_DataSource" + "$ref": "#/definitions/AWS_AppStream_User" }, { - "$ref": "#/definitions/AWS_Glue_SecurityConfiguration" + "$ref": "#/definitions/AWS_Redshift_EventSubscription" }, { - "$ref": "#/definitions/AWS_SSMIncidents_ReplicationSet" + "$ref": "#/definitions/AWS_GuardDuty_Detector" }, { - "$ref": "#/definitions/AWS_StepFunctions_StateMachineVersion" + "$ref": "#/definitions/AWS_SecurityAgent_AgentSpace" }, { - "$ref": "#/definitions/AWS_OpenSearchService_Domain" + "$ref": "#/definitions/AWS_SageMaker_ImageVersion" }, { - "$ref": "#/definitions/AWS_Logs_LogAnomalyDetector" + "$ref": "#/definitions/AWS_Cognito_Terms" }, { - "$ref": "#/definitions/AWS_SageMaker_ModelPackageGroup" + "$ref": "#/definitions/AWS_Config_OrganizationConfigRule" }, { - "$ref": "#/definitions/AWS_NeptuneGraph_PrivateGraphEndpoint" + "$ref": "#/definitions/AWS_EC2_SubnetCidrBlock" }, { - "$ref": "#/definitions/AWS_Connect_ContactFlow" + "$ref": "#/definitions/AWS_FraudDetector_EventType" }, { - "$ref": "#/definitions/AWS_EC2_LaunchTemplate" + "$ref": "#/definitions/AWS_SSM_Document" }, { - "$ref": "#/definitions/AWS_IoT_Certificate" + "$ref": "#/definitions/AWS_BedrockMantle_Project" }, { - "$ref": "#/definitions/AWS_RDS_Integration" + "$ref": "#/definitions/AWS_Bedrock_EnforcedGuardrailConfiguration" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_Domain" + "$ref": "#/definitions/AWS_ElasticBeanstalk_Application" }, { - "$ref": "#/definitions/AWS_EC2_SecurityGroupEgress" + "$ref": "#/definitions/AWS_CustomerProfiles_Domain" }, { - "$ref": "#/definitions/AWS_Cassandra_Table" + "$ref": "#/definitions/AWS_Amplify_Branch" }, { - "$ref": "#/definitions/AWS_Batch_JobDefinition" + "$ref": "#/definitions/AWS_ODB_OdbNetwork" }, { - "$ref": "#/definitions/AWS_Deadline_Fleet" + "$ref": "#/definitions/AWS_Cognito_UserPoolUserToGroupAttachment" }, { - "$ref": "#/definitions/AWS_QuickSight_Topic" + "$ref": "#/definitions/AWS_Connect_PredefinedAttribute" }, { - "$ref": "#/definitions/AWS_EC2_IPAMPool" + "$ref": "#/definitions/AWS_MSK_ServerlessCluster" }, { - "$ref": "#/definitions/AWS_Connect_AgentStatus" + "$ref": "#/definitions/AWS_OpenSearchServerless_Collection" }, { - "$ref": "#/definitions/AWS_Location_APIKey" + "$ref": "#/definitions/AWS_AppMesh_VirtualRouter" }, { - "$ref": "#/definitions/AWS_GlobalAccelerator_CrossAccountAttachment" + "$ref": "#/definitions/AWS_GuardDuty_Master" }, { - "$ref": "#/definitions/AWS_Pinpoint_APNSChannel" + "$ref": "#/definitions/AWS_SSO_InstanceAccessControlAttributeConfiguration" }, { - "$ref": "#/definitions/AWS_RAM_Permission" + "$ref": "#/definitions/AWS_MediaPackageV2_OriginEndpointPolicy" }, { - "$ref": "#/definitions/AWS_NetworkFirewall_TLSInspectionConfiguration" + "$ref": "#/definitions/AWS_ACMPCA_CertificateAuthorityActivation" }, { - "$ref": "#/definitions/AWS_RDS_EventSubscription" + "$ref": "#/definitions/AWS_WAFv2_WebACL" }, { - "$ref": "#/definitions/AWS_GroundStation_MissionProfile" + "$ref": "#/definitions/AWS_NetworkManager_Site" }, { - "$ref": "#/definitions/AWS_DataSync_Agent" + "$ref": "#/definitions/AWS_PCAConnectorAD_DirectoryRegistration" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverRule" + "$ref": "#/definitions/AWS_Kinesis_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_StateTemplate" + "$ref": "#/definitions/AWS_Panorama_ApplicationInstance" }, { - "$ref": "#/definitions/AWS_Lex_BotAlias" + "$ref": "#/definitions/AWS_Athena_CapacityReservation" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_ServiceActionAssociation" + "$ref": "#/definitions/AWS_VerifiedPermissions_Policy" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolDomain" + "$ref": "#/definitions/AWS_GameLift_MatchmakingConfiguration" }, { - "$ref": "#/definitions/Alexa_ASK_Skill" + "$ref": "#/definitions/AWS_RoboMaker_RobotApplicationVersion" }, { - "$ref": "#/definitions/AWS_SES_ReceiptRule" + "$ref": "#/definitions/AWS_SSO_PermissionSet" }, { - "$ref": "#/definitions/AWS_RoboMaker_RobotApplication" + "$ref": "#/definitions/AWS_Omics_VariantStore" }, { - "$ref": "#/definitions/AWS_Bedrock_Flow" + "$ref": "#/definitions/AWS_AutoScaling_ScheduledAction" }, { - "$ref": "#/definitions/AWS_EKS_IdentityProviderConfig" + "$ref": "#/definitions/AWS_RDS_Integration" }, { - "$ref": "#/definitions/AWS_SSO_Instance" + "$ref": "#/definitions/AWS_Redshift_ClusterSecurityGroup" }, { - "$ref": "#/definitions/AWS_IAM_ManagedPolicy" + "$ref": "#/definitions/AWS_AppSync_DomainNameApiAssociation" }, { - "$ref": "#/definitions/AWS_SSM_Document" + "$ref": "#/definitions/AWS_EntityResolution_IdMappingWorkflow" }, { - "$ref": "#/definitions/AWS_VpcLattice_TargetGroup" + "$ref": "#/definitions/AWS_SageMaker_ModelPackageGroup" }, { - "$ref": "#/definitions/AWS_Cognito_LogDeliveryConfiguration" + "$ref": "#/definitions/AWS_QuickSight_Dashboard" }, { - "$ref": "#/definitions/AWS_ImageBuilder_ImageRecipe" + "$ref": "#/definitions/AWS_Notifications_ManagedNotificationAdditionalChannelAssociation" }, { - "$ref": "#/definitions/AWS_IoT_JobTemplate" + "$ref": "#/definitions/AWS_CleanRoomsML_ConfiguredModelAlgorithmAssociation" }, { - "$ref": "#/definitions/AWS_KafkaConnect_Connector" + "$ref": "#/definitions/AWS_Glue_Catalog" }, { - "$ref": "#/definitions/AWS_VpcLattice_ResourcePolicy" + "$ref": "#/definitions/AWS_CloudFront_Distribution" }, { - "$ref": "#/definitions/AWS_CertificateManager_Account" + "$ref": "#/definitions/AWS_ARCZonalShift_ZonalAutoshiftConfiguration" }, { - "$ref": "#/definitions/AWS_SES_MailManagerRelay" + "$ref": "#/definitions/AWS_EC2_Subnet" }, { - "$ref": "#/definitions/AWS_GreengrassV2_ComponentVersion" + "$ref": "#/definitions/AWS_IoT_ThingType" }, { - "$ref": "#/definitions/AWS_DataZone_Connection" + "$ref": "#/definitions/AWS_ImageBuilder_DistributionConfiguration" }, { - "$ref": "#/definitions/AWS_AppMesh_VirtualService" + "$ref": "#/definitions/AWS_SimSpaceWeaver_Simulation" }, { - "$ref": "#/definitions/AWS_Elasticsearch_Domain" + "$ref": "#/definitions/AWS_BedrockAgentCore_RuntimeEndpoint" }, { - "$ref": "#/definitions/AWS_Route53Resolver_FirewallDomainList" + "$ref": "#/definitions/AWS_Wisdom_AIAgent" }, { - "$ref": "#/definitions/AWS_Pinpoint_VoiceChannel" + "$ref": "#/definitions/AWS_ResourceExplorer2_Index" }, { - "$ref": "#/definitions/AWS_SecurityHub_HubV2" + "$ref": "#/definitions/AWS_Route53GlobalResolver_HostedZoneAssociation" }, { - "$ref": "#/definitions/AWS_RefactorSpaces_Application" + "$ref": "#/definitions/AWS_DataSync_LocationNFS" }, { - "$ref": "#/definitions/AWS_SageMaker_Pipeline" + "$ref": "#/definitions/AWS_IoTAnalytics_Pipeline" }, { - "$ref": "#/definitions/AWS_Connect_InstanceStorageConfig" + "$ref": "#/definitions/AWS_ServiceCatalog_CloudFormationProduct" }, { - "$ref": "#/definitions/AWS_LakeFormation_PrincipalPermissions" + "$ref": "#/definitions/AWS_CloudFront_CachePolicy" }, { - "$ref": "#/definitions/AWS_Lambda_Function" + "$ref": "#/definitions/AWS_CloudFormation_ModuleDefaultVersion" }, { - "$ref": "#/definitions/AWS_CloudFront_OriginAccessControl" + "$ref": "#/definitions/AWS_AppFlow_ConnectorProfile" }, { - "$ref": "#/definitions/AWS_MPA_ApprovalTeam" + "$ref": "#/definitions/AWS_NetworkFirewall_Firewall" }, { - "$ref": "#/definitions/AWS_AppStream_Stack" + "$ref": "#/definitions/AWS_NetworkManager_SiteToSiteVpnAttachment" }, { - "$ref": "#/definitions/AWS_BillingConductor_PricingRule" + "$ref": "#/definitions/AWS_EC2_SpotFleet" }, { - "$ref": "#/definitions/AWS_AppMesh_GatewayRoute" + "$ref": "#/definitions/AWS_SageMaker_AppImageConfig" }, { - "$ref": "#/definitions/AWS_DataZone_EnvironmentActions" + "$ref": "#/definitions/AWS_GuardDuty_Member" }, { - "$ref": "#/definitions/AWS_MediaLive_SdiSource" + "$ref": "#/definitions/AWS_EC2_Host" }, { - "$ref": "#/definitions/AWS_CodeStarConnections_RepositoryLink" + "$ref": "#/definitions/AWS_EC2_RouteTable" }, { - "$ref": "#/definitions/AWS_CleanRooms_AnalysisTemplate" + "$ref": "#/definitions/AWS_GreengrassV2_ComponentVersion" }, { - "$ref": "#/definitions/AWS_ImageBuilder_ImagePipeline" + "$ref": "#/definitions/AWS_SSMGuiConnect_Preferences" }, { - "$ref": "#/definitions/AWS_Deadline_StorageProfile" + "$ref": "#/definitions/AWS_CloudFormation_StackSet" }, { - "$ref": "#/definitions/AWS_StepFunctions_StateMachineAlias" + "$ref": "#/definitions/AWS_LakeFormation_DataLakeSettings" }, { - "$ref": "#/definitions/AWS_EC2_Instance" + "$ref": "#/definitions/AWS_Location_Tracker" }, { - "$ref": "#/definitions/AWS_DMS_ReplicationTask" + "$ref": "#/definitions/AWS_NeptuneGraph_GraphSnapshot" }, { - "$ref": "#/definitions/AWS_AppMesh_Mesh" + "$ref": "#/definitions/AWS_IoTWireless_NetworkAnalyzerConfiguration" }, { - "$ref": "#/definitions/AWS_EC2_RouteServerEndpoint" + "$ref": "#/definitions/AWS_ServiceCatalog_TagOptionAssociation" }, { - "$ref": "#/definitions/AWS_EFS_FileSystem" + "$ref": "#/definitions/AWS_Comprehend_DocumentClassifier" }, { - "$ref": "#/definitions/AWS_MemoryDB_User" + "$ref": "#/definitions/AWS_Glue_Registry" }, { - "$ref": "#/definitions/AWS_EC2_TrafficMirrorFilterRule" + "$ref": "#/definitions/AWS_Route53GlobalResolver_DnsView" }, { - "$ref": "#/definitions/AWS_IoT_SoftwarePackageVersion" + "$ref": "#/definitions/AWS_DataSync_LocationFSxONTAP" }, { - "$ref": "#/definitions/AWS_SageMaker_StudioLifecycleConfig" + "$ref": "#/definitions/AWS_ApplicationSignals_GroupingConfiguration" }, { - "$ref": "#/definitions/AWS_ElasticBeanstalk_Environment" + "$ref": "#/definitions/AWS_OpsWorks_Layer" }, { - "$ref": "#/definitions/AWS_IoTWireless_DeviceProfile" + "$ref": "#/definitions/AWS_CloudFront_KeyValueStore" }, { - "$ref": "#/definitions/AWS_Omics_WorkflowVersion" + "$ref": "#/definitions/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry" }, { - "$ref": "#/definitions/AWS_CodeConnections_Connection" + "$ref": "#/definitions/AWS_OpsWorks_App" }, { - "$ref": "#/definitions/AWS_WAFRegional_WebACLAssociation" + "$ref": "#/definitions/AWS_CleanRooms_Collaboration" }, { - "$ref": "#/definitions/AWS_KafkaConnect_CustomPlugin" + "$ref": "#/definitions/AWS_IVS_PlaybackKeyPair" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancing_LoadBalancer" + "$ref": "#/definitions/AWS_ManagedBlockchain_Member" }, { - "$ref": "#/definitions/AWS_SecretsManager_RotationSchedule" + "$ref": "#/definitions/AWS_CleanRooms_Membership" }, { - "$ref": "#/definitions/AWS_RedshiftServerless_Workgroup" + "$ref": "#/definitions/AWS_IoTWireless_ServiceProfile" }, { - "$ref": "#/definitions/AWS_CloudFront_Function" + "$ref": "#/definitions/AWS_IdentityStore_Group" }, { - "$ref": "#/definitions/AWS_SecurityLake_SubscriberNotification" + "$ref": "#/definitions/AWS_QBusiness_Permission" }, { - "$ref": "#/definitions/AWS_IVS_RecordingConfiguration" + "$ref": "#/definitions/AWS_SageMaker_NotebookInstance" }, { - "$ref": "#/definitions/AWS_ManagedBlockchain_Member" + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_Listener" }, { - "$ref": "#/definitions/AWS_Deadline_LicenseEndpoint" + "$ref": "#/definitions/AWS_AutoScaling_AutoScalingGroup" }, { - "$ref": "#/definitions/AWS_MediaLive_ChannelPlacementGroup" + "$ref": "#/definitions/AWS_IoT_AccountAuditConfiguration" }, { - "$ref": "#/definitions/AWS_Events_Archive" + "$ref": "#/definitions/AWS_KafkaConnect_CustomPlugin" }, { - "$ref": "#/definitions/AWS_GameLift_Fleet" + "$ref": "#/definitions/AWS_InspectorV2_CodeSecurityScanConfiguration" }, { - "$ref": "#/definitions/AWS_Route53_KeySigningKey" + "$ref": "#/definitions/AWS_IdentityStore_GroupMembership" }, { - "$ref": "#/definitions/AWS_Pinpoint_GCMChannel" + "$ref": "#/definitions/AWS_OpsWorks_ElasticLoadBalancerAttachment" }, { - "$ref": "#/definitions/AWS_ControlTower_EnabledControl" + "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastGroupSource" }, { - "$ref": "#/definitions/AWS_CleanRooms_IdMappingTable" + "$ref": "#/definitions/AWS_Shield_Protection" }, { - "$ref": "#/definitions/AWS_ImageBuilder_InfrastructureConfiguration" + "$ref": "#/definitions/AWS_EKS_Capability" }, { - "$ref": "#/definitions/AWS_DynamoDB_GlobalTable" + "$ref": "#/definitions/AWS_MediaTailor_Channel" }, { - "$ref": "#/definitions/AWS_EventSchemas_RegistryPolicy" + "$ref": "#/definitions/AWS_Glue_SchemaVersionMetadata" }, { - "$ref": "#/definitions/AWS_CloudFormation_StackSet" + "$ref": "#/definitions/AWS_CloudFormation_PublicTypeVersion" }, { - "$ref": "#/definitions/AWS_SSM_MaintenanceWindowTarget" + "$ref": "#/definitions/AWS_GlobalAccelerator_EndpointGroup" }, { - "$ref": "#/definitions/AWS_Wisdom_AIPrompt" + "$ref": "#/definitions/AWS_WorkSpacesWeb_TrustStore" }, { - "$ref": "#/definitions/AWS_GuardDuty_TrustedEntitySet" + "$ref": "#/definitions/AWS_Glue_Classifier" }, { - "$ref": "#/definitions/AWS_CodeArtifact_PackageGroup" + "$ref": "#/definitions/AWS_CloudFormation_Stack" }, { - "$ref": "#/definitions/AWS_FSx_Volume" + "$ref": "#/definitions/AWS_Connect_TaskTemplate" }, { - "$ref": "#/definitions/AWS_DataSync_LocationEFS" + "$ref": "#/definitions/AWS_Connect_PhoneNumber" }, { - "$ref": "#/definitions/AWS_GuardDuty_Member" + "$ref": "#/definitions/AWS_BedrockAgentCore_Policy" }, { - "$ref": "#/definitions/AWS_IoT_CACertificate" + "$ref": "#/definitions/AWS_Route53_HealthCheck" }, { - "$ref": "#/definitions/AWS_EC2_VPCDHCPOptionsAssociation" + "$ref": "#/definitions/AWS_Pinpoint_VoiceChannel" }, { - "$ref": "#/definitions/AWS_AppConfig_ExtensionAssociation" + "$ref": "#/definitions/AWS_IAM_Policy" }, { - "$ref": "#/definitions/AWS_LicenseManager_License" + "$ref": "#/definitions/AWS_Wisdom_AIPromptVersion" }, { - "$ref": "#/definitions/AWS_CodeGuruReviewer_RepositoryAssociation" + "$ref": "#/definitions/AWS_MWAA_Environment" }, { - "$ref": "#/definitions/AWS_IVS_StorageConfiguration" + "$ref": "#/definitions/AWS_S3Files_FileSystem" }, { - "$ref": "#/definitions/AWS_QuickSight_Template" + "$ref": "#/definitions/AWS_ApplicationSignals_ServiceLevelObjective" }, { - "$ref": "#/definitions/AWS_LakeFormation_DataCellsFilter" + "$ref": "#/definitions/AWS_Neptune_EventSubscription" }, { - "$ref": "#/definitions/AWS_SES_ConfigurationSetEventDestination" + "$ref": "#/definitions/AWS_EC2_ClientVpnTargetNetworkAssociation" }, { - "$ref": "#/definitions/AWS_Signer_ProfilePermission" + "$ref": "#/definitions/AWS_Route53_CidrCollection" }, { - "$ref": "#/definitions/AWS_SecurityHub_PolicyAssociation" + "$ref": "#/definitions/AWS_NetworkManager_CoreNetwork" }, { - "$ref": "#/definitions/AWS_AppSync_DataSource" + "$ref": "#/definitions/AWS_RUM_AppMonitor" }, { - "$ref": "#/definitions/AWS_EMR_InstanceFleetConfig" + "$ref": "#/definitions/AWS_CloudFormation_HookDefaultVersion" }, { - "$ref": "#/definitions/AWS_Route53RecoveryReadiness_Cell" + "$ref": "#/definitions/AWS_Batch_ServiceEnvironment" }, { - "$ref": "#/definitions/AWS_CloudFront_OriginRequestPolicy" + "$ref": "#/definitions/AWS_QBusiness_WebExperience" }, { - "$ref": "#/definitions/AWS_ApiGateway_Resource" + "$ref": "#/definitions/AWS_LakeFormation_Resource" }, { - "$ref": "#/definitions/AWS_Lightsail_Instance" + "$ref": "#/definitions/AWS_QuickSight_Theme" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_DecoderManifest" + "$ref": "#/definitions/AWS_KafkaConnect_WorkerConfiguration" }, { - "$ref": "#/definitions/AWS_Connect_ContactFlowVersion" + "$ref": "#/definitions/AWS_Glue_TableOptimizer" }, { - "$ref": "#/definitions/AWS_Connect_ViewVersion" + "$ref": "#/definitions/AWS_Greengrass_ResourceDefinition" }, { - "$ref": "#/definitions/AWS_IVS_PublicKey" + "$ref": "#/definitions/AWS_IAM_ManagedPolicy" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_AccessPolicy" + "$ref": "#/definitions/AWS_ApiGateway_BasePathMapping" }, { - "$ref": "#/definitions/AWS_DataPipeline_Pipeline" + "$ref": "#/definitions/AWS_Route53GlobalResolver_FirewallRule" }, { - "$ref": "#/definitions/AWS_MediaPackage_Asset" + "$ref": "#/definitions/AWS_QBusiness_Index" }, { - "$ref": "#/definitions/AWS_VpcLattice_ResourceGateway" + "$ref": "#/definitions/AWS_QuickSight_CustomPermissions" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverQueryLoggingConfig" + "$ref": "#/definitions/AWS_Cassandra_Type" }, { - "$ref": "#/definitions/AWS_AppStream_Application" + "$ref": "#/definitions/AWS_Transfer_Certificate" }, { - "$ref": "#/definitions/AWS_ImageBuilder_Component" + "$ref": "#/definitions/AWS_Backup_BackupVault" }, { - "$ref": "#/definitions/AWS_Glue_Partition" + "$ref": "#/definitions/AWS_ApiGateway_VpcLink" }, { - "$ref": "#/definitions/AWS_Neptune_DBParameterGroup" + "$ref": "#/definitions/AWS_MediaConnect_FlowOutput" }, { - "$ref": "#/definitions/AWS_Pipes_Pipe" + "$ref": "#/definitions/AWS_IoTFleetWise_ModelManifest" }, { - "$ref": "#/definitions/AWS_EC2_CustomerGateway" + "$ref": "#/definitions/AWS_DMS_DataMigration" }, { - "$ref": "#/definitions/AWS_RUM_AppMonitor" + "$ref": "#/definitions/AWS_S3_StorageLensGroup" }, { - "$ref": "#/definitions/AWS_IoT_AccountAuditConfiguration" + "$ref": "#/definitions/AWS_Grafana_Workspace" }, { - "$ref": "#/definitions/AWS_WorkSpaces_WorkspacesPool" + "$ref": "#/definitions/AWS_Organizations_Policy" }, { - "$ref": "#/definitions/AWS_XRay_ResourcePolicy" + "$ref": "#/definitions/AWS_WorkspacesInstances_WorkspaceInstance" }, { - "$ref": "#/definitions/AWS_AppMesh_VirtualGateway" + "$ref": "#/definitions/AWS_SNS_TopicPolicy" }, { - "$ref": "#/definitions/AWS_OpsWorks_Stack" + "$ref": "#/definitions/AWS_Greengrass_ResourceDefinitionVersion" }, { - "$ref": "#/definitions/AWS_XRay_TransactionSearchConfig" + "$ref": "#/definitions/AWS_ObservabilityAdmin_TelemetryEnrichment" }, { - "$ref": "#/definitions/AWS_Backup_RestoreTestingSelection" + "$ref": "#/definitions/AWS_WorkSpacesThinClient_Environment" }, { - "$ref": "#/definitions/AWS_IoT_Command" + "$ref": "#/definitions/AWS_MediaTailor_ChannelPolicy" }, { - "$ref": "#/definitions/AWS_IAM_AccessKey" + "$ref": "#/definitions/AWS_ServiceCatalog_StackSetConstraint" }, { - "$ref": "#/definitions/AWS_AppSync_ChannelNamespace" + "$ref": "#/definitions/AWS_SSM_PatchBaseline" }, { - "$ref": "#/definitions/AWS_Amplify_Domain" + "$ref": "#/definitions/AWS_Personalize_Dataset" }, { - "$ref": "#/definitions/AWS_IVS_PlaybackRestrictionPolicy" + "$ref": "#/definitions/AWS_AmazonMQ_Configuration" }, { - "$ref": "#/definitions/AWS_CloudFormation_PublicTypeVersion" + "$ref": "#/definitions/AWS_Shield_DRTAccess" }, { - "$ref": "#/definitions/AWS_SageMaker_AppImageConfig" + "$ref": "#/definitions/AWS_EC2_NetworkInterfacePermission" }, { - "$ref": "#/definitions/AWS_CloudFront_VpcOrigin" + "$ref": "#/definitions/AWS_Cognito_ManagedLoginBranding" }, { - "$ref": "#/definitions/AWS_WAFRegional_RegexPatternSet" + "$ref": "#/definitions/AWS_IoT_Command" }, { - "$ref": "#/definitions/AWS_IoTWireless_FuotaTask" + "$ref": "#/definitions/AWS_DAX_SubnetGroup" }, { - "$ref": "#/definitions/AWS_VpcLattice_ServiceNetworkVpcAssociation" + "$ref": "#/definitions/AWS_Deadline_QueueFleetAssociation" }, { - "$ref": "#/definitions/AWS_Cloud9_EnvironmentEC2" + "$ref": "#/definitions/AWS_IAM_RolePolicy" }, { - "$ref": "#/definitions/AWS_NetworkManager_Link" + "$ref": "#/definitions/AWS_ApiGatewayV2_Authorizer" }, { - "$ref": "#/definitions/AWS_Connect_QuickConnect" + "$ref": "#/definitions/AWS_ApiGatewayV2_Route" }, { - "$ref": "#/definitions/AWS_DataZone_SubscriptionTarget" + "$ref": "#/definitions/AWS_ECS_TaskSet" }, { - "$ref": "#/definitions/AWS_S3Express_BucketPolicy" + "$ref": "#/definitions/AWS_Connect_ContactFlowModule" }, { - "$ref": "#/definitions/AWS_RolesAnywhere_Profile" + "$ref": "#/definitions/AWS_ECS_ExpressGatewayService" }, { - "$ref": "#/definitions/AWS_FraudDetector_Variable" + "$ref": "#/definitions/AWS_CloudFront_ConnectionGroup" }, { - "$ref": "#/definitions/AWS_Pinpoint_EventStream" + "$ref": "#/definitions/AWS_Config_ConformancePack" }, { - "$ref": "#/definitions/AWS_NetworkManager_Site" + "$ref": "#/definitions/AWS_AppIntegrations_Application" }, { - "$ref": "#/definitions/AWS_RolesAnywhere_CRL" + "$ref": "#/definitions/AWS_PaymentCryptography_Key" }, { - "$ref": "#/definitions/AWS_SageMaker_MonitoringSchedule" + "$ref": "#/definitions/AWS_IoTEvents_DetectorModel" }, { - "$ref": "#/definitions/AWS_Evidently_Project" + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_LoadBalancer" }, { - "$ref": "#/definitions/AWS_Evidently_Segment" + "$ref": "#/definitions/AWS_CodeStarConnections_SyncConfiguration" }, { - "$ref": "#/definitions/AWS_SNS_Subscription" + "$ref": "#/definitions/AWS_ElastiCache_ReplicationGroup" }, { - "$ref": "#/definitions/AWS_Glue_CustomEntityType" + "$ref": "#/definitions/AWS_NetworkManager_ConnectPeer" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_AcceptedPortfolioShare" + "$ref": "#/definitions/AWS_XRay_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_OpsWorks_App" + "$ref": "#/definitions/AWS_DevOpsAgent_PrivateConnection" }, { - "$ref": "#/definitions/AWS_GameLift_Alias" + "$ref": "#/definitions/AWS_IVS_PlaybackRestrictionPolicy" }, { - "$ref": "#/definitions/AWS_GameLift_ContainerFleet" + "$ref": "#/definitions/AWS_CloudWatch_Dashboard" }, { - "$ref": "#/definitions/AWS_RDS_OptionGroup" + "$ref": "#/definitions/AWS_AppMesh_GatewayRoute" }, { - "$ref": "#/definitions/AWS_KinesisAnalyticsV2_Application" + "$ref": "#/definitions/AWS_EventSchemas_Discoverer" }, { - "$ref": "#/definitions/AWS_EC2_IPAMResourceDiscoveryAssociation" + "$ref": "#/definitions/AWS_OpenSearchServerless_AccessPolicy" }, { - "$ref": "#/definitions/AWS_ElasticBeanstalk_ConfigurationTemplate" + "$ref": "#/definitions/AWS_EC2_IPAMScope" }, { - "$ref": "#/definitions/AWS_EC2_SecurityGroupVpcAssociation" + "$ref": "#/definitions/AWS_Backup_BackupSelection" }, { - "$ref": "#/definitions/AWS_KafkaConnect_WorkerConfiguration" + "$ref": "#/definitions/AWS_Lambda_Url" }, { - "$ref": "#/definitions/AWS_ApiGateway_DomainNameV2" + "$ref": "#/definitions/AWS_IoT_TopicRule" }, { - "$ref": "#/definitions/AWS_Deadline_Limit" + "$ref": "#/definitions/AWS_DirectConnect_Lag" }, { - "$ref": "#/definitions/AWS_Route53Profiles_Profile" + "$ref": "#/definitions/AWS_CertificateManager_Account" }, { - "$ref": "#/definitions/AWS_ControlTower_LandingZone" + "$ref": "#/definitions/AWS_Personalize_Schema" }, { - "$ref": "#/definitions/AWS_S3Express_AccessPoint" + "$ref": "#/definitions/AWS_EC2_TransitGatewayConnect" }, { - "$ref": "#/definitions/AWS_Lambda_EventSourceMapping" + "$ref": "#/definitions/AWS_SMSVOICE_OptOutList" }, { - "$ref": "#/definitions/AWS_S3Tables_TableBucket" + "$ref": "#/definitions/AWS_SMSVOICE_PhoneNumber" }, { - "$ref": "#/definitions/AWS_FinSpace_Environment" + "$ref": "#/definitions/AWS_EC2_IPAMResourceDiscoveryAssociation" }, { - "$ref": "#/definitions/AWS_DataZone_Owner" + "$ref": "#/definitions/AWS_Notifications_ChannelAssociation" }, { - "$ref": "#/definitions/AWS_IoT_ThingPrincipalAttachment" + "$ref": "#/definitions/AWS_WorkspacesInstances_VolumeAssociation" }, { - "$ref": "#/definitions/AWS_MediaConnect_FlowEntitlement" + "$ref": "#/definitions/AWS_S3_AccessPoint" }, { - "$ref": "#/definitions/AWS_EC2_VPCEndpointService" + "$ref": "#/definitions/AWS_CloudFront_DistributionTenant" }, { - "$ref": "#/definitions/AWS_Lambda_LayerVersionPermission" + "$ref": "#/definitions/AWS_GuardDuty_TrustedEntitySet" }, { - "$ref": "#/definitions/AWS_MSK_Cluster" + "$ref": "#/definitions/AWS_ServiceDiscovery_PrivateDnsNamespace" }, { - "$ref": "#/definitions/AWS_Inspector_ResourceGroup" + "$ref": "#/definitions/AWS_RDS_DBCluster" }, { - "$ref": "#/definitions/AWS_MediaTailor_LiveSource" + "$ref": "#/definitions/AWS_VpcLattice_AccessLogSubscription" }, { - "$ref": "#/definitions/AWS_CE_CostCategory" + "$ref": "#/definitions/AWS_DataPipeline_Pipeline" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_PortfolioProductAssociation" + "$ref": "#/definitions/AWS_UXC_AccountCustomization" }, { - "$ref": "#/definitions/AWS_Transfer_User" + "$ref": "#/definitions/AWS_EventSchemas_RegistryPolicy" }, { - "$ref": "#/definitions/AWS_SSO_Assignment" + "$ref": "#/definitions/AWS_QuickSight_Template" }, { - "$ref": "#/definitions/AWS_Connect_IntegrationAssociation" + "$ref": "#/definitions/AWS_GlobalAccelerator_Listener" }, { - "$ref": "#/definitions/AWS_Cognito_UserPool" + "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_Application" }, { - "$ref": "#/definitions/AWS_Connect_SecurityKey" + "$ref": "#/definitions/AWS_Logs_AccountPolicy" }, { - "$ref": "#/definitions/AWS_BedrockAgentCore_CodeInterpreterCustom" + "$ref": "#/definitions/AWS_EC2_SecurityGroup" }, { - "$ref": "#/definitions/AWS_Connect_Queue" + "$ref": "#/definitions/AWS_SNS_TopicInlinePolicy" }, { - "$ref": "#/definitions/AWS_GlobalAccelerator_Accelerator" + "$ref": "#/definitions/AWS_RDS_GlobalCluster" }, { - "$ref": "#/definitions/AWS_AppFlow_Connector" + "$ref": "#/definitions/AWS_SSO_Application" }, { - "$ref": "#/definitions/AWS_Connect_UserHierarchyStructure" + "$ref": "#/definitions/AWS_MSK_Topic" }, { - "$ref": "#/definitions/AWS_Route53RecoveryControl_ControlPanel" + "$ref": "#/definitions/AWS_CloudFormation_ModuleVersion" }, { - "$ref": "#/definitions/AWS_NetworkManager_ConnectPeer" + "$ref": "#/definitions/AWS_SSM_Association" }, { - "$ref": "#/definitions/AWS_Route53_DNSSEC" + "$ref": "#/definitions/AWS_ImageBuilder_ContainerRecipe" }, { - "$ref": "#/definitions/AWS_IAM_VirtualMFADevice" + "$ref": "#/definitions/AWS_IoT_CertificateProvider" }, { - "$ref": "#/definitions/AWS_OpsWorks_Instance" + "$ref": "#/definitions/AWS_SecurityHub_SecurityControl" }, { - "$ref": "#/definitions/AWS_DataSync_LocationObjectStorage" + "$ref": "#/definitions/AWS_IVS_EncoderConfiguration" }, { - "$ref": "#/definitions/AWS_SecurityLake_AwsLogSource" + "$ref": "#/definitions/AWS_RTBFabric_Link" }, { - "$ref": "#/definitions/AWS_ApiGateway_Account" + "$ref": "#/definitions/AWS_IoTTwinMaker_Workspace" }, { - "$ref": "#/definitions/AWS_EC2_EIPAssociation" + "$ref": "#/definitions/AWS_EC2_NetworkInsightsPath" }, { - "$ref": "#/definitions/AWS_AppSync_Api" + "$ref": "#/definitions/AWS_ElastiCache_ServerlessCache" }, { - "$ref": "#/definitions/AWS_SSMQuickSetup_ConfigurationManager" + "$ref": "#/definitions/AWS_MediaConnect_FlowSource" }, { - "$ref": "#/definitions/AWS_DAX_Cluster" + "$ref": "#/definitions/AWS_GameLift_Fleet" }, { - "$ref": "#/definitions/AWS_Greengrass_GroupVersion" + "$ref": "#/definitions/AWS_DataBrew_Ruleset" }, { - "$ref": "#/definitions/AWS_DMS_DataMigration" + "$ref": "#/definitions/AWS_Interconnect_Connection" }, { - "$ref": "#/definitions/AWS_AutoScaling_AutoScalingGroup" + "$ref": "#/definitions/AWS_EC2_RouteServerEndpoint" }, { - "$ref": "#/definitions/AWS_Lambda_CodeSigningConfig" + "$ref": "#/definitions/AWS_Comprehend_Flywheel" }, { - "$ref": "#/definitions/AWS_EKS_Addon" + "$ref": "#/definitions/AWS_Elasticsearch_Domain" }, { - "$ref": "#/definitions/AWS_MSK_ServerlessCluster" + "$ref": "#/definitions/AWS_SDB_Domain" }, { - "$ref": "#/definitions/AWS_RDS_DBSecurityGroupIngress" + "$ref": "#/definitions/AWS_KafkaConnect_Connector" }, { - "$ref": "#/definitions/AWS_DataZone_DomainUnit" + "$ref": "#/definitions/AWS_ApiGateway_UsagePlan" }, { - "$ref": "#/definitions/AWS_Config_ConfigRule" + "$ref": "#/definitions/AWS_CloudFront_Function" }, { - "$ref": "#/definitions/AWS_Route53Profiles_ProfileResourceAssociation" + "$ref": "#/definitions/AWS_SecurityHub_Insight" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_Fleet" + "$ref": "#/definitions/AWS_EC2_TrafficMirrorFilter" }, { - "$ref": "#/definitions/AWS_EC2_LocalGatewayRouteTableVirtualInterfaceGroupAssociation" + "$ref": "#/definitions/AWS_ConnectCampaigns_Campaign" }, { - "$ref": "#/definitions/AWS_MPA_IdentitySource" + "$ref": "#/definitions/AWS_GuardDuty_ThreatIntelSet" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverConfig" + "$ref": "#/definitions/AWS_SecurityHub_OrganizationConfiguration" }, { - "$ref": "#/definitions/AWS_S3Outposts_AccessPoint" + "$ref": "#/definitions/AWS_AppSync_ApiCache" }, { - "$ref": "#/definitions/AWS_KinesisAnalyticsV2_ApplicationCloudWatchLoggingOption" + "$ref": "#/definitions/AWS_CloudTrail_Dashboard" }, { - "$ref": "#/definitions/AWS_SageMaker_UserProfile" + "$ref": "#/definitions/AWS_Config_DeliveryChannel" }, { - "$ref": "#/definitions/AWS_EMR_SecurityConfiguration" + "$ref": "#/definitions/AWS_Evidently_Feature" }, { - "$ref": "#/definitions/AWS_SSMIncidents_ResponsePlan" + "$ref": "#/definitions/AWS_IVS_IngestConfiguration" }, { - "$ref": "#/definitions/AWS_EC2_VPCBlockPublicAccessExclusion" + "$ref": "#/definitions/AWS_S3Vectors_Index" }, { - "$ref": "#/definitions/AWS_SSM_MaintenanceWindow" + "$ref": "#/definitions/AWS_SSM_ResourceDataSync" }, { - "$ref": "#/definitions/AWS_Proton_EnvironmentTemplate" + "$ref": "#/definitions/AWS_RTBFabric_InboundExternalLink" }, { - "$ref": "#/definitions/AWS_SageMaker_ModelExplainabilityJobDefinition" + "$ref": "#/definitions/AWS_ConnectCampaignsV2_Campaign" }, { - "$ref": "#/definitions/AWS_Timestream_ScheduledQuery" + "$ref": "#/definitions/AWS_Wisdom_MessageTemplateVersion" }, { - "$ref": "#/definitions/AWS_IoT_SoftwarePackage" + "$ref": "#/definitions/AWS_IAM_AccessKey" }, { - "$ref": "#/definitions/AWS_Pinpoint_SmsTemplate" + "$ref": "#/definitions/AWS_EC2_RouteServer" }, { - "$ref": "#/definitions/AWS_S3Tables_Namespace" + "$ref": "#/definitions/AWS_MediaConvert_Queue" }, { - "$ref": "#/definitions/AWS_EntityResolution_SchemaMapping" + "$ref": "#/definitions/AWS_Organizations_Account" }, { - "$ref": "#/definitions/AWS_FIS_ExperimentTemplate" + "$ref": "#/definitions/AWS_CloudFront_AnycastIpList" }, { - "$ref": "#/definitions/AWS_IoT_DomainConfiguration" + "$ref": "#/definitions/AWS_Batch_JobQueue" }, { - "$ref": "#/definitions/AWS_Backup_BackupPlan" + "$ref": "#/definitions/AWS_Bedrock_KnowledgeBase" }, { - "$ref": "#/definitions/AWS_Config_ConfigurationRecorder" + "$ref": "#/definitions/AWS_PinpointEmail_DedicatedIpPool" }, { - "$ref": "#/definitions/AWS_VpcLattice_Listener" + "$ref": "#/definitions/AWS_ApiGateway_DomainName" }, { - "$ref": "#/definitions/AWS_IAM_Role" + "$ref": "#/definitions/AWS_ServiceCatalog_PortfolioShare" }, { - "$ref": "#/definitions/AWS_PCAConnectorAD_Template" + "$ref": "#/definitions/AWS_MediaConnect_Bridge" }, { - "$ref": "#/definitions/AWS_SQS_Queue" + "$ref": "#/definitions/AWS_IoT_EncryptionConfiguration" }, { - "$ref": "#/definitions/AWS_RedshiftServerless_Namespace" + "$ref": "#/definitions/AWS_Cassandra_Table" }, { - "$ref": "#/definitions/AWS_EC2_IpPoolRouteTableAssociation" + "$ref": "#/definitions/AWS_CleanRooms_IdMappingTable" }, { - "$ref": "#/definitions/AWS_Notifications_OrganizationalUnitAssociation" + "$ref": "#/definitions/AWS_BedrockAgentCore_GatewayTarget" }, { - "$ref": "#/definitions/AWS_MemoryDB_ACL" + "$ref": "#/definitions/AWS_VerifiedPermissions_PolicyStore" }, { - "$ref": "#/definitions/AWS_PCAConnectorSCEP_Challenge" + "$ref": "#/definitions/AWS_BedrockAgentCore_OAuth2CredentialProvider" }, { - "$ref": "#/definitions/AWS_MediaConvert_JobTemplate" + "$ref": "#/definitions/AWS_ResourceGroups_Group" }, { - "$ref": "#/definitions/AWS_WAF_WebACL" + "$ref": "#/definitions/AWS_ApiGatewayV2_ApiGatewayManagedOverrides" }, { - "$ref": "#/definitions/AWS_IoT_TopicRule" + "$ref": "#/definitions/AWS_KinesisAnalytics_Application" }, { - "$ref": "#/definitions/AWS_DMS_InstanceProfile" + "$ref": "#/definitions/AWS_IoTSiteWise_Gateway" }, { - "$ref": "#/definitions/AWS_ElastiCache_CacheCluster" + "$ref": "#/definitions/AWS_ElasticBeanstalk_ApplicationVersion" }, { - "$ref": "#/definitions/AWS_Timestream_Table" + "$ref": "#/definitions/AWS_OpenSearchServerless_LifecyclePolicy" }, { - "$ref": "#/definitions/AWS_WAFRegional_RateBasedRule" + "$ref": "#/definitions/AWS_Oam_Sink" }, { - "$ref": "#/definitions/AWS_Logs_AccountPolicy" + "$ref": "#/definitions/AWS_WAFv2_LoggingConfiguration" }, { - "$ref": "#/definitions/AWS_S3Outposts_Bucket" + "$ref": "#/definitions/AWS_Transfer_Workflow" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_VpcEndpoint" + "$ref": "#/definitions/AWS_RedshiftServerless_Snapshot" }, { - "$ref": "#/definitions/AWS_RAM_ResourceShare" + "$ref": "#/definitions/AWS_Bedrock_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_ACMPCA_CertificateAuthority" + "$ref": "#/definitions/AWS_FSx_Volume" }, { - "$ref": "#/definitions/AWS_Neptune_DBInstance" + "$ref": "#/definitions/AWS_KendraRanking_ExecutionPlan" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_EventStream" + "$ref": "#/definitions/AWS_SMSVOICE_Pool" }, { - "$ref": "#/definitions/AWS_CloudWatch_AnomalyDetector" + "$ref": "#/definitions/AWS_CustomerProfiles_SegmentDefinition" }, { - "$ref": "#/definitions/AWS_ODB_OdbPeeringConnection" + "$ref": "#/definitions/AWS_Batch_SchedulingPolicy" }, { - "$ref": "#/definitions/AWS_Detective_OrganizationAdmin" + "$ref": "#/definitions/AWS_MediaConnect_RouterNetworkInterface" }, { - "$ref": "#/definitions/AWS_DataZone_Environment" + "$ref": "#/definitions/AWS_WAFv2_WebACLAssociation" }, { - "$ref": "#/definitions/AWS_ImageBuilder_Image" + "$ref": "#/definitions/AWS_Connect_ContactFlowModuleVersion" }, { - "$ref": "#/definitions/AWS_CustomerProfiles_SegmentDefinition" + "$ref": "#/definitions/AWS_Connect_ContactFlow" }, { - "$ref": "#/definitions/AWS_Connect_Rule" + "$ref": "#/definitions/AWS_SageMaker_CodeRepository" }, { - "$ref": "#/definitions/AWS_LicenseManager_Grant" + "$ref": "#/definitions/AWS_Glue_CustomEntityType" }, { - "$ref": "#/definitions/AWS_Timestream_InfluxDBInstance" + "$ref": "#/definitions/AWS_IVS_RecordingConfiguration" }, { - "$ref": "#/definitions/AWS_Deadline_QueueLimitAssociation" + "$ref": "#/definitions/AWS_GroundStation_DataflowEndpointGroupV2" }, { - "$ref": "#/definitions/AWS_Events_Connection" + "$ref": "#/definitions/AWS_QuickSight_VPCConnection" }, { - "$ref": "#/definitions/AWS_SSMGuiConnect_Preferences" + "$ref": "#/definitions/AWS_CloudTrail_Channel" }, { - "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_AttributeGroup" + "$ref": "#/definitions/AWS_ApiGatewayV2_Model" }, { - "$ref": "#/definitions/AWS_Cognito_UserPoolClient" + "$ref": "#/definitions/AWS_BedrockAgentCore_CodeInterpreterCustom" }, { - "$ref": "#/definitions/AWS_Comprehend_DocumentClassifier" + "$ref": "#/definitions/AWS_EC2_VerifiedAccessGroup" }, { - "$ref": "#/definitions/AWS_SMSVOICE_PhoneNumber" + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_ListenerCertificate" }, { - "$ref": "#/definitions/AWS_OpsWorks_Layer" + "$ref": "#/definitions/AWS_RDS_EventSubscription" }, { - "$ref": "#/definitions/AWS_GameLift_Script" + "$ref": "#/definitions/AWS_Wisdom_AIGuardrail" }, { - "$ref": "#/definitions/AWS_Transfer_Workflow" + "$ref": "#/definitions/AWS_SageMaker_InferenceComponent" }, { - "$ref": "#/definitions/AWS_CloudFormation_Stack" + "$ref": "#/definitions/AWS_RDS_DBInstance" }, { - "$ref": "#/definitions/AWS_Wisdom_MessageTemplateVersion" + "$ref": "#/definitions/AWS_ACMPCA_Certificate" }, { - "$ref": "#/definitions/AWS_SSM_ResourcePolicy" + "$ref": "#/definitions/AWS_FSx_Snapshot" }, { - "$ref": "#/definitions/AWS_DataBrew_Project" + "$ref": "#/definitions/AWS_SupportApp_SlackChannelConfiguration" }, { - "$ref": "#/definitions/AWS_Organizations_OrganizationalUnit" + "$ref": "#/definitions/AWS_OpenSearchService_Application" }, { - "$ref": "#/definitions/AWS_Location_Tracker" + "$ref": "#/definitions/AWS_EC2_IPAMPoolCidr" }, { - "$ref": "#/definitions/AWS_Bedrock_PromptVersion" + "$ref": "#/definitions/AWS_ODB_CloudAutonomousVmCluster" }, { - "$ref": "#/definitions/AWS_Lightsail_Bucket" + "$ref": "#/definitions/AWS_AuditManager_Assessment" }, { - "$ref": "#/definitions/AWS_NetworkManager_ConnectAttachment" + "$ref": "#/definitions/AWS_PCAConnectorAD_Template" }, { - "$ref": "#/definitions/AWS_AppStream_User" + "$ref": "#/definitions/AWS_ApiGateway_Resource" }, { - "$ref": "#/definitions/AWS_EC2_VPCBlockPublicAccessOptions" + "$ref": "#/definitions/AWS_ECS_TaskDefinition" }, { - "$ref": "#/definitions/AWS_EC2_VPNConnection" + "$ref": "#/definitions/AWS_GameLift_GameSessionQueue" }, { - "$ref": "#/definitions/AWS_IVS_Channel" + "$ref": "#/definitions/AWS_EC2_EC2Fleet" }, { - "$ref": "#/definitions/AWS_ApiGateway_UsagePlan" + "$ref": "#/definitions/AWS_SageMaker_Cluster" }, { - "$ref": "#/definitions/AWS_Lex_Bot" + "$ref": "#/definitions/AWS_IoTFleetWise_Vehicle" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastGroupSource" + "$ref": "#/definitions/AWS_Connect_Prompt" }, { - "$ref": "#/definitions/AWS_IdentityStore_Group" + "$ref": "#/definitions/AWS_CUR_ReportDefinition" }, { - "$ref": "#/definitions/AWS_IoTWireless_NetworkAnalyzerConfiguration" + "$ref": "#/definitions/AWS_Route53Resolver_ResolverRule" }, { - "$ref": "#/definitions/AWS_RDS_CustomDBEngineVersion" + "$ref": "#/definitions/AWS_KMS_Alias" }, { - "$ref": "#/definitions/AWS_AppStream_AppBlock" + "$ref": "#/definitions/AWS_FSx_StorageVirtualMachine" }, { - "$ref": "#/definitions/AWS_AccessAnalyzer_Analyzer" + "$ref": "#/definitions/AWS_CloudFront_KeyGroup" }, { - "$ref": "#/definitions/AWS_Pinpoint_InAppTemplate" + "$ref": "#/definitions/AWS_Cognito_LogDeliveryConfiguration" }, { - "$ref": "#/definitions/AWS_IoTTwinMaker_Scene" + "$ref": "#/definitions/AWS_DMS_DataProvider" }, { - "$ref": "#/definitions/AWS_MediaPackageV2_OriginEndpointPolicy" + "$ref": "#/definitions/AWS_ECR_RegistryPolicy" }, { - "$ref": "#/definitions/AWS_AppStream_StackFleetAssociation" + "$ref": "#/definitions/AWS_Macie_Session" }, { - "$ref": "#/definitions/AWS_SecurityHub_AggregatorV2" + "$ref": "#/definitions/AWS_EC2_VPCEncryptionControl" }, { - "$ref": "#/definitions/AWS_Glue_MLTransform" + "$ref": "#/definitions/AWS_Glue_DataCatalogEncryptionSettings" }, { - "$ref": "#/definitions/AWS_Greengrass_SubscriptionDefinitionVersion" + "$ref": "#/definitions/AWS_FraudDetector_Label" }, { - "$ref": "#/definitions/AWS_ServiceDiscovery_HttpNamespace" + "$ref": "#/definitions/AWS_VpcLattice_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_Transfer_Profile" + "$ref": "#/definitions/AWS_S3ObjectLambda_AccessPoint" }, { - "$ref": "#/definitions/AWS_Connect_ContactFlowModule" + "$ref": "#/definitions/AWS_ImageBuilder_ImagePipeline" }, { - "$ref": "#/definitions/AWS_Kinesis_ResourcePolicy" + "$ref": "#/definitions/AWS_IVS_Stage" }, { - "$ref": "#/definitions/AWS_Bedrock_Guardrail" + "$ref": "#/definitions/AWS_Route53Resolver_FirewallRuleGroup" }, { - "$ref": "#/definitions/AWS_SageMaker_Image" + "$ref": "#/definitions/AWS_ApiGateway_UsagePlanKey" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_IdentityProvider" + "$ref": "#/definitions/AWS_Connect_SecurityProfile" }, { - "$ref": "#/definitions/AWS_SSMContacts_Plan" + "$ref": "#/definitions/AWS_SES_MailManagerAddonInstance" }, { - "$ref": "#/definitions/AWS_MediaLive_CloudWatchAlarmTemplateGroup" + "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastDomain" }, { - "$ref": "#/definitions/AWS_CloudFormation_HookVersion" + "$ref": "#/definitions/AWS_Logs_LogGroup" }, { - "$ref": "#/definitions/AWS_DataSync_Task" + "$ref": "#/definitions/AWS_Lambda_LayerVersion" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_SessionLogger" + "$ref": "#/definitions/AWS_Lambda_CapacityProvider" }, { - "$ref": "#/definitions/AWS_Notifications_NotificationConfiguration" + "$ref": "#/definitions/AWS_Rekognition_StreamProcessor" }, { - "$ref": "#/definitions/AWS_NetworkFirewall_RuleGroup" + "$ref": "#/definitions/AWS_AutoScaling_WarmPool" }, { - "$ref": "#/definitions/AWS_EC2_IPAMAllocation" + "$ref": "#/definitions/AWS_EC2_CapacityManagerDataExport" }, { - "$ref": "#/definitions/AWS_Location_RouteCalculator" + "$ref": "#/definitions/AWS_SSM_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_PaymentCryptography_Key" + "$ref": "#/definitions/AWS_IVSChat_Room" }, { - "$ref": "#/definitions/AWS_DataSync_LocationNFS" + "$ref": "#/definitions/AWS_ServiceDiscovery_Instance" }, { - "$ref": "#/definitions/AWS_WorkSpaces_Workspace" + "$ref": "#/definitions/AWS_FSx_FileSystem" }, { - "$ref": "#/definitions/AWS_RDS_DBProxyTargetGroup" + "$ref": "#/definitions/AWS_DataZone_EnvironmentActions" }, { - "$ref": "#/definitions/AWS_ElastiCache_SecurityGroup" + "$ref": "#/definitions/AWS_SES_Tenant" }, { - "$ref": "#/definitions/AWS_Wisdom_AIGuardrailVersion" + "$ref": "#/definitions/AWS_RefactorSpaces_Service" }, { - "$ref": "#/definitions/AWS_Transfer_Server" + "$ref": "#/definitions/AWS_Amplify_App" }, { - "$ref": "#/definitions/AWS_RDS_DBShardGroup" + "$ref": "#/definitions/AWS_Pinpoint_PushTemplate" }, { - "$ref": "#/definitions/AWS_CloudFormation_WaitConditionHandle" + "$ref": "#/definitions/AWS_AmplifyUIBuilder_Form" }, { - "$ref": "#/definitions/AWS_EC2_CapacityReservation" + "$ref": "#/definitions/AWS_CustomerProfiles_EventStream" }, { - "$ref": "#/definitions/AWS_WAF_SizeConstraintSet" + "$ref": "#/definitions/AWS_EC2_VPCCidrBlock" }, { - "$ref": "#/definitions/AWS_SecurityLake_DataLake" + "$ref": "#/definitions/AWS_SageMaker_Endpoint" }, { - "$ref": "#/definitions/AWS_Pinpoint_EmailChannel" + "$ref": "#/definitions/AWS_NeptuneGraph_PrivateGraphEndpoint" }, { - "$ref": "#/definitions/AWS_ECR_Repository" + "$ref": "#/definitions/AWS_MediaTailor_VodSource" }, { - "$ref": "#/definitions/AWS_Bedrock_Prompt" + "$ref": "#/definitions/AWS_CleanRooms_ConfiguredTable" }, { - "$ref": "#/definitions/AWS_Cassandra_Keyspace" + "$ref": "#/definitions/AWS_EC2_LaunchTemplate" }, { - "$ref": "#/definitions/AWS_Forecast_DatasetGroup" + "$ref": "#/definitions/AWS_EC2_CarrierGateway" }, { - "$ref": "#/definitions/AWS_Forecast_Dataset" + "$ref": "#/definitions/AWS_Connect_DataTable" }, { - "$ref": "#/definitions/AWS_EC2_RouteServerPropagation" + "$ref": "#/definitions/AWS_Connect_InstanceStorageConfig" }, { - "$ref": "#/definitions/AWS_RoboMaker_RobotApplicationVersion" + "$ref": "#/definitions/AWS_HealthLake_FHIRDatastore" }, { - "$ref": "#/definitions/AWS_SageMaker_CodeRepository" + "$ref": "#/definitions/AWS_Synthetics_Canary" }, { - "$ref": "#/definitions/AWS_ElasticBeanstalk_ApplicationVersion" + "$ref": "#/definitions/AWS_MediaPackage_Channel" }, { - "$ref": "#/definitions/AWS_IAM_Group" + "$ref": "#/definitions/AWS_Connect_UserHierarchyStructure" }, { - "$ref": "#/definitions/AWS_CleanRooms_ConfiguredTableAssociation" + "$ref": "#/definitions/AWS_Bedrock_Blueprint" }, { - "$ref": "#/definitions/AWS_IoT_RoleAlias" + "$ref": "#/definitions/AWS_CloudFront_RealtimeLogConfig" }, { - "$ref": "#/definitions/AWS_Neptune_DBCluster" + "$ref": "#/definitions/AWS_GlobalAccelerator_Accelerator" }, { - "$ref": "#/definitions/AWS_WAFRegional_GeoMatchSet" + "$ref": "#/definitions/AWS_Route53Resolver_OutpostResolver" }, { - "$ref": "#/definitions/AWS_SSMContacts_Rotation" + "$ref": "#/definitions/AWS_Transfer_Profile" }, { - "$ref": "#/definitions/AWS_Config_StoredQuery" + "$ref": "#/definitions/AWS_AutoScaling_LifecycleHook" }, { - "$ref": "#/definitions/AWS_Bedrock_ApplicationInferenceProfile" + "$ref": "#/definitions/AWS_DataSync_LocationHDFS" }, { - "$ref": "#/definitions/AWS_HealthLake_FHIRDatastore" + "$ref": "#/definitions/AWS_LakeFormation_Permissions" }, { - "$ref": "#/definitions/AWS_ECR_PullThroughCacheRule" + "$ref": "#/definitions/AWS_IoT_RoleAlias" }, { - "$ref": "#/definitions/AWS_IdentityStore_GroupMembership" + "$ref": "#/definitions/AWS_Greengrass_DeviceDefinitionVersion" }, { - "$ref": "#/definitions/AWS_Glue_Table" + "$ref": "#/definitions/AWS_Inspector_AssessmentTarget" }, { - "$ref": "#/definitions/AWS_Budgets_BudgetsAction" + "$ref": "#/definitions/AWS_Glue_Integration" }, { - "$ref": "#/definitions/AWS_DocDB_DBInstance" + "$ref": "#/definitions/AWS_AppSync_SourceApiAssociation" }, { - "$ref": "#/definitions/AWS_EventSchemas_Schema" + "$ref": "#/definitions/AWS_Glue_Connection" }, { - "$ref": "#/definitions/AWS_SecretsManager_Secret" + "$ref": "#/definitions/AWS_IAM_ServerCertificate" }, { - "$ref": "#/definitions/AWS_ManagedBlockchain_Accessor" + "$ref": "#/definitions/AWS_CloudFront_ResponseHeadersPolicy" }, { - "$ref": "#/definitions/AWS_Greengrass_CoreDefinitionVersion" + "$ref": "#/definitions/AWS_Neptune_DBInstance" }, { - "$ref": "#/definitions/AWS_Synthetics_Group" + "$ref": "#/definitions/AWS_Connect_Instance" }, { - "$ref": "#/definitions/AWS_IAM_UserPolicy" + "$ref": "#/definitions/AWS_EC2_TransitGatewayRouteTablePropagation" }, { - "$ref": "#/definitions/AWS_StepFunctions_StateMachine" + "$ref": "#/definitions/AWS_EC2_InternetGateway" }, { - "$ref": "#/definitions/AWS_ODB_CloudVmCluster" + "$ref": "#/definitions/AWS_Logs_ScheduledQuery" }, { - "$ref": "#/definitions/AWS_ECR_PublicRepository" + "$ref": "#/definitions/AWS_IoTSiteWise_Project" }, { - "$ref": "#/definitions/AWS_IoT_ThingType" + "$ref": "#/definitions/AWS_AppRunner_ObservabilityConfiguration" }, { - "$ref": "#/definitions/AWS_Athena_DataCatalog" + "$ref": "#/definitions/AWS_EC2_IPAMAllocation" }, { - "$ref": "#/definitions/AWS_IoTTwinMaker_ComponentType" + "$ref": "#/definitions/AWS_Cases_CaseRule" }, { - "$ref": "#/definitions/AWS_CertificateManager_Certificate" + "$ref": "#/definitions/AWS_CloudFormation_WaitConditionHandle" }, { - "$ref": "#/definitions/AWS_CleanRooms_ConfiguredTable" + "$ref": "#/definitions/AWS_QLDB_Ledger" }, { - "$ref": "#/definitions/AWS_LookoutMetrics_Alert" + "$ref": "#/definitions/AWS_Events_EventBus" }, { - "$ref": "#/definitions/AWS_Neptune_DBClusterParameterGroup" + "$ref": "#/definitions/AWS_Backup_RestoreTestingPlan" }, { - "$ref": "#/definitions/AWS_IoT_Authorizer" + "$ref": "#/definitions/AWS_GlobalAccelerator_CrossAccountAttachment" }, { - "$ref": "#/definitions/AWS_EC2_VerifiedAccessTrustProvider" + "$ref": "#/definitions/AWS_Redshift_ClusterParameterGroup" }, { - "$ref": "#/definitions/AWS_SSM_Parameter" + "$ref": "#/definitions/AWS_MediaTailor_SourceLocation" }, { - "$ref": "#/definitions/AWS_FraudDetector_List" + "$ref": "#/definitions/AWS_Glue_Partition" }, { - "$ref": "#/definitions/AWS_EMR_StudioSessionMapping" + "$ref": "#/definitions/AWS_Route53Resolver_ResolverEndpoint" }, { - "$ref": "#/definitions/AWS_WAFv2_IPSet" + "$ref": "#/definitions/AWS_DocDB_DBSubnetGroup" }, { - "$ref": "#/definitions/AWS_AppIntegrations_Application" + "$ref": "#/definitions/AWS_S3Outposts_Endpoint" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_IpAccessSettings" + "$ref": "#/definitions/AWS_Glue_MLTransform" }, { - "$ref": "#/definitions/AWS_NetworkFirewall_VpcEndpointAssociation" + "$ref": "#/definitions/AWS_Invoicing_InvoiceUnit" }, { - "$ref": "#/definitions/AWS_Glue_TableOptimizer" + "$ref": "#/definitions/AWS_LicenseManager_License" }, { - "$ref": "#/definitions/AWS_MediaPackageV2_OriginEndpoint" + "$ref": "#/definitions/AWS_NetworkFirewall_VpcEndpointAssociation" }, { - "$ref": "#/definitions/AWS_ApiGateway_RequestValidator" + "$ref": "#/definitions/AWS_AppMesh_VirtualService" }, { - "$ref": "#/definitions/AWS_RDS_DBInstance" + "$ref": "#/definitions/AWS_DocDB_GlobalCluster" }, { - "$ref": "#/definitions/AWS_SimSpaceWeaver_Simulation" + "$ref": "#/definitions/AWS_SecurityHub_ConfigurationPolicy" }, { - "$ref": "#/definitions/AWS_ResourceExplorer2_View" + "$ref": "#/definitions/AWS_ImageBuilder_LifecyclePolicy" }, { - "$ref": "#/definitions/AWS_PinpointEmail_Identity" + "$ref": "#/definitions/AWS_ImageBuilder_Image" }, { - "$ref": "#/definitions/AWS_Route53RecoveryControl_SafetyRule" + "$ref": "#/definitions/AWS_Timestream_Database" }, { - "$ref": "#/definitions/AWS_ODB_CloudAutonomousVmCluster" + "$ref": "#/definitions/AWS_BcmPricingCalculator_BillScenario" }, { - "$ref": "#/definitions/AWS_DataBrew_Recipe" + "$ref": "#/definitions/AWS_MemoryDB_ParameterGroup" }, { - "$ref": "#/definitions/AWS_IoTWireless_WirelessDevice" + "$ref": "#/definitions/AWS_MediaTailor_PlaybackConfiguration" }, { - "$ref": "#/definitions/AWS_Events_ApiDestination" + "$ref": "#/definitions/AWS_SES_CustomVerificationEmailTemplate" }, { - "$ref": "#/definitions/AWS_Glue_Job" + "$ref": "#/definitions/AWS_ApiGateway_RequestValidator" }, { - "$ref": "#/definitions/AWS_B2BI_Partnership" + "$ref": "#/definitions/AWS_VpcLattice_ServiceNetwork" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_ModelManifest" + "$ref": "#/definitions/AWS_Lightsail_InstanceSnapshot" }, { - "$ref": "#/definitions/AWS_Lightsail_Alarm" + "$ref": "#/definitions/AWS_SecurityLake_DataLake" }, { - "$ref": "#/definitions/AWS_IVS_Stage" + "$ref": "#/definitions/AWS_GuardDuty_ThreatEntitySet" }, { - "$ref": "#/definitions/AWS_Events_EventBusPolicy" + "$ref": "#/definitions/AWS_CodeGuruReviewer_RepositoryAssociation" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Integration" + "$ref": "#/definitions/AWS_CodeBuild_Fleet" }, { - "$ref": "#/definitions/AWS_CloudFront_PublicKey" + "$ref": "#/definitions/AWS_CloudFormation_WaitCondition" }, { - "$ref": "#/definitions/AWS_EMR_Studio" + "$ref": "#/definitions/AWS_ElasticBeanstalk_Environment" }, { - "$ref": "#/definitions/AWS_ECR_ReplicationConfiguration" + "$ref": "#/definitions/AWS_Lex_BotVersion" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_PortfolioPrincipalAssociation" + "$ref": "#/definitions/AWS_AppConfig_Application" }, { - "$ref": "#/definitions/AWS_ElastiCache_GlobalReplicationGroup" + "$ref": "#/definitions/AWS_S3Tables_Table" }, { - "$ref": "#/definitions/AWS_NetworkManager_SiteToSiteVpnAttachment" + "$ref": "#/definitions/AWS_EC2_VPCBlockPublicAccessOptions" }, { - "$ref": "#/definitions/AWS_IAM_InstanceProfile" + "$ref": "#/definitions/AWS_Organizations_OrganizationalUnit" }, { - "$ref": "#/definitions/AWS_QuickSight_RefreshSchedule" + "$ref": "#/definitions/AWS_ApiGateway_DomainNameV2" }, { - "$ref": "#/definitions/AWS_FraudDetector_EventType" + "$ref": "#/definitions/AWS_EC2_TransitGatewayMulticastDomainAssociation" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_TrustStore" + "$ref": "#/definitions/AWS_IoTWireless_Destination" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_Dataset" + "$ref": "#/definitions/AWS_Glue_UsageProfile" }, { - "$ref": "#/definitions/AWS_SageMaker_Workteam" + "$ref": "#/definitions/AWS_CloudFront_PublicKey" }, { - "$ref": "#/definitions/AWS_WorkSpacesWeb_UserSettings" + "$ref": "#/definitions/AWS_Connect_TrafficDistributionGroup" }, { - "$ref": "#/definitions/AWS_IoTWireless_WirelessDeviceImportTask" + "$ref": "#/definitions/AWS_Athena_NamedQuery" }, { - "$ref": "#/definitions/AWS_AppStream_ApplicationEntitlementAssociation" + "$ref": "#/definitions/AWS_LaunchWizard_Deployment" }, { - "$ref": "#/definitions/AWS_CloudTrail_Channel" + "$ref": "#/definitions/AWS_EC2_LocalGatewayRouteTableVPCAssociation" }, { - "$ref": "#/definitions/AWS_MediaLive_InputSecurityGroup" + "$ref": "#/definitions/AWS_ApiGatewayV2_RoutingRule" }, { - "$ref": "#/definitions/AWS_AppSync_FunctionConfiguration" + "$ref": "#/definitions/AWS_ObservabilityAdmin_S3TableIntegration" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_Campaign" + "$ref": "#/definitions/AWS_SecurityAgent_TargetDomain" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_Portal" + "$ref": "#/definitions/AWS_EC2_LocalGatewayVirtualInterfaceGroup" }, { - "$ref": "#/definitions/AWS_Glue_Schema" + "$ref": "#/definitions/AWS_SES_MailManagerTrafficPolicy" }, { - "$ref": "#/definitions/AWS_AppMesh_VirtualNode" + "$ref": "#/definitions/AWS_Cognito_UserPoolResourceServer" }, { - "$ref": "#/definitions/AWS_VpcLattice_ServiceNetworkResourceAssociation" + "$ref": "#/definitions/AWS_MediaLive_EventBridgeRuleTemplateGroup" }, { - "$ref": "#/definitions/AWS_Connect_ApprovedOrigin" + "$ref": "#/definitions/AWS_IoTTwinMaker_Entity" }, { - "$ref": "#/definitions/AWS_RDS_DBParameterGroup" + "$ref": "#/definitions/AWS_Amplify_Domain" }, { - "$ref": "#/definitions/AWS_CE_AnomalyMonitor" + "$ref": "#/definitions/AWS_AppMesh_Mesh" }, { - "$ref": "#/definitions/AWS_Kinesis_Stream" + "$ref": "#/definitions/AWS_SSMContacts_Contact" }, { - "$ref": "#/definitions/AWS_Config_OrganizationConfigRule" + "$ref": "#/definitions/AWS_AppSync_ChannelNamespace" }, { - "$ref": "#/definitions/AWS_Connect_TaskTemplate" + "$ref": "#/definitions/AWS_ServiceDiscovery_HttpNamespace" }, { - "$ref": "#/definitions/AWS_Logs_DeliveryDestination" + "$ref": "#/definitions/AWS_CleanRoomsML_TrainingDataset" }, { - "$ref": "#/definitions/AWS_ResourceGroups_TagSyncTask" + "$ref": "#/definitions/AWS_NetworkManager_Device" }, { - "$ref": "#/definitions/AWS_EventSchemas_Registry" + "$ref": "#/definitions/AWS_RolesAnywhere_TrustAnchor" }, { - "$ref": "#/definitions/AWS_ManagedBlockchain_Node" + "$ref": "#/definitions/AWS_SageMaker_MonitoringSchedule" }, { - "$ref": "#/definitions/AWS_CodeBuild_ReportGroup" + "$ref": "#/definitions/AWS_ElastiCache_SecurityGroupIngress" }, { - "$ref": "#/definitions/AWS_MediaConnect_Flow" + "$ref": "#/definitions/AWS_AppConfig_DeploymentStrategy" }, { - "$ref": "#/definitions/AWS_DataZone_EnvironmentBlueprintConfiguration" + "$ref": "#/definitions/AWS_Route53_RecordSetGroup" }, { - "$ref": "#/definitions/AWS_Glue_Workflow" + "$ref": "#/definitions/AWS_NetworkManager_CoreNetworkPrefixListAssociation" }, { - "$ref": "#/definitions/AWS_Greengrass_SubscriptionDefinition" + "$ref": "#/definitions/AWS_SageMaker_Model" }, { - "$ref": "#/definitions/AWS_CloudFormation_ModuleVersion" + "$ref": "#/definitions/AWS_IoTWireless_DeviceProfile" }, { - "$ref": "#/definitions/AWS_IVS_EncoderConfiguration" + "$ref": "#/definitions/AWS_Bedrock_Prompt" }, { - "$ref": "#/definitions/AWS_AmplifyUIBuilder_Component" + "$ref": "#/definitions/AWS_Connect_User" }, { - "$ref": "#/definitions/AWS_Rekognition_StreamProcessor" + "$ref": "#/definitions/AWS_Omics_Configuration" }, { - "$ref": "#/definitions/AWS_Kinesis_StreamConsumer" + "$ref": "#/definitions/AWS_SageMaker_DeviceFleet" }, { - "$ref": "#/definitions/AWS_OpsWorks_UserProfile" + "$ref": "#/definitions/AWS_Deadline_Fleet" }, { - "$ref": "#/definitions/AWS_EC2_SpotFleet" + "$ref": "#/definitions/AWS_SageMaker_EndpointConfig" }, { - "$ref": "#/definitions/AWS_AppSync_ApiKey" + "$ref": "#/definitions/AWS_S3_AccessGrantsInstance" }, { - "$ref": "#/definitions/AWS_QuickSight_CustomPermissions" + "$ref": "#/definitions/AWS_ECR_RegistryScanningConfiguration" }, { - "$ref": "#/definitions/AWS_Synthetics_Canary" + "$ref": "#/definitions/AWS_IoT_Dimension" }, { - "$ref": "#/definitions/AWS_Config_AggregationAuthorization" + "$ref": "#/definitions/AWS_QBusiness_Plugin" }, { - "$ref": "#/definitions/AWS_MemoryDB_Cluster" + "$ref": "#/definitions/AWS_Connect_ApprovedOrigin" }, { - "$ref": "#/definitions/AWS_SES_MailManagerAddonSubscription" + "$ref": "#/definitions/AWS_EC2_VPCBlockPublicAccessExclusion" }, { - "$ref": "#/definitions/AWS_Wisdom_AIPromptVersion" + "$ref": "#/definitions/AWS_CloudFront_OriginAccessControl" }, { - "$ref": "#/definitions/AWS_MediaPackageV2_ChannelGroup" + "$ref": "#/definitions/AWS_EKS_FargateProfile" }, { - "$ref": "#/definitions/AWS_EC2_IPAMScope" + "$ref": "#/definitions/AWS_GameLift_GameServerGroup" }, { - "$ref": "#/definitions/AWS_Lightsail_Database" + "$ref": "#/definitions/AWS_IoTTwinMaker_SyncJob" }, { - "$ref": "#/definitions/AWS_IoTFleetWise_SignalCatalog" + "$ref": "#/definitions/AWS_Greengrass_LoggerDefinitionVersion" }, { - "$ref": "#/definitions/AWS_CloudFormation_ResourceVersion" + "$ref": "#/definitions/AWS_S3ObjectLambda_AccessPointPolicy" }, { - "$ref": "#/definitions/AWS_SNS_TopicPolicy" + "$ref": "#/definitions/AWS_Pinpoint_ADMChannel" }, { - "$ref": "#/definitions/AWS_IoT_ThingGroup" + "$ref": "#/definitions/AWS_DataZone_EnvironmentBlueprintConfiguration" }, { - "$ref": "#/definitions/AWS_EC2_RouteServerAssociation" + "$ref": "#/definitions/AWS_Pinpoint_SmsTemplate" }, { - "$ref": "#/definitions/AWS_AppStream_Entitlement" + "$ref": "#/definitions/AWS_Omics_ReferenceStore" }, { - "$ref": "#/definitions/AWS_CodeBuild_Project" + "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_ResourceAssociation" }, { - "$ref": "#/definitions/AWS_CloudFront_KeyValueStore" + "$ref": "#/definitions/AWS_RDS_DBSecurityGroup" }, { - "$ref": "#/definitions/AWS_ServiceDiscovery_PrivateDnsNamespace" + "$ref": "#/definitions/AWS_SSM_MaintenanceWindowTask" }, { - "$ref": "#/definitions/AWS_CUR_ReportDefinition" + "$ref": "#/definitions/AWS_SecurityAgent_Application" }, { - "$ref": "#/definitions/AWS_MediaLive_SignalMap" + "$ref": "#/definitions/AWS_EC2_TransitGateway" }, { - "$ref": "#/definitions/AWS_IoTThingsGraph_FlowTemplate" + "$ref": "#/definitions/AWS_CloudFront_TrustStore" }, { - "$ref": "#/definitions/AWS_EC2_LocalGatewayRouteTableVPCAssociation" + "$ref": "#/definitions/AWS_AppStream_Fleet" }, { - "$ref": "#/definitions/AWS_EC2_Route" + "$ref": "#/definitions/AWS_Scheduler_ScheduleGroup" }, { - "$ref": "#/definitions/AWS_EC2_IPAM" + "$ref": "#/definitions/AWS_Connect_IntegrationAssociation" }, { - "$ref": "#/definitions/AWS_IoT_Logging" + "$ref": "#/definitions/AWS_SageMaker_Image" }, { - "$ref": "#/definitions/AWS_GameLift_Location" + "$ref": "#/definitions/AWS_WorkSpacesWeb_SessionLogger" }, { - "$ref": "#/definitions/AWS_CodeArtifact_Repository" + "$ref": "#/definitions/AWS_ManagedBlockchain_Accessor" }, { - "$ref": "#/definitions/AWS_NotificationsContacts_EmailContact" + "$ref": "#/definitions/AWS_Pinpoint_APNSChannel" }, { - "$ref": "#/definitions/AWS_PinpointEmail_DedicatedIpPool" + "$ref": "#/definitions/AWS_KMS_Key" }, { - "$ref": "#/definitions/AWS_CodeDeploy_DeploymentGroup" + "$ref": "#/definitions/AWS_Timestream_Table" }, { - "$ref": "#/definitions/AWS_Lambda_Alias" + "$ref": "#/definitions/AWS_SES_ContactList" }, { - "$ref": "#/definitions/AWS_ImageBuilder_DistributionConfiguration" + "$ref": "#/definitions/AWS_Kendra_Faq" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_TagOption" + "$ref": "#/definitions/AWS_MediaConnect_FlowVpcInterface" }, { - "$ref": "#/definitions/AWS_Glue_SchemaVersionMetadata" + "$ref": "#/definitions/AWS_Signer_SigningProfile" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_ComputationModel" + "$ref": "#/definitions/AWS_EC2_KeyPair" }, { - "$ref": "#/definitions/AWS_CloudFormation_Publisher" + "$ref": "#/definitions/AWS_SageMaker_Space" }, { - "$ref": "#/definitions/AWS_Cognito_ManagedLoginBranding" + "$ref": "#/definitions/AWS_Logs_Transformer" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_Asset" + "$ref": "#/definitions/AWS_Pinpoint_App" }, { - "$ref": "#/definitions/AWS_RDS_DBProxy" + "$ref": "#/definitions/AWS_CloudFront_MonitoringSubscription" }, { - "$ref": "#/definitions/AWS_Connect_Prompt" + "$ref": "#/definitions/AWS_S3Vectors_VectorBucket" }, { - "$ref": "#/definitions/AWS_CleanRooms_IdNamespaceAssociation" + "$ref": "#/definitions/AWS_SES_EmailIdentity" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_LoadBalancer" + "$ref": "#/definitions/AWS_Route53_HostedZone" }, { - "$ref": "#/definitions/AWS_Cognito_IdentityPoolRoleAttachment" + "$ref": "#/definitions/AWS_Route53RecoveryControl_Cluster" }, { - "$ref": "#/definitions/AWS_Evidently_Feature" + "$ref": "#/definitions/AWS_CE_AnomalyMonitor" }, { - "$ref": "#/definitions/AWS_Glue_Registry" + "$ref": "#/definitions/AWS_SageMaker_ModelPackage" }, { - "$ref": "#/definitions/AWS_DocDB_DBCluster" + "$ref": "#/definitions/AWS_CloudFormation_GuardHook" }, { - "$ref": "#/definitions/AWS_DocDBElastic_Cluster" + "$ref": "#/definitions/AWS_DirectConnect_Connection" }, { - "$ref": "#/definitions/AWS_CloudFront_StreamingDistribution" + "$ref": "#/definitions/AWS_DSQL_Cluster" }, { - "$ref": "#/definitions/AWS_IoT_Dimension" + "$ref": "#/definitions/AWS_ApplicationInsights_Application" }, { - "$ref": "#/definitions/AWS_CleanRooms_Membership" + "$ref": "#/definitions/AWS_MediaLive_Cluster" }, { - "$ref": "#/definitions/AWS_LakeFormation_Resource" + "$ref": "#/definitions/AWS_Logs_SubscriptionFilter" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_TrustStore" + "$ref": "#/definitions/AWS_DataZone_PolicyGrant" }, { - "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_TrustStoreRevocation" + "$ref": "#/definitions/AWS_Logs_Destination" }, { - "$ref": "#/definitions/AWS_EC2_InternetGateway" + "$ref": "#/definitions/AWS_CodeStar_GitHubRepository" }, { - "$ref": "#/definitions/AWS_QuickSight_Dashboard" + "$ref": "#/definitions/AWS_Lightsail_StaticIp" }, { - "$ref": "#/definitions/AWS_EC2_NatGateway" + "$ref": "#/definitions/AWS_EC2_TransitGatewayVpcAttachment" }, { - "$ref": "#/definitions/AWS_SSMContacts_Contact" + "$ref": "#/definitions/AWS_S3_StorageLens" }, { - "$ref": "#/definitions/AWS_Backup_BackupVault" + "$ref": "#/definitions/AWS_MemoryDB_ACL" }, { - "$ref": "#/definitions/AWS_Greengrass_Group" + "$ref": "#/definitions/AWS_RDS_DBShardGroup" }, { - "$ref": "#/definitions/AWS_MediaLive_EventBridgeRuleTemplate" + "$ref": "#/definitions/AWS_ApiGateway_ClientCertificate" }, { - "$ref": "#/definitions/AWS_GuardDuty_Master" + "$ref": "#/definitions/AWS_CodeStarConnections_Connection" }, { - "$ref": "#/definitions/AWS_Detective_MemberInvitation" + "$ref": "#/definitions/AWS_AutoScalingPlans_ScalingPlan" }, { - "$ref": "#/definitions/AWS_DataSync_LocationFSxONTAP" + "$ref": "#/definitions/AWS_AppStream_Entitlement" }, { - "$ref": "#/definitions/AWS_GuardDuty_ThreatEntitySet" + "$ref": "#/definitions/AWS_NetworkManager_GlobalNetwork" }, { - "$ref": "#/definitions/AWS_KinesisAnalyticsV2_ApplicationOutput" + "$ref": "#/definitions/AWS_QuickSight_Folder" }, { - "$ref": "#/definitions/AWS_Transfer_Certificate" + "$ref": "#/definitions/AWS_SES_VdmAttributes" }, { - "$ref": "#/definitions/AWS_EC2_RouteServer" + "$ref": "#/definitions/AWS_EMRContainers_Endpoint" }, { - "$ref": "#/definitions/AWS_ElastiCache_User" + "$ref": "#/definitions/AWS_ECR_Repository" }, { - "$ref": "#/definitions/AWS_QBusiness_Application" + "$ref": "#/definitions/AWS_IoT_ResourceSpecificLogging" }, { - "$ref": "#/definitions/AWS_Pinpoint_ADMChannel" + "$ref": "#/definitions/AWS_EC2_CapacityReservationFleet" }, { - "$ref": "#/definitions/AWS_MediaConvert_Preset" + "$ref": "#/definitions/AWS_BillingConductor_PricingPlan" }, { - "$ref": "#/definitions/AWS_CodeStar_GitHubRepository" + "$ref": "#/definitions/AWS_APS_Workspace" }, { - "$ref": "#/definitions/AWS_SecurityHub_SecurityControl" + "$ref": "#/definitions/AWS_Logs_MetricFilter" }, { - "$ref": "#/definitions/AWS_SageMaker_Model" + "$ref": "#/definitions/AWS_ApiGatewayV2_Api" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInsightsAnalysis" + "$ref": "#/definitions/AWS_WAFRegional_WebACL" }, { - "$ref": "#/definitions/AWS_Proton_EnvironmentAccountConnection" + "$ref": "#/definitions/AWS_Connect_Queue" }, { - "$ref": "#/definitions/AWS_AppStream_ImageBuilder" + "$ref": "#/definitions/AWS_Athena_DataCatalog" }, { - "$ref": "#/definitions/AWS_Route53_HostedZone" + "$ref": "#/definitions/AWS_SSO_Instance" }, { - "$ref": "#/definitions/AWS_Connect_SecurityProfile" + "$ref": "#/definitions/AWS_PinpointEmail_Identity" }, { - "$ref": "#/definitions/AWS_DirectoryService_SimpleAD" + "$ref": "#/definitions/AWS_IoTFleetWise_Campaign" }, { - "$ref": "#/definitions/AWS_EMR_WALWorkspace" + "$ref": "#/definitions/AWS_MediaConnect_Flow" }, { - "$ref": "#/definitions/AWS_WAFRegional_SqlInjectionMatchSet" + "$ref": "#/definitions/AWS_IAM_ServiceLinkedRole" }, { - "$ref": "#/definitions/AWS_Glue_Classifier" + "$ref": "#/definitions/AWS_Bedrock_AgentAlias" }, { - "$ref": "#/definitions/AWS_AppConfig_Deployment" + "$ref": "#/definitions/AWS_MediaLive_SignalMap" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_Stage" + "$ref": "#/definitions/AWS_CloudFront_ContinuousDeploymentPolicy" }, { - "$ref": "#/definitions/AWS_SageMaker_FeatureGroup" + "$ref": "#/definitions/AWS_DataZone_FormType" }, { - "$ref": "#/definitions/AWS_Greengrass_DeviceDefinition" + "$ref": "#/definitions/AWS_IAM_OIDCProvider" }, { - "$ref": "#/definitions/AWS_CodeStarConnections_Connection" + "$ref": "#/definitions/AWS_IoTEvents_AlarmModel" }, { - "$ref": "#/definitions/AWS_VoiceID_Domain" + "$ref": "#/definitions/AWS_Macie_AllowList" }, { - "$ref": "#/definitions/AWS_SageMaker_NotebookInstance" + "$ref": "#/definitions/AWS_Greengrass_FunctionDefinition" }, { - "$ref": "#/definitions/AWS_ECR_RegistryScanningConfiguration" + "$ref": "#/definitions/AWS_SageMaker_StudioLifecycleConfig" }, { - "$ref": "#/definitions/AWS_IoTFleetHub_Application" + "$ref": "#/definitions/AWS_RDS_DBSecurityGroupIngress" }, { - "$ref": "#/definitions/AWS_Pinpoint_App" + "$ref": "#/definitions/AWS_CloudFront_CloudFrontOriginAccessIdentity" }, { - "$ref": "#/definitions/AWS_Personalize_Schema" + "$ref": "#/definitions/AWS_SecurityHub_DelegatedAdmin" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_DomainName" + "$ref": "#/definitions/AWS_Omics_RunGroup" }, { - "$ref": "#/definitions/AWS_CloudFront_ConnectionGroup" + "$ref": "#/definitions/AWS_WAFRegional_WebACLAssociation" }, { - "$ref": "#/definitions/AWS_SES_MailManagerArchive" + "$ref": "#/definitions/AWS_Evidently_Experiment" }, { - "$ref": "#/definitions/AWS_SageMaker_ModelBiasJobDefinition" + "$ref": "#/definitions/AWS_ApiGatewayV2_RouteResponse" }, { - "$ref": "#/definitions/AWS_Grafana_Workspace" + "$ref": "#/definitions/AWS_SageMaker_Domain" }, { - "$ref": "#/definitions/AWS_WorkSpaces_ConnectionAlias" + "$ref": "#/definitions/AWS_OpsWorks_Instance" }, { - "$ref": "#/definitions/AWS_MediaStore_Container" + "$ref": "#/definitions/AWS_Evidently_Segment" }, { - "$ref": "#/definitions/AWS_EFS_MountTarget" + "$ref": "#/definitions/AWS_EMR_StudioSessionMapping" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayVpcAttachment" + "$ref": "#/definitions/AWS_ElastiCache_UserGroup" }, { - "$ref": "#/definitions/AWS_MemoryDB_MultiRegionCluster" + "$ref": "#/definitions/AWS_MediaLive_CloudWatchAlarmTemplateGroup" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInterfaceAttachment" + "$ref": "#/definitions/AWS_IAM_GroupPolicy" }, { - "$ref": "#/definitions/AWS_Redshift_ClusterSecurityGroup" + "$ref": "#/definitions/AWS_Lightsail_DiskSnapshot" }, { - "$ref": "#/definitions/AWS_Omics_ReferenceStore" + "$ref": "#/definitions/AWS_Cases_Template" }, { - "$ref": "#/definitions/AWS_Macie_Session" + "$ref": "#/definitions/AWS_Cognito_UserPoolIdentityProvider" }, { - "$ref": "#/definitions/AWS_VerifiedPermissions_PolicyStore" + "$ref": "#/definitions/AWS_IoT_FleetMetric" }, { - "$ref": "#/definitions/AWS_MSK_Replicator" + "$ref": "#/definitions/AWS_BackupGateway_Hypervisor" }, { - "$ref": "#/definitions/AWS_Pinpoint_SMSChannel" + "$ref": "#/definitions/AWS_EC2_IpPoolRouteTableAssociation" }, { - "$ref": "#/definitions/AWS_MediaLive_EventBridgeRuleTemplateGroup" + "$ref": "#/definitions/AWS_SageMaker_ModelBiasJobDefinition" }, { - "$ref": "#/definitions/AWS_CodeStarNotifications_NotificationRule" + "$ref": "#/definitions/AWS_VpcLattice_Service" }, { - "$ref": "#/definitions/AWS_EC2_EC2Fleet" + "$ref": "#/definitions/AWS_Route53GlobalResolver_FirewallDomainList" }, { - "$ref": "#/definitions/AWS_IoT_SecurityProfile" + "$ref": "#/definitions/AWS_Location_RouteCalculator" }, { - "$ref": "#/definitions/AWS_ServiceCatalogAppRegistry_Application" + "$ref": "#/definitions/AWS_WAF_SizeConstraintSet" }, { - "$ref": "#/definitions/AWS_EC2_EgressOnlyInternetGateway" + "$ref": "#/definitions/AWS_OpenSearchServerless_SecurityPolicy" }, { - "$ref": "#/definitions/AWS_Config_RemediationConfiguration" + "$ref": "#/definitions/AWS_Backup_Framework" }, { - "$ref": "#/definitions/AWS_EC2_TransitGateway" + "$ref": "#/definitions/AWS_MediaConnect_FlowEntitlement" }, { - "$ref": "#/definitions/AWS_DAX_ParameterGroup" + "$ref": "#/definitions/AWS_Route53_RecordSet" }, { - "$ref": "#/definitions/AWS_ServiceDiscovery_PublicDnsNamespace" + "$ref": "#/definitions/AWS_ApplicationAutoScaling_ScalableTarget" }, { - "$ref": "#/definitions/AWS_EC2_IPAMPoolCidr" + "$ref": "#/definitions/AWS_WAFRegional_XssMatchSet" }, { - "$ref": "#/definitions/AWS_IVS_StreamKey" + "$ref": "#/definitions/AWS_Config_ConfigurationRecorder" }, { - "$ref": "#/definitions/AWS_MediaLive_Channel" + "$ref": "#/definitions/AWS_Greengrass_DeviceDefinition" }, { - "$ref": "#/definitions/AWS_KinesisFirehose_DeliveryStream" + "$ref": "#/definitions/AWS_PCAConnectorSCEP_Challenge" }, { - "$ref": "#/definitions/AWS_FSx_S3AccessPointAttachment" + "$ref": "#/definitions/AWS_CloudWatch_AlarmMuteRule" }, { - "$ref": "#/definitions/AWS_IoTWireless_ServiceProfile" + "$ref": "#/definitions/AWS_Evidently_Launch" }, { - "$ref": "#/definitions/AWS_Lightsail_LoadBalancer" + "$ref": "#/definitions/AWS_EMR_Step" }, { - "$ref": "#/definitions/AWS_MediaTailor_VodSource" + "$ref": "#/definitions/AWS_Greengrass_ConnectorDefinitionVersion" }, { - "$ref": "#/definitions/AWS_BillingConductor_PricingPlan" + "$ref": "#/definitions/AWS_Bedrock_GuardrailVersion" }, { - "$ref": "#/definitions/AWS_IoTAnalytics_Dataset" + "$ref": "#/definitions/AWS_Cognito_UserPoolClient" }, { - "$ref": "#/definitions/AWS_Chatbot_SlackChannelConfiguration" + "$ref": "#/definitions/AWS_CloudFormation_HookTypeConfig" }, { - "$ref": "#/definitions/AWS_AppRunner_VpcConnector" + "$ref": "#/definitions/AWS_ServiceCatalog_LaunchRoleConstraint" }, { - "$ref": "#/definitions/AWS_WAFRegional_Rule" + "$ref": "#/definitions/AWS_RolesAnywhere_Profile" }, { - "$ref": "#/definitions/AWS_MediaPackage_Channel" + "$ref": "#/definitions/AWS_MSK_Replicator" }, { - "$ref": "#/definitions/AWS_EKS_Cluster" + "$ref": "#/definitions/AWS_Cloud9_EnvironmentEC2" }, { - "$ref": "#/definitions/AWS_CloudFront_KeyGroup" + "$ref": "#/definitions/AWS_Transfer_User" }, { - "$ref": "#/definitions/AWS_VpcLattice_ResourceConfiguration" + "$ref": "#/definitions/AWS_EC2_EnclaveCertificateIamRoleAssociation" }, { - "$ref": "#/definitions/AWS_Cognito_IdentityPoolPrincipalTag" + "$ref": "#/definitions/AWS_Lightsail_Container" }, { - "$ref": "#/definitions/AWS_SageMaker_EndpointConfig" + "$ref": "#/definitions/AWS_IAM_InstanceProfile" }, { - "$ref": "#/definitions/AWS_MediaPackageV2_ChannelPolicy" + "$ref": "#/definitions/AWS_Timestream_InfluxDBInstance" }, { - "$ref": "#/definitions/AWS_Lambda_Url" + "$ref": "#/definitions/AWS_VpcLattice_ResourceGateway" }, { - "$ref": "#/definitions/AWS_B2BI_Capability" + "$ref": "#/definitions/AWS_EC2_IPAMPool" }, { - "$ref": "#/definitions/AWS_CloudFormation_TypeActivation" + "$ref": "#/definitions/AWS_DataSync_LocationObjectStorage" }, { - "$ref": "#/definitions/AWS_Redshift_ScheduledAction" + "$ref": "#/definitions/AWS_MediaConnect_RouterOutput" }, { - "$ref": "#/definitions/AWS_SageMaker_ModelQualityJobDefinition" + "$ref": "#/definitions/AWS_Lightsail_LoadBalancer" }, { - "$ref": "#/definitions/AWS_Route53Resolver_ResolverRuleAssociation" + "$ref": "#/definitions/AWS_IoTSiteWise_AccessPolicy" }, { - "$ref": "#/definitions/AWS_WorkspacesInstances_VolumeAssociation" + "$ref": "#/definitions/AWS_SES_ConfigurationSetEventDestination" }, { - "$ref": "#/definitions/AWS_EC2_TrafficMirrorTarget" + "$ref": "#/definitions/AWS_EC2_NetworkInterfaceAttachment" }, { - "$ref": "#/definitions/AWS_Logs_MetricFilter" + "$ref": "#/definitions/AWS_MediaLive_SdiSource" }, { - "$ref": "#/definitions/AWS_Bedrock_AutomatedReasoningPolicy" + "$ref": "#/definitions/AWS_SecurityHub_HubV2" }, { - "$ref": "#/definitions/AWS_ApplicationInsights_Application" + "$ref": "#/definitions/AWS_IAM_SAMLProvider" }, { - "$ref": "#/definitions/AWS_ApiGateway_Model" + "$ref": "#/definitions/AWS_Neptune_DBParameterGroup" }, { - "$ref": "#/definitions/AWS_Personalize_Dataset" + "$ref": "#/definitions/AWS_S3Vectors_VectorBucketPolicy" }, { - "$ref": "#/definitions/AWS_Personalize_DatasetGroup" + "$ref": "#/definitions/AWS_IoT_SoftwarePackage" }, { - "$ref": "#/definitions/AWS_Macie_CustomDataIdentifier" + "$ref": "#/definitions/AWS_EntityResolution_IdNamespace" }, { - "$ref": "#/definitions/AWS_QLDB_Ledger" + "$ref": "#/definitions/AWS_Logs_Integration" }, { - "$ref": "#/definitions/AWS_SES_ConfigurationSet" + "$ref": "#/definitions/AWS_ControlTower_EnabledControl" }, { - "$ref": "#/definitions/AWS_DataZone_GroupProfile" + "$ref": "#/definitions/AWS_VerifiedPermissions_PolicyTemplate" }, { - "$ref": "#/definitions/AWS_Macie_AllowList" + "$ref": "#/definitions/AWS_Pinpoint_BaiduChannel" }, { - "$ref": "#/definitions/AWS_DataZone_EnvironmentProfile" + "$ref": "#/definitions/AWS_WAFv2_IPSet" }, { - "$ref": "#/definitions/AWS_SageMaker_DataQualityJobDefinition" + "$ref": "#/definitions/AWS_ElasticLoadBalancingV2_TargetGroup" }, { - "$ref": "#/definitions/AWS_IAM_ServerCertificate" + "$ref": "#/definitions/AWS_NetworkFirewall_LoggingConfiguration" }, { - "$ref": "#/definitions/AWS_SecurityHub_FindingAggregator" + "$ref": "#/definitions/AWS_MediaLive_Multiplex" }, { - "$ref": "#/definitions/AWS_B2BI_Profile" + "$ref": "#/definitions/AWS_VerifiedPermissions_IdentitySource" }, { - "$ref": "#/definitions/AWS_BedrockAgentCore_BrowserCustom" + "$ref": "#/definitions/AWS_SES_ConfigurationSet" }, { - "$ref": "#/definitions/AWS_IoT_TopicRuleDestination" + "$ref": "#/definitions/AWS_EC2_CustomerGateway" }, { - "$ref": "#/definitions/AWS_DSQL_Cluster" + "$ref": "#/definitions/AWS_SecurityLake_SubscriberNotification" }, { - "$ref": "#/definitions/AWS_Notifications_NotificationHub" + "$ref": "#/definitions/AWS_IoTEvents_Input" }, { - "$ref": "#/definitions/AWS_VpcLattice_ServiceNetwork" + "$ref": "#/definitions/AWS_MediaPackageV2_Channel" }, { - "$ref": "#/definitions/AWS_SecurityHub_Insight" + "$ref": "#/definitions/AWS_DocDB_EventSubscription" }, { - "$ref": "#/definitions/AWS_Pinpoint_PushTemplate" + "$ref": "#/definitions/AWS_Bedrock_DataAutomationLibrary" }, { - "$ref": "#/definitions/AWS_MediaConnect_Gateway" + "$ref": "#/definitions/AWS_Bedrock_DataSource" }, { - "$ref": "#/definitions/AWS_KinesisVideo_Stream" + "$ref": "#/definitions/AWS_Deadline_MeteredProduct" }, { - "$ref": "#/definitions/AWS_CloudFormation_CustomResource" + "$ref": "#/definitions/AWS_Connect_EmailAddress" }, { - "$ref": "#/definitions/AWS_Chatbot_MicrosoftTeamsChannelConfiguration" + "$ref": "#/definitions/AWS_Greengrass_LoggerDefinition" }, { - "$ref": "#/definitions/AWS_ApiGateway_GatewayResponse" + "$ref": "#/definitions/AWS_SSM_MaintenanceWindowTarget" }, { - "$ref": "#/definitions/AWS_Bedrock_KnowledgeBase" + "$ref": "#/definitions/AWS_SSM_Parameter" }, { - "$ref": "#/definitions/AWS_SageMaker_Project" + "$ref": "#/definitions/AWS_CloudTrail_EventDataStore" }, { - "$ref": "#/definitions/AWS_AppConfig_Environment" + "$ref": "#/definitions/AWS_CustomerProfiles_Recommender" }, { - "$ref": "#/definitions/AWS_QuickSight_VPCConnection" + "$ref": "#/definitions/AWS_SupportApp_AccountAlias" }, { - "$ref": "#/definitions/AWS_DocDB_EventSubscription" + "$ref": "#/definitions/AWS_IVS_PublicKey" }, { - "$ref": "#/definitions/AWS_Backup_LogicallyAirGappedBackupVault" + "$ref": "#/definitions/AWS_CloudWatch_InsightRule" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_LaunchTemplateConstraint" + "$ref": "#/definitions/AWS_WAF_SqlInjectionMatchSet" }, { - "$ref": "#/definitions/AWS_ServiceDiscovery_Instance" + "$ref": "#/definitions/AWS_EC2_TrafficMirrorFilterRule" }, { - "$ref": "#/definitions/AWS_OpenSearchServerless_Index" + "$ref": "#/definitions/AWS_RTBFabric_RequesterGateway" }, { - "$ref": "#/definitions/AWS_VerifiedPermissions_Policy" + "$ref": "#/definitions/AWS_WAFv2_RegexPatternSet" }, { - "$ref": "#/definitions/AWS_EC2_VPCEndpoint" + "$ref": "#/definitions/AWS_Wisdom_AssistantAssociation" }, { - "$ref": "#/definitions/AWS_SES_ReceiptRuleSet" + "$ref": "#/definitions/AWS_Wisdom_AIPrompt" }, { - "$ref": "#/definitions/AWS_LakeFormation_Permissions" + "$ref": "#/definitions/AWS_NetworkManager_DirectConnectGatewayAttachment" }, { - "$ref": "#/definitions/AWS_ResourceGroups_Group" + "$ref": "#/definitions/AWS_NetworkManager_ConnectAttachment" }, { - "$ref": "#/definitions/AWS_SageMaker_Endpoint" + "$ref": "#/definitions/AWS_LakeFormation_PrincipalPermissions" }, { - "$ref": "#/definitions/AWS_ObservabilityAdmin_TelemetryRule" + "$ref": "#/definitions/AWS_SecurityAgent_Pentest" }, { - "$ref": "#/definitions/AWS_AutoScalingPlans_ScalingPlan" + "$ref": "#/definitions/AWS_Evidently_Project" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_PortfolioShare" + "$ref": "#/definitions/AWS_AppStream_Application" }, { - "$ref": "#/definitions/AWS_RDS_DBSecurityGroup" + "$ref": "#/definitions/AWS_BedrockAgentCore_BrowserProfile" }, { - "$ref": "#/definitions/AWS_ResilienceHub_ResiliencyPolicy" + "$ref": "#/definitions/AWS_DynamoDB_GlobalTable" }, { - "$ref": "#/definitions/AWS_ElasticBeanstalk_Application" + "$ref": "#/definitions/AWS_CloudFormation_ResourceDefaultVersion" }, { - "$ref": "#/definitions/AWS_SNS_TopicInlinePolicy" + "$ref": "#/definitions/AWS_GameLift_Script" }, { - "$ref": "#/definitions/AWS_WAFv2_WebACL" + "$ref": "#/definitions/AWS_VpcLattice_DomainVerification" }, { - "$ref": "#/definitions/AWS_FIS_TargetAccountConfiguration" + "$ref": "#/definitions/AWS_Bedrock_AutomatedReasoningPolicy" }, { - "$ref": "#/definitions/AWS_ApiGatewayV2_RoutingRule" + "$ref": "#/definitions/AWS_Notifications_ManagedNotificationAccountContactAssociation" }, { - "$ref": "#/definitions/AWS_BedrockAgentCore_Runtime" + "$ref": "#/definitions/AWS_Macie_FindingsFilter" }, { - "$ref": "#/definitions/AWS_Omics_VariantStore" + "$ref": "#/definitions/AWS_SecurityHub_Hub" }, { - "$ref": "#/definitions/AWS_CodeCommit_Repository" + "$ref": "#/definitions/AWS_IVS_Channel" }, { - "$ref": "#/definitions/AWS_EC2_PlacementGroup" + "$ref": "#/definitions/AWS_QuickSight_Analysis" }, { - "$ref": "#/definitions/AWS_AmplifyUIBuilder_Theme" + "$ref": "#/definitions/AWS_Greengrass_ConnectorDefinition" }, { - "$ref": "#/definitions/AWS_NetworkManager_CustomerGatewayAssociation" + "$ref": "#/definitions/AWS_EC2_ClientVpnEndpoint" }, { - "$ref": "#/definitions/AWS_SecurityLake_Subscriber" + "$ref": "#/definitions/AWS_BedrockAgentCore_ApiKeyCredentialProvider" }, { - "$ref": "#/definitions/AWS_CloudTrail_EventDataStore" + "$ref": "#/definitions/AWS_IAM_User" }, { - "$ref": "#/definitions/AWS_DAX_SubnetGroup" + "$ref": "#/definitions/AWS_SSMQuickSetup_ConfigurationManager" }, { - "$ref": "#/definitions/AWS_RolesAnywhere_TrustAnchor" + "$ref": "#/definitions/AWS_Omics_AnnotationStore" }, { - "$ref": "#/definitions/AWS_IoTTwinMaker_SyncJob" + "$ref": "#/definitions/AWS_ElementalInference_Feed" }, { - "$ref": "#/definitions/AWS_Events_Endpoint" + "$ref": "#/definitions/AWS_NetworkManager_CustomerGatewayAssociation" }, { - "$ref": "#/definitions/AWS_SecretsManager_ResourcePolicy" + "$ref": "#/definitions/AWS_Redshift_Cluster" }, { - "$ref": "#/definitions/AWS_Bedrock_AutomatedReasoningPolicyVersion" + "$ref": "#/definitions/AWS_FSx_DataRepositoryAssociation" }, { - "$ref": "#/definitions/AWS_WAF_Rule" + "$ref": "#/definitions/AWS_CodeBuild_Project" }, { - "$ref": "#/definitions/AWS_SageMaker_Cluster" + "$ref": "#/definitions/AWS_NetworkManager_TransitGatewayPeering" }, { - "$ref": "#/definitions/AWS_IoTTwinMaker_Workspace" + "$ref": "#/definitions/AWS_ECS_DaemonTaskDefinition" }, { - "$ref": "#/definitions/AWS_S3ObjectLambda_AccessPoint" + "$ref": "#/definitions/AWS_DataSync_LocationFSxLustre" }, { - "$ref": "#/definitions/AWS_ECS_TaskDefinition" + "$ref": "#/definitions/AWS_EC2_CapacityReservation" }, { - "$ref": "#/definitions/AWS_Glue_Trigger" + "$ref": "#/definitions/AWS_SecurityHub_PolicyAssociation" }, { - "$ref": "#/definitions/AWS_CodeArtifact_Domain" + "$ref": "#/definitions/AWS_FraudDetector_Outcome" }, { - "$ref": "#/definitions/AWS_EC2_InstanceConnectEndpoint" + "$ref": "#/definitions/AWS_Lambda_Version" }, { - "$ref": "#/definitions/AWS_QuickSight_Theme" + "$ref": "#/definitions/AWS_EC2_VPNGatewayRoutePropagation" }, { - "$ref": "#/definitions/AWS_KinesisAnalytics_ApplicationReferenceDataSource" + "$ref": "#/definitions/AWS_AppConfig_ExtensionAssociation" }, { - "$ref": "#/definitions/AWS_Route53Profiles_ProfileAssociation" + "$ref": "#/definitions/AWS_MediaTailor_LiveSource" }, { - "$ref": "#/definitions/AWS_Pinpoint_APNSVoipSandboxChannel" + "$ref": "#/definitions/AWS_CodeCommit_Repository" }, { - "$ref": "#/definitions/AWS_EC2_NetworkAclEntry" + "$ref": "#/definitions/AWS_CleanRooms_PrivacyBudgetTemplate" }, { - "$ref": "#/definitions/AWS_S3_Bucket" + "$ref": "#/definitions/AWS_EKS_AccessEntry" }, { - "$ref": "#/definitions/AWS_EC2_NetworkInterfacePermission" + "$ref": "#/definitions/AWS_Events_Archive" }, { - "$ref": "#/definitions/AWS_ApiGateway_ApiKey" + "$ref": "#/definitions/AWS_AppConfig_ConfigurationProfile" }, { - "$ref": "#/definitions/AWS_IVS_IngestConfiguration" + "$ref": "#/definitions/AWS_Kinesis_Stream" }, { - "$ref": "#/definitions/AWS_BillingConductor_CustomLineItem" + "$ref": "#/definitions/AWS_CodeConnections_Connection" }, { - "$ref": "#/definitions/AWS_EC2_TransitGatewayConnectPeer" + "$ref": "#/definitions/AWS_Greengrass_FunctionDefinitionVersion" }, { - "$ref": "#/definitions/AWS_MediaPackageV2_Channel" + "$ref": "#/definitions/AWS_CloudTrail_ResourcePolicy" }, { - "$ref": "#/definitions/AWS_FMS_NotificationChannel" + "$ref": "#/definitions/AWS_Logs_QueryDefinition" }, { - "$ref": "#/definitions/AWS_SQS_QueueInlinePolicy" + "$ref": "#/definitions/AWS_Macie_CustomDataIdentifier" }, { - "$ref": "#/definitions/AWS_Macie_FindingsFilter" + "$ref": "#/definitions/AWS_RoboMaker_RobotApplication" }, { - "$ref": "#/definitions/AWS_AppRunner_AutoScalingConfiguration" + "$ref": "#/definitions/AWS_Connect_View" }, { - "$ref": "#/definitions/AWS_EC2_EnclaveCertificateIamRoleAssociation" + "$ref": "#/definitions/AWS_SecurityHub_FindingAggregator" }, { - "$ref": "#/definitions/AWS_ApiGateway_Stage" + "$ref": "#/definitions/AWS_SSMIncidents_ReplicationSet" }, { - "$ref": "#/definitions/AWS_ServiceCatalog_LaunchNotificationConstraint" + "$ref": "#/definitions/AWS_GameLift_ContainerGroupDefinition" }, { - "$ref": "#/definitions/AWS_CloudTrail_ResourcePolicy" + "$ref": "#/definitions/AWS_Connect_RoutingProfile" }, { - "$ref": "#/definitions/AWS_Pinpoint_ApplicationSettings" + "$ref": "#/definitions/AWS_Config_StoredQuery" }, { - "$ref": "#/definitions/AWS_IoTSiteWise_Gateway" + "$ref": "#/definitions/AWS_Route53Profiles_Profile" }, { - "$ref": "#/definitions/AWS_ApplicationSignals_Discovery" + "$ref": "#/definitions/AWS_Cognito_IdentityPoolPrincipalTag" }, { - "$ref": "#/definitions/AWS_InspectorV2_Filter" + "$ref": "#/definitions/AWS_DAX_Cluster" }, { - "$ref": "#/definitions/AWS_GuardDuty_MalwareProtectionPlan" + "$ref": "#/definitions/AWS_RolesAnywhere_CRL" }, { - "$ref": "#/definitions/AWS_OpsWorks_Volume" + "$ref": "#/definitions/AWS_AppSync_GraphQLSchema" }, { - "$ref": "#/definitions/AWS_RDS_DBProxyEndpoint" + "$ref": "#/definitions/AWS_EC2_VPCEndpointServicePermissions" }, { - "$ref": "#/definitions/AWS_EC2_NetworkPerformanceMetricSubscription" + "$ref": "#/definitions/AWS_DeviceFarm_Project" }, { - "$ref": "#/definitions/AWS_DeviceFarm_VPCEConfiguration" + "$ref": "#/definitions/AWS_DeviceFarm_NetworkProfile" }, { - "$ref": "#/definitions/AWS_DeviceFarm_InstanceProfile" + "$ref": "#/definitions/AWS_DeviceFarm_VPCEConfiguration" }, { - "$ref": "#/definitions/AWS_DeviceFarm_TestGridProject" + "$ref": "#/definitions/AWS_GameLiftStreams_StreamGroup" }, { - "$ref": "#/definitions/AWS_DeviceFarm_Project" + "$ref": "#/definitions/AWS_GameLiftStreams_Application" }, { "$ref": "#/definitions/AWS_DeviceFarm_DevicePool" }, { - "$ref": "#/definitions/AWS_GameLiftStreams_Application" + "$ref": "#/definitions/AWS_DeviceFarm_InstanceProfile" }, { - "$ref": "#/definitions/AWS_GameLiftStreams_StreamGroup" + "$ref": "#/definitions/AWS_CustomerProfiles_DomainObjectType" }, { - "$ref": "#/definitions/AWS_DeviceFarm_NetworkProfile" + "$ref": "#/definitions/AWS_DeviceFarm_TestGridProject" } ] } diff --git a/server/schema/resources/aws-aiops-investigationgroup.json b/server/schema/resources/aws-aiops-investigationgroup.json index 7069a9ad..0a804f65 100644 --- a/server/schema/resources/aws-aiops-investigationgroup.json +++ b/server/schema/resources/aws-aiops-investigationgroup.json @@ -227,6 +227,7 @@ "aiops:GetInvestigationGroup", "aiops:GetInvestigationGroupPolicy", "aiops:PutInvestigationGroupPolicy", + "aiops:ListInvestigationGroups", "aiops:TagResource", "aiops:ListTagsForResource", "iam:PassRole", @@ -241,6 +242,7 @@ "permissions": [ "aiops:GetInvestigationGroup", "aiops:GetInvestigationGroupPolicy", + "aiops:ListInvestigationGroups", "aiops:ListTagsForResource", "kms:DescribeKey", "kms:ListAliases", @@ -252,6 +254,7 @@ "permissions": [ "aiops:GetInvestigationGroup", "aiops:UpdateInvestigationGroup", + "aiops:ListInvestigationGroups", "aiops:GetInvestigationGroupPolicy", "aiops:PutInvestigationGroupPolicy", "aiops:DeleteInvestigationGroupPolicy", diff --git a/server/schema/resources/aws-amazonmq-broker.json b/server/schema/resources/aws-amazonmq-broker.json index 83f2828e..d660fa06 100644 --- a/server/schema/resources/aws-amazonmq-broker.json +++ b/server/schema/resources/aws-amazonmq-broker.json @@ -77,21 +77,6 @@ }, "AuthenticationStrategy": { "type": "string", - "anyOf": [ - { - "enum": [ - "SIMPLE", - "LDAP" - ], - "type": "string" - }, - { - "pattern": "^[Ss][Ii][Mm][Pp][Ll][Ee]$" - }, - { - "pattern": "^[Ll][Dd][Aa][Pp]$" - } - ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "LdapServerMetadata": { diff --git a/server/schema/resources/aws-apigateway-account.json b/server/schema/resources/aws-apigateway-account.json index 34481e8a..4ef08b99 100644 --- a/server/schema/resources/aws-apigateway-account.json +++ b/server/schema/resources/aws-apigateway-account.json @@ -33,7 +33,7 @@ "readOnlyProperties": [ "/properties/Id" ], - "description": "The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs. To avoid overwriting other roles, you should only have one ``AWS::ApiGateway::Account`` resource per region per account.", + "description": "The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs. To avoid overwriting other roles, you should only have one ``AWS::ApiGateway::Account`` resource per region per account. \n When you delete a stack containing this resource, API Gateway can still assume the provided IAM role to write API logs to CloudWatch Logs. To deny API Gateway access to write API logs to CloudWatch logs, update the permissions policies or change the IAM role to deny access.", "additionalProperties": false, "primaryIdentifier": [ "/properties/Id" diff --git a/server/schema/resources/aws-apigateway-apikey.json b/server/schema/resources/aws-apigateway-apikey.json index b29bceb1..61903496 100644 --- a/server/schema/resources/aws-apigateway-apikey.json +++ b/server/schema/resources/aws-apigateway-apikey.json @@ -31,9 +31,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "Name": { - "description": "A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", + "description": "A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", "type": "string", - "markdownDescription": "A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "StageKeys": { "description": "", @@ -83,25 +83,25 @@ "additionalProperties": false, "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 -.", + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", "type": "string", "minLength": 1, "maxLength": 128, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, "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 -. ", + "description": "The value for the specified tag key.", "type": "string", "maxLength": 256, - "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "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).", + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "tagging": { diff --git a/server/schema/resources/aws-apigateway-basepathmapping.json b/server/schema/resources/aws-apigateway-basepathmapping.json index 23a867db..cc410c02 100644 --- a/server/schema/resources/aws-apigateway-basepathmapping.json +++ b/server/schema/resources/aws-apigateway-basepathmapping.json @@ -1,6 +1,6 @@ { "typeName": "AWS::ApiGateway::BasePathMapping", - "description": "The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL.", + "description": "The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL. Supported only for public custom domain names.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway", "additionalProperties": false, "properties": { diff --git a/server/schema/resources/aws-apigateway-clientcertificate.json b/server/schema/resources/aws-apigateway-clientcertificate.json index 14a6cd69..b24d0a4e 100644 --- a/server/schema/resources/aws-apigateway-clientcertificate.json +++ b/server/schema/resources/aws-apigateway-clientcertificate.json @@ -31,19 +31,21 @@ "properties": { "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The value for the specified tag key.", + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "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).", + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "tagging": { diff --git a/server/schema/resources/aws-apigateway-deployment.json b/server/schema/resources/aws-apigateway-deployment.json index 3ccd32de..682626b9 100644 --- a/server/schema/resources/aws-apigateway-deployment.json +++ b/server/schema/resources/aws-apigateway-deployment.json @@ -279,26 +279,26 @@ "markdownDescription": "The ``CanarySetting`` property type specifies settings for the canary deployment in this stage.\n ``CanarySetting`` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { - "description": "", + "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).", "additionalProperties": false, "type": "object", "properties": { "Value": { - "description": "The value for the tag", + "description": "The value for the specified tag key.", "type": "string", - "markdownDescription": "The value for the tag\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { - "description": "The key name of the tag", + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", "type": "string", - "markdownDescription": "The key name of the tag\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "DeploymentCanarySettings": { "description": "The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.", @@ -331,7 +331,7 @@ "markdownDescription": "The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AccessLogSetting": { - "description": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.", + "description": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.", "additionalProperties": false, "type": "object", "properties": { @@ -346,7 +346,7 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { diff --git a/server/schema/resources/aws-apigateway-documentationpart.json b/server/schema/resources/aws-apigateway-documentationpart.json index 189ee732..0b97d056 100644 --- a/server/schema/resources/aws-apigateway-documentationpart.json +++ b/server/schema/resources/aws-apigateway-documentationpart.json @@ -70,8 +70,8 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: API | AUTHORIZER | MODEL | RESOURCE | METHOD | PATH_PARAMETER | QUERY_PARAMETER | REQUEST_HEADER | REQUEST_BODY | RESPONSE | RESPONSE_HEADER | RESPONSE_BODY \nUpdate requires: No interruption\n" } }, - "description": "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.", - "markdownDescription": "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.", + "markdownDescription": "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-apigateway-domainname.json b/server/schema/resources/aws-apigateway-domainname.json index 0210bd61..5437179d 100644 --- a/server/schema/resources/aws-apigateway-domainname.json +++ b/server/schema/resources/aws-apigateway-domainname.json @@ -1,6 +1,6 @@ { "typeName": "AWS::ApiGateway::DomainName", - "description": "The ``AWS::ApiGateway::DomainName`` resource specifies a custom domain name for your API in API Gateway.\n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*.", + "description": "The ``AWS::ApiGateway::DomainName`` resource specifies a public custom domain name for your API in API Gateway.\n To create a custom domain name for private APIs, use [AWS::ApiGateway::DomainNameV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2.html).\n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "EndpointConfiguration": { @@ -22,8 +22,8 @@ } }, "additionalProperties": false, - "description": "The ``EndpointConfiguration`` property type specifies the endpoint types of an Amazon API Gateway domain name.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource.", - "markdownDescription": "The ``EndpointConfiguration`` property type specifies the endpoint types of an Amazon API Gateway domain name.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The ``EndpointConfiguration`` property type specifies the endpoint types and IP address types of an Amazon API Gateway domain name.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource.", + "markdownDescription": "The ``EndpointConfiguration`` property type specifies the endpoint types and IP address types of an Amazon API Gateway domain name.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MutualTlsAuthentication": { "type": "object", @@ -48,16 +48,18 @@ "properties": { "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The value for the specified tag key.", + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "additionalProperties": false, - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "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).", + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -83,8 +85,8 @@ }, "EndpointConfiguration": { "$ref": "#/definitions/EndpointConfiguration", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The endpoint configuration of this DomainName showing the endpoint types and IP address types of the domain name.", + "markdownDescription": "The endpoint configuration of this DomainName showing the endpoint types and IP address types of the domain name.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "MutualTlsAuthentication": { "$ref": "#/definitions/MutualTlsAuthentication", @@ -121,6 +123,11 @@ "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "EndpointAccessMode": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "RoutingMode": { "type": "string", "description": "", diff --git a/server/schema/resources/aws-apigateway-domainnameaccessassociation.json b/server/schema/resources/aws-apigateway-domainnameaccessassociation.json index 1c5eeeca..e6b96fd5 100644 --- a/server/schema/resources/aws-apigateway-domainnameaccessassociation.json +++ b/server/schema/resources/aws-apigateway-domainnameaccessassociation.json @@ -42,18 +42,18 @@ "type": "object", "additionalProperties": false, "properties": { - "Value": { + "Key": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Key": { + "Value": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "Value", - "Key" + "Key", + "Value" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } diff --git a/server/schema/resources/aws-apigateway-domainnamev2.json b/server/schema/resources/aws-apigateway-domainnamev2.json index d0805a59..73c94662 100644 --- a/server/schema/resources/aws-apigateway-domainnamev2.json +++ b/server/schema/resources/aws-apigateway-domainnamev2.json @@ -54,6 +54,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, + "EndpointAccessMode": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Policy": { "type": [ "object", diff --git a/server/schema/resources/aws-apigateway-gatewayresponse.json b/server/schema/resources/aws-apigateway-gatewayresponse.json index c975b966..a4fcd9cd 100644 --- a/server/schema/resources/aws-apigateway-gatewayresponse.json +++ b/server/schema/resources/aws-apigateway-gatewayresponse.json @@ -1,6 +1,6 @@ { "typeName": "AWS::ApiGateway::GatewayResponse", - "description": "The ``AWS::ApiGateway::GatewayResponse`` resource creates a gateway response for your API. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide*.", + "description": "The ``AWS::ApiGateway::GatewayResponse`` resource creates a gateway response for your API. When you delete a stack containing this resource, your custom gateway responses are reset. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide*.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "additionalProperties": false, "properties": { diff --git a/server/schema/resources/aws-apigateway-method.json b/server/schema/resources/aws-apigateway-method.json index d5ed3e68..69f51f86 100644 --- a/server/schema/resources/aws-apigateway-method.json +++ b/server/schema/resources/aws-apigateway-method.json @@ -123,6 +123,16 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "ResponseTransferMode": { + "default": "BUFFERED", + "description": "", + "type": "string", + "enum": [ + "BUFFERED", + "STREAM" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: BUFFERED | STREAM \nUpdate requires: No interruption\n" + }, "Uri": { "description": "", "type": "string", @@ -177,6 +187,11 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "IntegrationTarget": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "ContentHandling": { "description": "", "type": "string", diff --git a/server/schema/resources/aws-apigateway-restapi.json b/server/schema/resources/aws-apigateway-restapi.json index a394fe96..79ed088f 100644 --- a/server/schema/resources/aws-apigateway-restapi.json +++ b/server/schema/resources/aws-apigateway-restapi.json @@ -56,7 +56,7 @@ "/properties/RestApiId", "/properties/RootResourceId" ], - "description": "The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.", + "description": "The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.", "writeOnlyProperties": [ "/properties/Body", "/properties/BodyS3Location", @@ -71,7 +71,7 @@ ], "definitions": { "EndpointConfiguration": { - "description": "The ``EndpointConfiguration`` property type specifies the endpoint types of a REST API.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource.", + "description": "The ``EndpointConfiguration`` property type specifies the endpoint types and IP address types of a REST API.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource.", "additionalProperties": false, "type": "object", "properties": { @@ -105,30 +105,32 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The ``EndpointConfiguration`` property type specifies the endpoint types of a REST API.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The ``EndpointConfiguration`` property type specifies the endpoint types and IP address types of a REST API.\n ``EndpointConfiguration`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { - "description": "", + "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).", "additionalProperties": false, "type": "object", "properties": { "Value": { + "description": "The value for the specified tag key.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Key", "Value" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "S3Location": { - "description": "``S3Location`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource that specifies the Amazon S3 location of a OpenAPI (formerly Swagger) file that defines a set of RESTful APIs in JSON or YAML.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.", + "description": "``S3Location`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource that specifies the Amazon S3 location of a OpenAPI (formerly Swagger) file that defines a set of RESTful APIs in JSON or YAML.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.", "additionalProperties": false, "type": "object", "properties": { @@ -153,7 +155,7 @@ "markdownDescription": "The file name of the OpenAPI file (Amazon S3 object name).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "``S3Location`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource that specifies the Amazon S3 location of a OpenAPI (formerly Swagger) file that defines a set of RESTful APIs in JSON or YAML.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "``S3Location`` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource that specifies the Amazon S3 location of a OpenAPI (formerly Swagger) file that defines a set of RESTful APIs in JSON or YAML.\n On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -240,15 +242,20 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "SecurityPolicy": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "ApiKeySourceType": { "description": "", "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "EndpointConfiguration": { - "description": "A list of the endpoint types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property.", + "description": "A list of the endpoint types and IP address types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property.", "$ref": "#/definitions/EndpointConfiguration", - "markdownDescription": "A list of the endpoint types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "A list of the endpoint types and IP address types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Body": { "description": "An OpenAPI specification that defines a set of RESTful APIs in JSON format. For YAML templates, you can also provide the specification in YAML format.", @@ -266,6 +273,11 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EndpointAccessMode": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "attributes": { diff --git a/server/schema/resources/aws-apigateway-stage.json b/server/schema/resources/aws-apigateway-stage.json index 6245524d..76f8a23b 100644 --- a/server/schema/resources/aws-apigateway-stage.json +++ b/server/schema/resources/aws-apigateway-stage.json @@ -131,7 +131,7 @@ "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AccessLogSetting": { - "description": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.", + "description": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.", "type": "object", "additionalProperties": false, "properties": { @@ -146,7 +146,7 @@ "markdownDescription": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference). The format must include at least ``$context.requestId``. This parameter is required to enable access logging.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MethodSetting": { "description": "The ``MethodSetting`` property type configures settings for all methods in a stage.\n The ``MethodSettings`` property of the ``AWS::ApiGateway::Stage`` resource contains a list of ``MethodSetting`` property types.", @@ -209,30 +209,30 @@ "markdownDescription": "The ``MethodSetting`` property type configures settings for all methods in a stage.\n The ``MethodSettings`` property of the ``AWS::ApiGateway::Stage`` resource contains a list of ``MethodSetting`` property types.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { - "description": "", + "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).", "type": "object", "additionalProperties": false, "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:.", + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", "type": "string", "minLength": 1, "maxLength": 128, - "markdownDescription": "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:.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, "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:.", + "description": "The value for the specified tag key.", "type": "string", "minLength": 0, "maxLength": 256, - "markdownDescription": "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:.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" } }, "required": [ "Key", "Value" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-apigateway-usageplan.json b/server/schema/resources/aws-apigateway-usageplan.json index fc592e17..fe66c732 100644 --- a/server/schema/resources/aws-apigateway-usageplan.json +++ b/server/schema/resources/aws-apigateway-usageplan.json @@ -107,23 +107,23 @@ "type": "string", "minLength": 1, "maxLength": 128, - "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 -.", - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, "Value": { "type": "string", "minLength": 0, "maxLength": 256, - "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 -.", - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + "description": "The value for the specified tag key.", + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "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).", + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "QuotaSettings": { "type": "object", diff --git a/server/schema/resources/aws-apigateway-vpclink.json b/server/schema/resources/aws-apigateway-vpclink.json index a9e0d4d0..82c6aeb8 100644 --- a/server/schema/resources/aws-apigateway-vpclink.json +++ b/server/schema/resources/aws-apigateway-vpclink.json @@ -47,19 +47,21 @@ "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The value for the specified tag key.", + "markdownDescription": "The value for the specified tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.", + "markdownDescription": "A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "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).", + "markdownDescription": "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).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-apigatewayv2-integration.json b/server/schema/resources/aws-apigatewayv2-integration.json index 1d14adfd..b1ab7055 100644 --- a/server/schema/resources/aws-apigatewayv2-integration.json +++ b/server/schema/resources/aws-apigatewayv2-integration.json @@ -1,7 +1,7 @@ { "typeName": "AWS::ApiGatewayV2::Integration", "additionalProperties": false, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "description": "Resource Type definition for AWS::ApiGatewayV2::Integration", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "ResponseParameter": { @@ -102,7 +102,7 @@ "CredentialsArn": { "description": "Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter.", "type": "string", - "markdownDescription": "Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter.\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws|aws-cn|aws-us-gov):iam::[0-9]*:(role|user|group)\\/.* \nUpdate requires: No interruption\n" }, "Description": { "description": "The description of the integration.", diff --git a/server/schema/resources/aws-apigatewayv2-stage.json b/server/schema/resources/aws-apigatewayv2-stage.json index b4e1d554..66a59334 100644 --- a/server/schema/resources/aws-apigatewayv2-stage.json +++ b/server/schema/resources/aws-apigatewayv2-stage.json @@ -3,6 +3,10 @@ "description": "Resource Type definition for AWS::ApiGatewayV2::Stage", "additionalProperties": false, "properties": { + "ClientCertificateId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "DeploymentId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -15,6 +19,9 @@ "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "AccessLogSettings": { + "$ref": "#/definitions/AccessLogSettings" + }, "RouteSettings": { "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -27,17 +34,6 @@ "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AccessPolicyId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ClientCertificateId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "AccessLogSettings": { - "$ref": "#/definitions/AccessLogSettings" - }, "Id": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" diff --git a/server/schema/resources/aws-appconfig-configurationprofile.json b/server/schema/resources/aws-appconfig-configurationprofile.json index 14ab5265..dd761373 100644 --- a/server/schema/resources/aws-appconfig-configurationprofile.json +++ b/server/schema/resources/aws-appconfig-configurationprofile.json @@ -146,7 +146,7 @@ "KmsKeyIdentifier": { "description": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.", "type": "string", - "markdownDescription": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|alias/[a-zA-Z0-9/_-]{1,250}|arn:aws[a-zA-Z-]*:kms:((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(key/[0-9a-f-]{36}|alias/[a-zA-Z0-9/_-]{1,250})$ \nUpdate requires: No interruption\n" + "markdownDescription": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Description": { "minLength": 0, diff --git a/server/schema/resources/aws-appconfig-deployment.json b/server/schema/resources/aws-appconfig-deployment.json index bcbfe661..f5a76d14 100644 --- a/server/schema/resources/aws-appconfig-deployment.json +++ b/server/schema/resources/aws-appconfig-deployment.json @@ -145,7 +145,7 @@ "KmsKeyIdentifier": { "description": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.", "type": "string", - "markdownDescription": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|alias/[a-zA-Z0-9/_-]{1,250}|arn:aws[a-zA-Z-]*:kms:[a-z]{2}(-gov|-iso(b?))?-[a-z]+-\\d{1}:\\d{12}:(key/[0-9a-f-]{36}|alias/[a-zA-Z0-9/_-]{1,250})$ \nUpdate requires: Replacement\n" + "markdownDescription": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "Description": { "description": "A description of the deployment.", diff --git a/server/schema/resources/aws-appintegrations-application.json b/server/schema/resources/aws-appintegrations-application.json index dfdc0e03..1549d189 100644 --- a/server/schema/resources/aws-appintegrations-application.json +++ b/server/schema/resources/aws-appintegrations-application.json @@ -148,7 +148,7 @@ "type": "string", "minLength": 1, "maxLength": 1000, - "markdownDescription": "The application description.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + "markdownDescription": "The application description.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" }, "ApplicationArn": { "description": "The Amazon Resource Name (ARN) of the application.", @@ -198,6 +198,16 @@ "default": false, "markdownDescription": "Indicates if the application is a service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "ApplicationType": { + "description": "The type of application", + "type": "string", + "enum": [ + "STANDARD", + "SERVICE", + "MCP_SERVER" + ], + "markdownDescription": "The type of application\n\n---\n\nRequired: No \nType: String \nAllowed Values: STANDARD | SERVICE | MCP_SERVER \nUpdate requires: No interruption\n" + }, "InitializationTimeout": { "description": "The initialization timeout in milliseconds. Required when IsService is true.", "type": "integer", @@ -218,7 +228,6 @@ "required": [ "Name", "Namespace", - "Description", "ApplicationSourceConfig" ], "tagging": { diff --git a/server/schema/resources/aws-applicationinsights-application.json b/server/schema/resources/aws-applicationinsights-application.json index 47319915..5b5397a1 100644 --- a/server/schema/resources/aws-applicationinsights-application.json +++ b/server/schema/resources/aws-applicationinsights-application.json @@ -785,16 +785,23 @@ "create": { "permissions": [ "applicationinsights:CreateApplication", - "applicationinsights:Describe*", + "applicationinsights:DescribeApplication", "applicationinsights:CreateComponent", + "applicationinsights:DescribeComponent", "applicationinsights:CreateLogPattern", + "applicationinsights:DescribeLogPattern", + "applicationinsights:DescribeComponentConfigurationRecommendation", "applicationinsights:UpdateComponentConfiguration", "applicationinsights:ListComponents", "applicationinsights:TagResource", - "ec2:Describe*", - "rds:Describe*", + "ec2:DescribeInstances", + "ec2:DescribeVolumes", + "rds:DescribeDBInstances", + "rds:DescribeDBClusters", "sqs:ListQueues", - "elasticloadbalancing:Describe*", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetHealth", "autoscaling:DescribeAutoScalingGroups", "lambda:ListFunctions", "dynamodb:ListTables", @@ -802,37 +809,49 @@ "sns:ListTopics", "states:ListStateMachines", "apigateway:GET", - "ecs:List*", + "ecs:ListClusters", "ecs:DescribeTaskDefinition", - "eks:List*", + "ecs:ListServices", + "ecs:ListTasks", + "eks:ListClusters", + "eks:ListNodegroups", "fsx:DescribeFileSystems", - "route53:List*", - "route53resolver:List*", "logs:DescribeLogGroups", - "resource-explorer:ListResources", "elasticfilesystem:DescribeFileSystems" ], "timeoutInMinutes": 600 }, "read": { "permissions": [ - "applicationinsights:Describe*", - "applicationinsights:List*" + "applicationinsights:DescribeApplication", + "applicationinsights:ListTagsForResource", + "applicationinsights:DescribeComponent", + "applicationinsights:ListComponents", + "applicationinsights:DescribeLogPattern", + "applicationinsights:ListLogPatterns", + "applicationinsights:ListLogPatternSets" ] }, "update": { "permissions": [ "applicationinsights:CreateApplication", - "applicationinsights:Describe*", + "applicationinsights:DescribeApplication", "applicationinsights:UpdateApplication", "applicationinsights:TagResource", "applicationinsights:UntagResource", - "applicationinsights:List*", + "applicationinsights:ListTagsForResource", "applicationinsights:CreateComponent", + "applicationinsights:DescribeComponent", "applicationinsights:DeleteComponent", + "applicationinsights:ListComponents", "applicationinsights:CreateLogPattern", "applicationinsights:DeleteLogPattern", + "applicationinsights:DescribeLogPattern", + "applicationinsights:ListLogPatterns", + "applicationinsights:ListLogPatternSets", "applicationinsights:UpdateLogPattern", + "applicationinsights:DescribeComponentConfiguration", + "applicationinsights:DescribeComponentConfigurationRecommendation", "applicationinsights:UpdateComponentConfiguration" ], "timeoutInMinutes": 600 @@ -845,8 +864,14 @@ }, "list": { "permissions": [ - "applicationinsights:List*", - "applicationinsights:Describe*" + "applicationinsights:ListApplications", + "applicationinsights:DescribeApplication", + "applicationinsights:ListTagsForResource", + "applicationinsights:DescribeComponent", + "applicationinsights:ListComponents", + "applicationinsights:DescribeLogPattern", + "applicationinsights:ListLogPatterns", + "applicationinsights:ListLogPatternSets" ] } }, diff --git a/server/schema/resources/aws-applicationsignals-groupingconfiguration.json b/server/schema/resources/aws-applicationsignals-groupingconfiguration.json new file mode 100644 index 00000000..ebe17cad --- /dev/null +++ b/server/schema/resources/aws-applicationsignals-groupingconfiguration.json @@ -0,0 +1,119 @@ +{ + "typeName": "AWS::ApplicationSignals::GroupingConfiguration", + "description": "Resource Type definition for AWS::ApplicationSignals::GroupingConfiguration", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-applicationsignals", + "definitions": { + "AccountId": { + "description": "The identifier for the specified AWS account.", + "type": "string", + "maxLength": 12, + "minLength": 12, + "markdownDescription": "The identifier for the specified AWS account.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, + "GroupingString": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "GroupingAttributeDefinition": { + "type": "object", + "properties": { + "GroupingName": { + "$ref": "#/definitions/GroupingString" + }, + "GroupingSourceKeys": { + "type": "array", + "insertionOrder": true, + "minItems": 1, + "items": { + "$ref": "#/definitions/GroupingString" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DefaultGroupingValue": { + "$ref": "#/definitions/GroupingString" + } + }, + "required": [ + "GroupingName", + "GroupingSourceKeys" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GroupingAttributeDefinitions": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GroupingAttributeDefinition" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Timestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "properties": { + "GroupingAttributeDefinitions": { + "$ref": "#/definitions/GroupingAttributeDefinitions" + }, + "UpdatedAt": { + "$ref": "#/definitions/Timestamp" + }, + "AccountId": { + "$ref": "#/definitions/AccountId" + } + }, + "additionalProperties": false, + "required": [ + "GroupingAttributeDefinitions" + ], + "readOnlyProperties": [ + "/properties/UpdatedAt", + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "handlers": { + "create": { + "permissions": [ + "application-signals:PutGroupingConfiguration", + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "read": { + "permissions": [ + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "update": { + "permissions": [ + "application-signals:PutGroupingConfiguration", + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "delete": { + "permissions": [ + "application-signals:DeleteGroupingConfiguration", + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "list": { + "permissions": [] + } + }, + "tagging": { + "taggable": false + }, + "attributes": { + "UpdatedAt": { + "$ref": "#/definitions/Timestamp" + }, + "AccountId": { + "$ref": "#/definitions/AccountId" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-apprunner-observabilityconfiguration.json b/server/schema/resources/aws-apprunner-observabilityconfiguration.json index 3ca92465..89d751ab 100644 --- a/server/schema/resources/aws-apprunner-observabilityconfiguration.json +++ b/server/schema/resources/aws-apprunner-observabilityconfiguration.json @@ -82,7 +82,12 @@ "tagOnCreate": true, "tagUpdatable": false, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "apprunner:TagResource", + "apprunner:UntagResource", + "apprunner:ListTagsForResource" + ] }, "additionalProperties": false, "required": [], @@ -91,14 +96,14 @@ "/properties/TraceConfiguration", "/properties/Tags" ], + "writeOnlyProperties": [ + "/properties/Tags" + ], "readOnlyProperties": [ "/properties/ObservabilityConfigurationArn", "/properties/ObservabilityConfigurationRevision", "/properties/Latest" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "primaryIdentifier": [ "/properties/ObservabilityConfigurationArn" ], diff --git a/server/schema/resources/aws-apprunner-service.json b/server/schema/resources/aws-apprunner-service.json index 74ae4502..8716aadc 100644 --- a/server/schema/resources/aws-apprunner-service.json +++ b/server/schema/resources/aws-apprunner-service.json @@ -510,7 +510,7 @@ "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/EncryptionConfiguration" @@ -549,7 +549,8 @@ ], "createOnlyProperties": [ "/properties/ServiceName", - "/properties/EncryptionConfiguration" + "/properties/EncryptionConfiguration", + "/properties/Tags" ], "readOnlyProperties": [ "/properties/ServiceArn", @@ -558,7 +559,8 @@ "/properties/Status" ], "writeOnlyProperties": [ - "/properties/AutoScalingConfigurationArn" + "/properties/AutoScalingConfigurationArn", + "/properties/Tags" ], "primaryIdentifier": [ "/properties/ServiceArn" diff --git a/server/schema/resources/aws-apprunner-vpcconnector.json b/server/schema/resources/aws-apprunner-vpcconnector.json index 31bf22f2..e461922c 100644 --- a/server/schema/resources/aws-apprunner-vpcconnector.json +++ b/server/schema/resources/aws-apprunner-vpcconnector.json @@ -76,7 +76,12 @@ "tagOnCreate": true, "tagUpdatable": false, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "apprunner:TagResource", + "apprunner:UntagResource", + "apprunner:ListTagsForResource" + ] }, "additionalProperties": false, "required": [ @@ -88,13 +93,13 @@ "/properties/SecurityGroups", "/properties/Tags" ], + "writeOnlyProperties": [ + "/properties/Tags" + ], "readOnlyProperties": [ "/properties/VpcConnectorArn", "/properties/VpcConnectorRevision" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "primaryIdentifier": [ "/properties/VpcConnectorArn" ], diff --git a/server/schema/resources/aws-apprunner-vpcingressconnection.json b/server/schema/resources/aws-apprunner-vpcingressconnection.json index e929db9a..db8801a8 100644 --- a/server/schema/resources/aws-apprunner-vpcingressconnection.json +++ b/server/schema/resources/aws-apprunner-vpcingressconnection.json @@ -101,7 +101,12 @@ "tagOnCreate": true, "tagUpdatable": false, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "apprunner:TagResource", + "apprunner:UntagResource", + "apprunner:ListTagsForResource" + ] }, "additionalProperties": false, "required": [ @@ -113,14 +118,14 @@ "/properties/ServiceArn", "/properties/Tags" ], + "writeOnlyProperties": [ + "/properties/Tags" + ], "readOnlyProperties": [ "/properties/VpcIngressConnectionArn", "/properties/DomainName", "/properties/Status" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "primaryIdentifier": [ "/properties/VpcIngressConnectionArn" ], @@ -142,12 +147,17 @@ }, "update": { "permissions": [ - "apprunner:UpdateVpcIngressConnection" + "apprunner:UpdateVpcIngressConnection", + "apprunner:DescribeVpcIngressConnection", + "ec2:DescribeVpcs", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSubnets" ] }, "delete": { "permissions": [ - "apprunner:DeleteVpcIngressConnection" + "apprunner:DeleteVpcIngressConnection", + "apprunner:DescribeVpcIngressConnection" ] }, "list": { diff --git a/server/schema/resources/aws-appstream-fleet.json b/server/schema/resources/aws-appstream-fleet.json index 458c4ac1..0447f56e 100644 --- a/server/schema/resources/aws-appstream-fleet.json +++ b/server/schema/resources/aws-appstream-fleet.json @@ -17,16 +17,8 @@ "VpcConfig": { "$ref": "#/definitions/VpcConfig" }, - "FleetType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "EnableDefaultInternetAccess": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "DomainJoinInfo": { - "$ref": "#/definitions/DomainJoinInfo" + "RootVolumeConfig": { + "$ref": "#/definitions/VolumeConfig" }, "SessionScriptS3Location": { "$ref": "#/definitions/S3Location" @@ -35,14 +27,6 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "ImageName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "MaxUserDurationInSeconds": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, "IdleDisconnectTimeoutInSeconds": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" @@ -64,10 +48,6 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "StreamView": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "IamRoleArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -76,10 +56,6 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "InstanceType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" @@ -96,6 +72,37 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "FleetType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "DisableIMDSV1": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "EnableDefaultInternetAccess": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "DomainJoinInfo": { + "$ref": "#/definitions/DomainJoinInfo" + }, + "ImageName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "MaxUserDurationInSeconds": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "StreamView": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "ImageArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -194,6 +201,17 @@ "S3Key" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VolumeConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "VolumeSizeInGb": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-appstream-imagebuilder.json b/server/schema/resources/aws-appstream-imagebuilder.json index 3b19ed3e..af5a1dcb 100644 --- a/server/schema/resources/aws-appstream-imagebuilder.json +++ b/server/schema/resources/aws-appstream-imagebuilder.json @@ -23,11 +23,11 @@ }, "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" }, "ImageName": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "DisplayName": { "type": "string", @@ -39,7 +39,7 @@ }, "InstanceType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "Tags": { "type": "array", @@ -55,7 +55,7 @@ }, "ImageArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "AccessEndpoints": { "type": "array", @@ -64,6 +64,25 @@ "$ref": "#/definitions/AccessEndpoint" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SoftwaresToInstall": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SoftwaresToUninstall": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "RootVolumeConfig": { + "$ref": "#/definitions/VolumeConfig" } }, "definitions": { @@ -144,6 +163,17 @@ "VpceId" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VolumeConfig": { + "type": "object", + "properties": { + "VolumeSizeInGb": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ @@ -156,12 +186,37 @@ "readOnlyProperties": [ "/properties/StreamingUrl" ], + "createOnlyProperties": [ + "/properties/Name" + ], + "writeOnlyProperties": [ + "/properties/SoftwaresToInstall", + "/properties/SoftwaresToUninstall", + "/properties/ImageName" + ], + "oneOf": [ + { + "required": [ + "ImageName" + ] + }, + { + "required": [ + "ImageArn" + ] + } + ], "tagging": { "taggable": false, "tagOnCreate": true, "tagUpdatable": false, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "appstream:ListTagsForResource", + "appstream:TagResource", + "appstream:UntagResource" + ] }, "handlers": { "create": { @@ -173,20 +228,18 @@ "appstream:DescribeImageBuilders", "appstream:StartImageBuilder", "appstream:StopImageBuilder", + "appstream:TagResource", "iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" + "iam:GetServiceLinkedRoleDeletionStatus", + "iam:PassRole" ] }, "read": { "permissions": [ - "appstream:CreateImageBuilder", "appstream:CreateImageBuilderStreamingURL", - "appstream:CreateStreamingURL", - "appstream:DeleteImageBuilder", "appstream:DescribeImageBuilders", - "appstream:StartImageBuilder", - "appstream:StopImageBuilder", + "appstream:ListTagsForResource", "iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" @@ -194,11 +247,9 @@ }, "delete": { "permissions": [ - "appstream:CreateImageBuilder", - "appstream:CreateImageBuilderStreamingURL", - "appstream:CreateStreamingURL", "appstream:DeleteImageBuilder", "appstream:DescribeImageBuilders", + "appstream:ListTagsForResource", "appstream:StartImageBuilder", "appstream:StopImageBuilder", "iam:CreateServiceLinkedRole", @@ -208,13 +259,8 @@ }, "list": { "permissions": [ - "appstream:CreateImageBuilder", - "appstream:CreateImageBuilderStreamingURL", - "appstream:CreateStreamingURL", - "appstream:DeleteImageBuilder", "appstream:DescribeImageBuilders", - "appstream:StartImageBuilder", - "appstream:StopImageBuilder", + "appstream:ListTagsForResource", "iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" diff --git a/server/schema/resources/aws-appstream-stack.json b/server/schema/resources/aws-appstream-stack.json index b6aae5b6..d84340df 100644 --- a/server/schema/resources/aws-appstream-stack.json +++ b/server/schema/resources/aws-appstream-stack.json @@ -1,11 +1,13 @@ { "typeName": "AWS::AppStream::Stack", "description": "Resource Type definition for AWS::AppStream::Stack", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appstream.git", "additionalProperties": false, "properties": { "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The description to display.", + "markdownDescription": "The description to display.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "StorageConnectors": { "type": "array", @@ -13,11 +15,13 @@ "items": { "$ref": "#/definitions/StorageConnector" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The storage connectors to enable.", + "markdownDescription": "The storage connectors to enable.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "DeleteStorageConnectors": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "This parameter has been deprecated. Deletes the storage connectors currently enabled for the stack.", + "markdownDescription": "This parameter has been deprecated. Deletes the storage connectors currently enabled for the stack.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "EmbedHostDomains": { "type": "array", @@ -26,7 +30,8 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.", + "markdownDescription": "The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "UserSettings": { "type": "array", @@ -34,7 +39,8 @@ "items": { "$ref": "#/definitions/UserSetting" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled.", + "markdownDescription": "The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "AttributesToDelete": { "type": "array", @@ -43,33 +49,38 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The stack attributes to delete.", + "markdownDescription": "The stack attributes to delete.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "RedirectURL": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The URL that users are redirected to after their streaming session ends.", + "markdownDescription": "The URL that users are redirected to after their streaming session ends.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "StreamingExperienceSettings": { - "$ref": "#/definitions/StreamingExperienceSettings" + "$ref": "#/definitions/StreamingExperienceSettings", + "description": "The streaming protocol that you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.", + "markdownDescription": "The streaming protocol that you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "description": "The name of the stack.", + "markdownDescription": "The name of the stack.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "FeedbackURL": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.", + "markdownDescription": "The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ApplicationSettings": { - "$ref": "#/definitions/ApplicationSettings" + "$ref": "#/definitions/ApplicationSettings", + "description": "The persistent application settings for users of the stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.", + "markdownDescription": "The persistent application settings for users of the stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "DisplayName": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The stack name to display.", + "markdownDescription": "The stack name to display.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Tags": { "type": "array", @@ -77,7 +88,8 @@ "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "An array of key-value pairs.", + "markdownDescription": "An array of key-value pairs.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "AccessEndpoints": { "type": "array", @@ -85,13 +97,15 @@ "items": { "$ref": "#/definitions/AccessEndpoint" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The list of virtual private cloud (VPC) interface endpoint objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints.", + "markdownDescription": "The list of virtual private cloud (VPC) interface endpoint objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "definitions": { "StorageConnector": { "type": "object", "additionalProperties": false, + "description": "A connector that enables persistent storage for users.", "properties": { "Domains": { "type": "array", @@ -100,126 +114,189 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The names of the domains for the account.", + "markdownDescription": "The names of the domains for the account.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "ResourceIdentifier": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The ARN of the storage connector.", + "markdownDescription": "The ARN of the storage connector.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ConnectorType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The type of storage connector.", + "markdownDescription": "The type of storage connector.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "ConnectorType" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A connector that enables persistent storage for users.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ApplicationSettings": { "type": "object", "additionalProperties": false, + "description": "The persistent application settings for users of a stack.", "properties": { "SettingsGroup": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The path prefix for the S3 bucket where users\u2019 persistent application settings are stored. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack.", + "markdownDescription": "The path prefix for the S3 bucket where users\u2019 persistent application settings are stored. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Enabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Enables or disables persistent application settings for users during their streaming sessions.", + "markdownDescription": "Enables or disables persistent application settings for users during their streaming sessions.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" } }, "required": [ "Enabled" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The persistent application settings for users of a stack.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "StreamingExperienceSettings": { "type": "object", "additionalProperties": false, + "description": "The streaming protocol that you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.", "properties": { "PreferredProtocol": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The preferred protocol that you want to use while streaming your application.", + "markdownDescription": "The preferred protocol that you want to use while streaming your application.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The streaming protocol that you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { "type": "object", "additionalProperties": false, + "description": "The tag of the stack.", "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The value of the tag.", + "markdownDescription": "The value of the tag.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The key of the tag.", + "markdownDescription": "The key of the tag.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The tag of the stack.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AccessEndpoint": { "type": "object", "additionalProperties": false, + "description": "Describes an interface VPC endpoint (interface endpoint) that lets you create a private connection between the virtual private cloud (VPC) that you specify and AppStream 2.0. When you specify an interface endpoint for a stack, users of the stack can connect to AppStream 2.0 only through that endpoint. When you specify an interface endpoint for an image builder, administrators can connect to the image builder only through that endpoint.", "properties": { "EndpointType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The type of interface endpoint.", + "markdownDescription": "The type of interface endpoint.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "VpceId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The identifier (ID) of the VPC in which the interface endpoint is used.", + "markdownDescription": "The identifier (ID) of the VPC in which the interface endpoint is used.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "EndpointType", "VpceId" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Describes an interface VPC endpoint (interface endpoint) that lets you create a private connection between the virtual private cloud (VPC) that you specify and AppStream 2.0. When you specify an interface endpoint for a stack, users of the stack can connect to AppStream 2.0 only through that endpoint. When you specify an interface endpoint for an image builder, administrators can connect to the image builder only through that endpoint.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "UserSetting": { "type": "object", "additionalProperties": false, + "description": "Specifies an action and whether the action is enabled or disabled for users during their streaming sessions.", "properties": { "Permission": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "Indicates whether the action is enabled or disabled.", + "markdownDescription": "Indicates whether the action is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Action": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The action that is enabled or disabled.", + "markdownDescription": "The action that is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "MaximumLength": { "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "Specifies the number of characters that can be copied by end users from the local device to the remote session, and to the local device from the remote session. This can be specified only for the CLIPBOARD_COPY_FROM_LOCAL_DEVICE and CLIPBOARD_COPY_TO_LOCAL_DEVICE actions. This defaults to 20,971,520 (20 MB) when unspecified and the permission is ENABLED. This can't be specified when the permission is DISABLED. The value can be between 1 and 20,971,520 (20 MB).", + "markdownDescription": "Specifies the number of characters that can be copied by end users from the local device to the remote session, and to the local device from the remote session. This can be specified only for the CLIPBOARD_COPY_FROM_LOCAL_DEVICE and CLIPBOARD_COPY_TO_LOCAL_DEVICE actions. This defaults to 20,971,520 (20 MB) when unspecified and the permission is ENABLED. This can't be specified when the permission is DISABLED. The value can be between 1 and 20,971,520 (20 MB).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "required": [ "Action", "Permission" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies an action and whether the action is enabled or disabled for users during their streaming sessions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "createOnlyProperties": [ "/properties/Name" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/Name" ], "readOnlyProperties": [ - "/properties/Id" + "/properties/StorageConnectors/*/ResourceIdentifier" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "writeOnlyProperties": [ + "/properties/AttributesToDelete", + "/properties/DeleteStorageConnectors" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "appstream:ListTagsForResource", + "appstream:TagResource", + "appstream:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "appstream:CreateStack", + "appstream:TagResource" + ] + }, + "update": { + "permissions": [ + "appstream:UpdateStack", + "appstream:DescribeStacks", + "appstream:ListTagsForResource", + "appstream:TagResource", + "appstream:UntagResource" + ] + }, + "read": { + "permissions": [ + "appstream:DescribeStacks", + "appstream:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "appstream:DeleteStack" + ] + }, + "list": { + "permissions": [ + "appstream:DescribeStacks", + "appstream:ListTagsForResource" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-appsync-graphqlapi.json b/server/schema/resources/aws-appsync-graphqlapi.json index a635ffaf..fde46af4 100644 --- a/server/schema/resources/aws-appsync-graphqlapi.json +++ b/server/schema/resources/aws-appsync-graphqlapi.json @@ -25,7 +25,7 @@ "Arn": { "description": "The Amazon Resource Name (ARN) of the API key", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the API key\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the API key\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:.* \nUpdate requires: No interruption\nRead only property: Yes" }, "AuthenticationType": { "description": "Security configuration for your GraphQL API", @@ -72,7 +72,7 @@ "LambdaAuthorizerConfig": { "description": "A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.", "$ref": "#/definitions/LambdaAuthorizerConfig", - "markdownDescription": "A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.\n\n---\n\nRequired: No \nType: \nUpdate requires: Some interruptions\n" }, "LogConfig": { "description": "The Amazon CloudWatch Logs configuration.", @@ -92,7 +92,7 @@ "OpenIDConnectConfig": { "description": "The OpenID Connect configuration.", "$ref": "#/definitions/OpenIDConnectConfig", - "markdownDescription": "The OpenID Connect configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The OpenID Connect configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: Some interruptions\n" }, "OwnerContact": { "description": "The owner contact information for an API resource.", @@ -131,7 +131,7 @@ "UserPoolConfig": { "description": "Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint.\n\n", "$ref": "#/definitions/UserPoolConfig", - "markdownDescription": "Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint.\n\n\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint.\n\n\n\n---\n\nRequired: No \nType: \nUpdate requires: Some interruptions\n" }, "Visibility": { "description": "Sets the scope of the GraphQL API to public (GLOBAL) or private (PRIVATE). By default, the scope is set to Global if no value is provided.", @@ -170,7 +170,7 @@ "markdownDescription": "The number of milliseconds that a token is valid after it's issued to a user.\n\n\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Some interruptions\n" }, "EnhancedMetricsConfig": { "type": "object", @@ -241,7 +241,7 @@ "markdownDescription": "The number of seconds a response should be cached for.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Some interruptions\n" }, "Tag": { "type": "object", @@ -287,7 +287,7 @@ "markdownDescription": "The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Some interruptions\n" }, "AdditionalAuthenticationProvider": { "type": "object", @@ -325,14 +325,18 @@ "FieldLogLevel": { "description": "The field logging level. Values can be NONE, ERROR, INFO, DEBUG, or ALL.", "type": "string", - "markdownDescription": "The field logging level. Values can be NONE, ERROR, INFO, DEBUG, or ALL.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The field logging level. Values can be NONE, ERROR, INFO, DEBUG, or ALL.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "CloudWatchLogsRoleArn": { "description": "The service role that AWS AppSync will assume to publish to Amazon CloudWatch Logs in your account.", "type": "string", - "markdownDescription": "The service role that AWS AppSync will assume to publish to Amazon CloudWatch Logs in your account.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The service role that AWS AppSync will assume to publish to Amazon CloudWatch Logs in your account.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, + "required": [ + "FieldLogLevel", + "CloudWatchLogsRoleArn" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, @@ -340,12 +344,11 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "appsync:TagResource", - "appsync:UntagResource", - "appsync:ListTagsForResource" + "appsync:UntagResource" ] }, "required": [ @@ -364,11 +367,26 @@ "/properties/RealtimeDns", "/properties/RealtimeUrl" ], + "conditionalCreateOnlyProperties": [ + "/properties/LambdaAuthorizerConfig/AuthorizerResultTtlInSeconds", + "/properties/LambdaAuthorizerConfig/AuthorizerUri", + "/properties/LambdaAuthorizerConfig/IdentityValidationExpression", + "/properties/UserPoolConfig/AppIdClientRegex", + "/properties/UserPoolConfig/AwsRegion", + "/properties/UserPoolConfig/DefaultAction", + "/properties/UserPoolConfig/UserPoolId", + "/properties/OpenIDConnectConfig/AuthTTL", + "/properties/OpenIDConnectConfig/IatTTL", + "/properties/OpenIDConnectConfig/Issuer", + "/properties/OpenIDConnectConfig/ClientId" + ], "handlers": { "create": { "permissions": [ "appsync:CreateGraphqlApi", - "appsync:TagResource" + "appsync:TagResource", + "iam:PassRole", + "appsync:PutGraphqlApiEnvironmentVariables" ] }, "read": { @@ -383,7 +401,10 @@ "appsync:GetGraphqlApi", "appsync:UpdateGraphqlApi", "appsync:TagResource", - "appsync:UntagResource" + "appsync:UntagResource", + "iam:PassRole", + "appsync:GetGraphqlApiEnvironmentVariables", + "appsync:PutGraphqlApiEnvironmentVariables" ] }, "delete": { @@ -406,7 +427,7 @@ "Arn": { "description": "The Amazon Resource Name (ARN) of the API key", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the API key\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the API key\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:.* \nUpdate requires: No interruption\nRead only property: Yes" }, "GraphQLDns": { "description": "The fully qualified domain name (FQDN) of the endpoint URL of your GraphQL API.", diff --git a/server/schema/resources/aws-aps-anomalydetector.json b/server/schema/resources/aws-aps-anomalydetector.json new file mode 100644 index 00000000..15af67ed --- /dev/null +++ b/server/schema/resources/aws-aps-anomalydetector.json @@ -0,0 +1,292 @@ +{ + "typeName": "AWS::APS::AnomalyDetector", + "description": "AnomalyDetector schema for cloudformation.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-aps", + "definitions": { + "Tag": { + "description": "A key-value pair to associate a tag level security for the resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate a tag level security for the resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Label": { + "description": "A key-value pair to provide meta-data and multi-dimensional data analysis for filtering and aggregation.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to provide meta-data and multi-dimensional data analysis for filtering and aggregation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MissingDataAction": { + "properties": { + "MarkAsAnomaly": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Skip": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "MarkAsAnomaly" + ] + }, + { + "required": [ + "Skip" + ] + } + ] + }, + "IgnoreNearExpected": { + "properties": { + "Amount": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Number \nUpdate requires: No interruption\n" + }, + "Ratio": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Number \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Amount" + ] + }, + { + "required": [ + "Ratio" + ] + } + ] + }, + "RandomCutForestConfiguration": { + "type": "object", + "properties": { + "Query": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "ShingleSize": { + "type": "integer", + "minimum": 2, + "maximum": 1024, + "default": 8, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "SampleSize": { + "type": "integer", + "minimum": 256, + "maximum": 1024, + "default": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "IgnoreNearExpectedFromAbove": { + "$ref": "#/definitions/IgnoreNearExpected" + }, + "IgnoreNearExpectedFromBelow": { + "$ref": "#/definitions/IgnoreNearExpected" + } + }, + "required": [ + "Query" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AnomalyDetectorConfiguration": { + "type": "object", + "properties": { + "RandomCutForest": { + "$ref": "#/definitions/RandomCutForestConfiguration" + } + }, + "required": [ + "RandomCutForest" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Workspace": { + "description": "Required to identify a specific APS Workspace associated with this Anomaly Detector.", + "type": "string", + "markdownDescription": "Required to identify a specific APS Workspace associated with this Anomaly Detector.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:workspace/[a-zA-Z0-9-]+$ \nUpdate requires: Replacement\n" + }, + "Alias": { + "description": "The AnomalyDetector alias.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The AnomalyDetector alias.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: Replacement\n" + }, + "EvaluationIntervalInSeconds": { + "description": "The AnomalyDetector period of detection and metric generation.", + "type": "integer", + "default": 60, + "markdownDescription": "The AnomalyDetector period of detection and metric generation.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "The AnomalyDetector ARN.", + "type": "string", + "markdownDescription": "The AnomalyDetector ARN.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:anomalydetector/[a-zA-Z0-9-]+/[0-9A-Za-z][-.0-9A-Z_a-z]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Labels": { + "description": "An array of key-value pairs to provide meta-data.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Label" + }, + "markdownDescription": "An array of key-value pairs to provide meta-data.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MissingDataAction": { + "description": "The action to perform when running the expression returns no data.", + "$ref": "#/definitions/MissingDataAction", + "markdownDescription": "The action to perform when running the expression returns no data.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Configuration": { + "description": "Determines the anomaly detector's algorithm and its configuration.", + "$ref": "#/definitions/AnomalyDetectorConfiguration", + "markdownDescription": "Determines the anomaly detector's algorithm and its configuration.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Workspace", + "Configuration", + "Alias" + ], + "createOnlyProperties": [ + "/properties/Alias", + "/properties/Workspace" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aps:TagResource", + "aps:UntagResource" + ] + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "aps:CreateAnomalyDetector", + "aps:DescribeAnomalyDetector", + "aps:TagResource" + ] + }, + "read": { + "permissions": [ + "aps:DescribeAnomalyDetector", + "aps:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "aps:PutAnomalyDetector", + "aps:DescribeAnomalyDetector", + "aps:TagResource", + "aps:UntagResource", + "aps:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "aps:DeleteAnomalyDetector", + "aps:DescribeAnomalyDetector" + ] + }, + "list": { + "permissions": [ + "aps:ListAnomalyDetectors", + "aps:ListTagsForResource" + ], + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Workspace" + } + }, + "required": [ + "Arn" + ] + } + } + }, + "attributes": { + "Arn": { + "description": "The AnomalyDetector ARN.", + "type": "string", + "markdownDescription": "The AnomalyDetector ARN.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:anomalydetector/[a-zA-Z0-9-]+/[0-9A-Za-z][-.0-9A-Z_a-z]*$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-aps-scraper.json b/server/schema/resources/aws-aps-scraper.json index af120103..7916e70a 100644 --- a/server/schema/resources/aws-aps-scraper.json +++ b/server/schema/resources/aws-aps-scraper.json @@ -105,6 +105,36 @@ ], "additionalProperties": false, "markdownDescription": "Configuration for EKS metrics source\n\n---\n\nRequired: Conditional \nUpdate requires: No interruption\n" + }, + "VpcConfiguration": { + "description": "Configuration for VPC metrics source", + "type": "object", + "properties": { + "SecurityGroupIds": { + "description": "List of security group IDs", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "List of security group IDs\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "description": "List of subnet IDs", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "List of subnet IDs\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for VPC metrics source\n\n---\n\nRequired: Conditional \nUpdate requires: No interruption\n" } }, "oneOf": [ @@ -112,6 +142,11 @@ "required": [ "EksConfiguration" ] + }, + { + "required": [ + "VpcConfiguration" + ] } ], "additionalProperties": false, @@ -347,19 +382,33 @@ "eks:DescribeCluster", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", + "ec2:DescribeNetworkInterfaces", + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:AttachNetworkInterface", + "ec2:DetachNetworkInterface", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:DescribeVpcs", + "kafka:DescribeCluster", + "kafka:DescribeClusterV2", + "kafka:GetBootstrapBrokers", + "kafka:ListClusters", + "kafka:ListNodes", "iam:CreateServiceLinkedRole", "iam:PassRole", "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:ListLogDeliveries", - "logs:PutResourcePolicy" + "logs:PutResourcePolicy", + "logs:DescribeLogGroups" ] }, "read": { "permissions": [ "aps:DescribeScraper", "aps:DescribeScraperLoggingConfiguration", - "aps:ListTagsForResource" + "aps:ListTagsForResource", + "ec2:DescribeNetworkInterfaces" ] }, "update": { @@ -374,11 +423,21 @@ "aps:TagResource", "aps:UntagResource", "aps:ListTagsForResource", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:DescribeNetworkInterfaces", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:DescribeVpcs", + "kafka:DescribeCluster", + "kafka:DescribeClusterV2", + "kafka:GetBootstrapBrokers", "iam:PassRole", "logs:CreateLogDelivery", "logs:GetLogDelivery", + "logs:UpdateLogDelivery", "logs:ListLogDeliveries", - "logs:PutResourcePolicy" + "logs:PutResourcePolicy", + "logs:DescribeLogGroups" ] }, "delete": { @@ -391,6 +450,11 @@ "eks:DescribeCluster", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DetachNetworkInterface", + "ec2:DescribeVpcs", + "kafka:DescribeCluster", "iam:DeleteServiceLinkedRole", "logs:DeleteLogDelivery" ] diff --git a/server/schema/resources/aws-arcregionswitch-plan.json b/server/schema/resources/aws-arcregionswitch-plan.json index 1d628458..67cb921d 100644 --- a/server/schema/resources/aws-arcregionswitch-plan.json +++ b/server/schema/resources/aws-arcregionswitch-plan.json @@ -76,7 +76,7 @@ }, "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:autoscaling:[a-z0-9-]+:\\d{12}:autoScalingGroup:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:autoScalingGroupName/[\\S\\s]{1,255}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:autoscaling:[a-z0-9-]+:\\d{12}:autoScalingGroup:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:autoScalingGroupName/[\\S\\s]{1,255}$ \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -155,6 +155,82 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DocumentDbConfiguration": { + "type": "object", + "properties": { + "TimeoutMinutes": { + "type": "number", + "default": 60, + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "CrossAccountRole": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z0-9-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + }, + "ExternalId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Behavior": { + "allOf": [ + { + "$ref": "#/definitions/DocumentDbDefaultBehavior" + }, + { + "default": "switchoverOnly" + } + ] + }, + "Ungraceful": { + "$ref": "#/definitions/DocumentDbUngraceful" + }, + "GlobalClusterIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z][0-9A-Za-z-:._]*$ \nUpdate requires: No interruption\n" + }, + "DatabaseClusterArns": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:cluster:[a-zA-Z0-9][a-zA-Z0-9-_]{0,99}$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Behavior", + "DatabaseClusterArns", + "GlobalClusterIdentifier" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DocumentDbDefaultBehavior": { + "type": "string", + "enum": [ + "switchoverOnly", + "failover" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: switchoverOnly | failover \nUpdate requires: No interruption\n" + }, + "DocumentDbUngraceful": { + "type": "object", + "properties": { + "Ungraceful": { + "$ref": "#/definitions/DocumentDbUngracefulBehavior" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DocumentDbUngracefulBehavior": { + "type": "string", + "enum": [ + "failover" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: failover \nUpdate requires: No interruption\n" + }, "Ec2AsgCapacityIncreaseConfiguration": { "type": "object", "properties": { @@ -539,6 +615,45 @@ "Route53HealthCheckConfig" ], "additionalProperties": false + }, + { + "type": "object", + "title": "DocumentDbConfig", + "properties": { + "DocumentDbConfig": { + "$ref": "#/definitions/DocumentDbConfiguration" + } + }, + "required": [ + "DocumentDbConfig" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "RdsPromoteReadReplicaConfig", + "properties": { + "RdsPromoteReadReplicaConfig": { + "$ref": "#/definitions/RdsPromoteReadReplicaConfiguration" + } + }, + "required": [ + "RdsPromoteReadReplicaConfig" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "RdsCreateCrossRegionReadReplicaConfig", + "properties": { + "RdsCreateCrossRegionReadReplicaConfig": { + "$ref": "#/definitions/RdsCreateCrossRegionReplicaConfiguration" + } + }, + "required": [ + "RdsCreateCrossRegionReadReplicaConfig" + ], + "additionalProperties": false } ] }, @@ -554,9 +669,12 @@ "Parallel", "ECSServiceScaling", "EKSResourceScaling", - "Route53HealthCheck" + "Route53HealthCheck", + "DocumentDb", + "RdsPromoteReadReplica", + "RdsCreateCrossRegionReplica" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CustomActionLambda | ManualApproval | AuroraGlobalDatabase | EC2AutoScaling | ARCRoutingControl | ARCRegionSwitchPlan | Parallel | ECSServiceScaling | EKSResourceScaling | Route53HealthCheck \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CustomActionLambda | ManualApproval | AuroraGlobalDatabase | EC2AutoScaling | ARCRoutingControl | ARCRegionSwitchPlan | Parallel | ECSServiceScaling | EKSResourceScaling | Route53HealthCheck | DocumentDb | RdsPromoteReadReplica | RdsCreateCrossRegionReplica \nUpdate requires: No interruption\n" }, "GlobalAuroraConfiguration": { "type": "object", @@ -746,6 +864,71 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "RdsCreateCrossRegionReplicaConfiguration": { + "type": "object", + "properties": { + "TimeoutMinutes": { + "type": "number", + "default": 60, + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "CrossAccountRole": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z0-9-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + }, + "ExternalId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DbInstanceArnMap": { + "$ref": "#/definitions/RdsDbInstanceArnMap" + } + }, + "required": [ + "DbInstanceArnMap" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RdsDbInstanceArnMap": { + "type": "object", + "patternProperties": { + "^[a-z]{2}-[a-z-]+-\\d+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:db:[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RdsPromoteReadReplicaConfiguration": { + "type": "object", + "properties": { + "TimeoutMinutes": { + "type": "number", + "default": 60, + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "CrossAccountRole": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z0-9-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + }, + "ExternalId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DbInstanceArnMap": { + "$ref": "#/definitions/RdsDbInstanceArnMap" + } + }, + "required": [ + "DbInstanceArnMap" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RecoveryApproach": { "type": "string", "enum": [ @@ -794,9 +977,11 @@ "type": "string", "enum": [ "activatingRegion", - "deactivatingRegion" + "deactivatingRegion", + "activeRegion", + "inactiveRegion" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: activatingRegion | deactivatingRegion \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: activatingRegion | deactivatingRegion | activeRegion | inactiveRegion \nUpdate requires: No interruption\n" }, "RegionalScalingResource": { "type": "object", @@ -808,6 +993,39 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ReportConfiguration": { + "type": "object", + "properties": { + "ReportOutput": { + "type": "array", + "items": { + "$ref": "#/definitions/ReportOutputConfiguration" + }, + "maxItems": 1, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ReportOutputConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "S3Configuration", + "properties": { + "S3Configuration": { + "$ref": "#/definitions/S3ReportOutputConfiguration" + } + }, + "required": [ + "S3Configuration" + ], + "additionalProperties": false + } + ] + }, "Route53HealthCheckConfiguration": { "type": "object", "properties": { @@ -877,6 +1095,23 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: On | Off \nUpdate requires: No interruption\n" }, + "S3ReportOutputConfiguration": { + "type": "object", + "properties": { + "BucketPath": { + "type": "string", + "maxLength": 512, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 512 \nPattern: ^(?:s3://)?[a-z0-9][a-z0-9-]{1,61}[a-z0-9](?:/[^/ ][^/]*)*/?$ \nUpdate requires: No interruption\n" + }, + "BucketOwner": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^\\d{12}$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Service": { "type": "object", "properties": { @@ -890,11 +1125,11 @@ }, "ClusterArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:ecs:[a-z0-9-]+:\\d{12}:cluster/[a-zA-Z0-9_-]{1,255}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:ecs:[a-z0-9-]+:\\d{12}:cluster/[a-zA-Z0-9_-]{1,255}$ \nUpdate requires: No interruption\n" }, "ServiceArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:ecs:[a-z0-9-]+:\\d{12}:service/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]{1,255}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:ecs:[a-z0-9-]+:\\d{12}:service/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]{1,255}$ \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -1028,9 +1263,10 @@ "type": "string", "enum": [ "activate", - "deactivate" + "deactivate", + "postRecovery" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: activate | deactivate \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: activate | deactivate | postRecovery \nUpdate requires: No interruption\n" }, "HealthCheckState": { "type": "object", @@ -1138,6 +1374,9 @@ "minItems": 2, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" }, + "ReportConfiguration": { + "$ref": "#/definitions/ReportConfiguration" + }, "Tags": { "$ref": "#/definitions/Tags" }, @@ -1187,6 +1426,14 @@ }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PlanHealthChecks": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ @@ -1201,7 +1448,8 @@ "/properties/Owner", "/properties/Version", "/properties/HealthChecksForPlan", - "/properties/Route53HealthChecks" + "/properties/Route53HealthChecks", + "/properties/PlanHealthChecks" ], "createOnlyProperties": [ "/properties/Name", @@ -1210,7 +1458,8 @@ "/properties/Regions" ], "deprecatedProperties": [ - "/properties/HealthChecksForPlan" + "/properties/HealthChecksForPlan", + "/properties/Route53HealthChecks" ], "primaryIdentifier": [ "/properties/Arn" @@ -1310,6 +1559,14 @@ }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PlanHealthChecks": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-athena-namedquery.json b/server/schema/resources/aws-athena-namedquery.json index fc371ea4..757c0be5 100644 --- a/server/schema/resources/aws-athena-namedquery.json +++ b/server/schema/resources/aws-athena-namedquery.json @@ -84,7 +84,9 @@ "/properties/NamedQueryId" ], "additionalProperties": false, - "taggable": false, + "tagging": { + "taggable": false + }, "attributes": { "NamedQueryId": { "description": "The unique ID of the query.", diff --git a/server/schema/resources/aws-athena-preparedstatement.json b/server/schema/resources/aws-athena-preparedstatement.json index 90c5388e..c40eca3a 100644 --- a/server/schema/resources/aws-athena-preparedstatement.json +++ b/server/schema/resources/aws-athena-preparedstatement.json @@ -85,6 +85,8 @@ "/properties/WorkGroup" ], "additionalProperties": false, - "taggable": false, + "tagging": { + "taggable": false + }, "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-athena-workgroup.json b/server/schema/resources/aws-athena-workgroup.json index 3b7c807c..e1926c23 100644 --- a/server/schema/resources/aws-athena-workgroup.json +++ b/server/schema/resources/aws-athena-workgroup.json @@ -144,9 +144,9 @@ "markdownDescription": "Additional Configuration that are passed to Athena Spark Calculations running in this workgroup\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ExecutionRole": { - "description": "Execution Role ARN required to run Athena Spark Calculations", + "description": "The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.", "type": "string", - "markdownDescription": "Execution Role ARN required to run Athena Spark Calculations\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "RemoveOutputLocation": { "type": "boolean", @@ -272,6 +272,183 @@ "additionalProperties": false, "markdownDescription": "The configuration for the managed query results and encryption option. ResultConfiguration and ManagedQueryResultsConfiguration cannot be set at the same time\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "Classification": { + "description": "A classification refers to a set of specific configurations.", + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "The name of the configuration classification.", + "markdownDescription": "The name of the configuration classification.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Properties": { + "type": "object", + "description": "A set of properties specified within a configuration classification.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A set of properties specified within a configuration classification.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A classification refers to a set of specific configurations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EngineConfiguration": { + "description": "The engine configuration for running queries.", + "type": "object", + "properties": { + "CoordinatorDpuSize": { + "type": "integer", + "description": "The number of DPUs to use for the coordinator. A coordinator is a special executor that orchestrates processing work and manages other executors in a notebook session. The default is 1.", + "markdownDescription": "The number of DPUs to use for the coordinator. A coordinator is a special executor that orchestrates processing work and manages other executors in a notebook session. The default is 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxConcurrentDpus": { + "type": "integer", + "description": "The maximum number of DPUs that can run concurrently.", + "markdownDescription": "The maximum number of DPUs that can run concurrently.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DefaultExecutorDpuSize": { + "type": "integer", + "description": "The default number of DPUs to use for executors. An executor is the smallest unit of compute that a notebook session can request from Athena. The default is 1.", + "markdownDescription": "The default number of DPUs to use for executors. An executor is the smallest unit of compute that a notebook session can request from Athena. The default is 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AdditionalConfigs": { + "type": "object", + "description": "Contains additional notebook engine MAP parameter mappings in the form of key-value pairs. To specify an Athena notebook that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookId to AdditionalConfigs that has the value of the Athena notebook ID.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Contains additional notebook engine MAP parameter mappings in the form of key-value pairs. To specify an Athena notebook that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookId to AdditionalConfigs that has the value of the Athena notebook ID.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SparkProperties": { + "type": "object", + "description": "Specifies custom jar files and Spark properties for use cases like cluster encryption, table formats, and general Spark tuning.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Specifies custom jar files and Spark properties for use cases like cluster encryption, table formats, and general Spark tuning.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Classifications": { + "type": "array", + "description": "The configuration classifications that can be specified for the engine.", + "items": { + "$ref": "#/definitions/Classification" + }, + "markdownDescription": "The configuration classifications that can be specified for the engine.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The engine configuration for running queries.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudWatchLoggingConfiguration": { + "description": "Configuration settings for delivering logs to Amazon CloudWatch log groups.", + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Enables CloudWatch logging.", + "markdownDescription": "Enables CloudWatch logging.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "LogGroup": { + "type": "string", + "description": "The name of the log group in Amazon CloudWatch Logs where you want to publish your logs.", + "markdownDescription": "The name of the log group in Amazon CloudWatch Logs where you want to publish your logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LogStreamNamePrefix": { + "type": "string", + "description": "Prefix for the CloudWatch log stream name.", + "markdownDescription": "Prefix for the CloudWatch log stream name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LogTypes": { + "type": "object", + "description": "The types of logs that you want to publish to CloudWatch.", + "patternProperties": { + "^.+$": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The types of logs that you want to publish to CloudWatch.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration settings for delivering logs to Amazon CloudWatch log groups.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ManagedLoggingConfiguration": { + "description": "Configuration settings for managed log persistence.", + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Enables managed log persistence.", + "markdownDescription": "Enables managed log persistence.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "KmsKey": { + "type": "string", + "description": "The KMS key ARN to encrypt the logs stored in managed log persistence.", + "markdownDescription": "The KMS key ARN to encrypt the logs stored in managed log persistence.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration settings for managed log persistence.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3LoggingConfiguration": { + "description": "Configuration settings for delivering logs to Amazon S3 buckets.", + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Enables S3 log delivery.", + "markdownDescription": "Enables S3 log delivery.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "LogLocation": { + "type": "string", + "description": "The Amazon S3 destination URI for log publishing.", + "markdownDescription": "The Amazon S3 destination URI for log publishing.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "KmsKey": { + "type": "string", + "description": "The KMS key ARN to encrypt the logs published to the given Amazon S3 destination.", + "markdownDescription": "The KMS key ARN to encrypt the logs published to the given Amazon S3 destination.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration settings for delivering logs to Amazon S3 buckets.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MonitoringConfiguration": { + "description": "Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.", + "type": "object", + "properties": { + "CloudWatchLoggingConfiguration": { + "$ref": "#/definitions/CloudWatchLoggingConfiguration" + }, + "ManagedLoggingConfiguration": { + "$ref": "#/definitions/ManagedLoggingConfiguration" + }, + "S3LoggingConfiguration": { + "$ref": "#/definitions/S3LoggingConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "WorkGroupConfiguration": { "type": "object", "properties": { @@ -304,6 +481,12 @@ }, "ManagedQueryResultsConfiguration": { "$ref": "#/definitions/ManagedQueryResultsConfiguration" + }, + "EngineConfiguration": { + "$ref": "#/definitions/EngineConfiguration" + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" } }, "additionalProperties": false, @@ -348,6 +531,12 @@ }, "ManagedQueryResultsConfiguration": { "$ref": "#/definitions/ManagedQueryResultsConfiguration" + }, + "EngineConfiguration": { + "$ref": "#/definitions/EngineConfiguration" + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-autoscaling-autoscalinggroup.json b/server/schema/resources/aws-autoscaling-autoscalinggroup.json index eaaea43b..a778f08a 100644 --- a/server/schema/resources/aws-autoscaling-autoscalinggroup.json +++ b/server/schema/resources/aws-autoscaling-autoscalinggroup.json @@ -89,6 +89,9 @@ "autoscaling:DetachTrafficSources", "autoscaling:DeleteLifecycleHook", "autoscaling:PutLifecycleHook", + "autoscaling:StartInstanceRefresh", + "autoscaling:DescribeInstanceRefreshes", + "autoscaling:CancelInstanceRefresh", "cloudwatch:PutMetricAlarm", "ec2:Describe*", "ec2:Get*", @@ -221,6 +224,19 @@ }, "markdownDescription": "``MemoryGiBPerVCpuRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum amount of memory per vCPU for an instance type, in GiB.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "InstanceLifecyclePolicy": { + "description": "The instance lifecycle policy for the Auto Scaling group. This policy controls instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when instances should move to a ``Retained`` state instead of automatic termination. \n For more information, see [Control instance retention with instance lifecycle policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/instance-lifecycle-policy.html) in the *Amazon EC2 Auto Scaling User Guide*.", + "additionalProperties": false, + "type": "object", + "properties": { + "RetentionTriggers": { + "description": "Specifies the conditions that trigger instance retention behavior. These triggers determine when instances should move to a ``Retained`` state instead of automatic termination. This allows you to maintain control over instance management when lifecycles transition and operations fail.", + "$ref": "#/definitions/RetentionTriggers", + "markdownDescription": "Specifies the conditions that trigger instance retention behavior. These triggers determine when instances should move to a ``Retained`` state instead of automatic termination. This allows you to maintain control over instance management when lifecycles transition and operations fail.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The instance lifecycle policy for the Auto Scaling group. This policy controls instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when instances should move to a ``Retained`` state instead of automatic termination. \n For more information, see [Control instance retention with instance lifecycle policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/instance-lifecycle-policy.html) in the *Amazon EC2 Auto Scaling User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TotalLocalStorageGBRequest": { "description": "``TotalLocalStorageGBRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum total local storage size for an instance type, in GB.", "additionalProperties": false, @@ -365,6 +381,11 @@ "type": "string", "markdownDescription": "If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a ``WeightedCapacity`` of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see [Configure instance weighting for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html) in the *Amazon EC2 Auto Scaling User Guide*. Value must be in the range of 1-999. \n If you specify a value for ``WeightedCapacity`` for one instance type, you must specify a value for ``WeightedCapacity`` for all of them.\n Every Auto Scaling group has three size parameters (``DesiredCapacity``, ``MaxSize``, and ``MinSize``). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "ImageId": { + "description": "The ID of the Amazon Machine Image (AMI) to use for instances launched with this override. When using Instance Refresh with ``ReplaceRootVolume`` strategy, this specifies the AMI for root volume replacement operations. \n For ``ReplaceRootVolume`` operations: \n + All overrides in the ``MixedInstancesPolicy`` must specify an ImageId\n + The AMI must contain only a single root volume\n + Root volume replacement doesn't support multi-volume AMIs", + "type": "string", + "markdownDescription": "The ID of the Amazon Machine Image (AMI) to use for instances launched with this override. When using Instance Refresh with ``ReplaceRootVolume`` strategy, this specifies the AMI for root volume replacement operations. \n For ``ReplaceRootVolume`` operations: \n + All overrides in the ``MixedInstancesPolicy`` must specify an ImageId\n + The AMI must contain only a single root volume\n + Root volume replacement doesn't support multi-volume AMIs\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "InstanceRequirements": { "description": "The instance requirements. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.\n You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template. \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.", "$ref": "#/definitions/InstanceRequirements", @@ -686,6 +707,19 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "RetentionTriggers": { + "description": "Defines the specific triggers that cause instances to be retained in a Retained state rather than terminated. Each trigger corresponds to a different failure scenario during the instance lifecycle. This allows fine-grained control over when to preserve instances for manual intervention.", + "additionalProperties": false, + "type": "object", + "properties": { + "TerminateHookAbandon": { + "description": "Specifies the action when a termination lifecycle hook is abandoned due to failure, timeout, or explicit abandonment (calling CompleteLifecycleAction). \n Set to ``retain`` to move instances to a retained state. Set to ``terminate`` for default termination behavior. \n Retained instances don't count toward desired capacity and remain until you call ``TerminateInstanceInAutoScalingGroup``.", + "type": "string", + "markdownDescription": "Specifies the action when a termination lifecycle hook is abandoned due to failure, timeout, or explicit abandonment (calling CompleteLifecycleAction). \n Set to ``retain`` to move instances to a retained state. Set to ``terminate`` for default termination behavior. \n Retained instances don't count toward desired capacity and remain until you call ``TerminateInstanceInAutoScalingGroup``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Defines the specific triggers that cause instances to be retained in a Retained state rather than terminated. Each trigger corresponds to a different failure scenario during the instance lifecycle. This allows fine-grained control over when to preserve instances for manual intervention.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "AcceleratorTotalMemoryMiBRequest": { "description": "``AcceleratorTotalMemoryMiBRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum total memory size for the accelerators for an instance type, in MiB.", "additionalProperties": false, @@ -984,9 +1018,9 @@ "markdownDescription": "The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AvailabilityZoneImpairmentPolicy": { - "description": "The Availability Zone impairment policy.", + "description": "The Availability Zone impairment policy for the Auto Scaling group.", "$ref": "#/definitions/AvailabilityZoneImpairmentPolicy", - "markdownDescription": "The Availability Zone impairment policy.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The Availability Zone impairment policy for the Auto Scaling group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "TargetGroupARNs": { "uniqueItems": false, @@ -999,6 +1033,17 @@ }, "markdownDescription": "The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "AvailabilityZoneIds": { + "uniqueItems": true, + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Cooldown": { "description": "*Only needed if you use simple scaling policies.* \n The amount of time, in seconds, between one scaling activity ending and another one starting due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) in the *Amazon EC2 Auto Scaling User Guide*.\n Default: ``300`` seconds", "type": "string", @@ -1024,6 +1069,11 @@ "type": "integer", "markdownDescription": "The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the ``InService`` state. For more information, see [Set the health check grace period for an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-check-grace-period.html) in the *Amazon EC2 Auto Scaling User Guide*.\n Default: ``0`` seconds\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "InstanceLifecyclePolicy": { + "description": "The instance lifecycle policy for the Auto Scaling group.", + "$ref": "#/definitions/InstanceLifecyclePolicy", + "markdownDescription": "The instance lifecycle policy for the Auto Scaling group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "DefaultInstanceWarmup": { "description": "The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the ``InService`` state. \n During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see [Set the default instance warmup for an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html) in the *Amazon EC2 Auto Scaling User Guide*.\n To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, *even if it is set to 0 seconds*. To remove a value that you previously set, include the property but specify ``-1`` for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of ``0`` or other nominal value.\n Default: None", "type": "integer", @@ -1106,9 +1156,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "AvailabilityZoneDistribution": { - "description": "The instance capacity distribution across Availability Zones.", + "description": "The EC2 instance capacity distribution across Availability Zones for the Auto Scaling group.", "$ref": "#/definitions/AvailabilityZoneDistribution", - "markdownDescription": "The instance capacity distribution across Availability Zones.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The EC2 instance capacity distribution across Availability Zones for the Auto Scaling group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "MetricsCollection": { "uniqueItems": false, @@ -1120,6 +1170,11 @@ }, "markdownDescription": "Enables the monitoring of group metrics of an Auto Scaling group. By default, these metrics are disabled.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "DeletionProtection": { + "description": "The deletion protection setting for the Auto Scaling group.", + "type": "string", + "markdownDescription": "The deletion protection setting for the Auto Scaling group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "InstanceMaintenancePolicy": { "description": "An instance maintenance policy. For more information, see [Set instance maintenance policy](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html) in the *Amazon EC2 Auto Scaling User Guide*.", "$ref": "#/definitions/InstanceMaintenancePolicy", @@ -1172,9 +1227,9 @@ "markdownDescription": "The name of the placement group into which to launch your instances. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide*.\n A *cluster* placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "CapacityReservationSpecification": { - "description": "The capacity reservation specification.", + "description": "The capacity reservation specification for the Auto Scaling group.", "$ref": "#/definitions/CapacityReservationSpecification", - "markdownDescription": "The capacity reservation specification.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The capacity reservation specification for the Auto Scaling group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "HealthCheckType": { "description": "A comma-separated value string of one or more health check types.\n The valid values are ``EC2``, ``EBS``, ``ELB``, and ``VPC_LATTICE``. ``EC2`` is the default health check and cannot be disabled. For more information, see [Health checks for instances in an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) in the *Amazon EC2 Auto Scaling User Guide*.\n Only specify ``EC2`` if you must clear a value that was previously set.", diff --git a/server/schema/resources/aws-backup-backupplan.json b/server/schema/resources/aws-backup-backupplan.json index c92301d6..0d1e64b4 100644 --- a/server/schema/resources/aws-backup-backupplan.json +++ b/server/schema/resources/aws-backup-backupplan.json @@ -80,6 +80,15 @@ "$ref": "#/definitions/BackupRuleResourceType" }, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ScanSettings": { + "type": "array", + "insertionOrder": true, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ScanSettingResourceType" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ @@ -100,6 +109,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, + "TargetLogicallyAirGappedBackupVaultArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "StartWindowMinutes": { "type": "number", "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" @@ -125,6 +138,15 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "ScanActions": { + "type": "array", + "insertionOrder": true, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ScanActionResourceType" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "RecoveryPointTags": { "type": "object", "additionalProperties": false, @@ -205,6 +227,51 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ScanSettingResourceType": { + "type": "object", + "additionalProperties": false, + "properties": { + "MalwareScanner": { + "$ref": "#/definitions/MalwareScanner" + }, + "ResourceTypes": { + "$ref": "#/definitions/ResourceTypes" + }, + "ScannerRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ScanActionResourceType": { + "type": "object", + "additionalProperties": false, + "properties": { + "MalwareScanner": { + "$ref": "#/definitions/MalwareScanner" + }, + "ScanMode": { + "$ref": "#/definitions/ScanMode" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ScanMode": { + "type": "string", + "enum": [ + "FULL_SCAN", + "INCREMENTAL_SCAN" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: FULL_SCAN | INCREMENTAL_SCAN \nUpdate requires: No interruption\n" + }, + "MalwareScanner": { + "type": "string", + "enum": [ + "GUARDDUTY" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GUARDDUTY \nUpdate requires: No interruption\n" + }, "ResourceTypes": { "type": "array", "insertionOrder": true, @@ -249,7 +316,8 @@ "permissions": [ "backup:GetBackupPlan", "backup:TagResource", - "backup:CreateBackupPlan" + "backup:CreateBackupPlan", + "iam:PassRole" ] }, "delete": { @@ -263,7 +331,8 @@ "backup:UpdateBackupPlan", "backup:ListTags", "backup:TagResource", - "backup:UntagResource" + "backup:UntagResource", + "iam:PassRole" ] }, "list": { diff --git a/server/schema/resources/aws-backup-logicallyairgappedbackupvault.json b/server/schema/resources/aws-backup-logicallyairgappedbackupvault.json index 10695fd8..53c26c40 100644 --- a/server/schema/resources/aws-backup-logicallyairgappedbackupvault.json +++ b/server/schema/resources/aws-backup-logicallyairgappedbackupvault.json @@ -1,98 +1,25 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "permissions": [ - "backup:TagResource", - "backup:UntagResource", - "backup:ListTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/BackupVaultTags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "backup:DescribeBackupVault", - "backup:GetBackupVaultNotifications", - "backup:GetBackupVaultAccessPolicy", - "backup:ListTags" - ] - }, - "create": { - "permissions": [ - "backup:TagResource", - "backup:CreateLogicallyAirGappedBackupVault", - "backup:PutBackupVaultAccessPolicy", - "backup:PutBackupVaultNotifications", - "backup-storage:Mount", - "backup-storage:MountCapsule", - "backup:DescribeBackupVault" - ] - }, - "update": { - "permissions": [ - "backup:DescribeBackupVault", - "backup:DeleteBackupVaultAccessPolicy", - "backup:DeleteBackupVaultNotifications", - "backup:DeleteBackupVaultLockConfiguration", - "backup:GetBackupVaultAccessPolicy", - "backup:ListTags", - "backup:TagResource", - "backup:UntagResource", - "backup:PutBackupVaultAccessPolicy", - "backup:PutBackupVaultNotifications", - "backup:PutBackupVaultLockConfiguration" - ] - }, - "list": { - "permissions": [ - "backup:ListBackupVaults" - ] - }, - "delete": { - "permissions": [ - "backup:DeleteBackupVault" - ] - } - }, "typeName": "AWS::Backup::LogicallyAirGappedBackupVault", - "readOnlyProperties": [ - "/properties/BackupVaultArn", - "/properties/EncryptionKeyArn", - "/properties/VaultState", - "/properties/VaultType" - ], "description": "Resource Type definition for AWS::Backup::LogicallyAirGappedBackupVault", - "createOnlyProperties": [ - "/properties/BackupVaultName", - "/properties/MinRetentionDays", - "/properties/MaxRetentionDays" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/BackupVaultName" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "NotificationObjectType": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "SNSTopicArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, "BackupVaultEvents": { - "uniqueItems": false, - "insertionOrder": false, "type": "array", + "insertionOrder": false, + "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "SNSTopicArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -106,75 +33,154 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9\\-\\_]{2,50}$ \nUpdate requires: No interruption\n" } }, - "required": [ - "BackupVaultName", - "MinRetentionDays", - "MaxRetentionDays" - ], "properties": { - "VaultState": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "AccessPolicy": { + "type": [ + "object", + "string" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" + }, + "BackupVaultName": { + "$ref": "#/definitions/BackupVaultNamePattern" + }, + "MinRetentionDays": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + }, + "MaxRetentionDays": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" }, "BackupVaultTags": { + "type": "object", + "additionalProperties": false, "patternProperties": { "^.{1,128}$": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, - "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "VaultType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "Notifications": { + "$ref": "#/definitions/NotificationObjectType" }, - "BackupVaultName": { - "$ref": "#/definitions/BackupVaultNamePattern" + "EncryptionKeyArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "BackupVaultArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "EncryptionKeyArn": { + "VaultState": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "MaxRetentionDays": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + "VaultType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "MinRetentionDays": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + "MpaApprovalTeamArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/BackupVaultTags", + "permissions": [ + "backup:TagResource", + "backup:UntagResource", + "backup:ListTags" + ] + }, + "required": [ + "BackupVaultName", + "MinRetentionDays", + "MaxRetentionDays" + ], + "createOnlyProperties": [ + "/properties/BackupVaultName", + "/properties/MinRetentionDays", + "/properties/MaxRetentionDays", + "/properties/EncryptionKeyArn" + ], + "readOnlyProperties": [ + "/properties/BackupVaultArn", + "/properties/VaultState", + "/properties/VaultType" + ], + "primaryIdentifier": [ + "/properties/BackupVaultName" + ], + "handlers": { + "create": { + "permissions": [ + "backup:TagResource", + "backup:AssociateBackupVaultMpaApprovalTeam", + "backup:CreateLogicallyAirGappedBackupVault", + "backup:PutBackupVaultAccessPolicy", + "backup:PutBackupVaultNotifications", + "backup-storage:Mount", + "backup-storage:MountCapsule", + "backup:DescribeBackupVault", + "mpa:GetApprovalTeam", + "kms:DescribeKey", + "kms:CreateGrant" + ] }, - "Notifications": { - "$ref": "#/definitions/NotificationObjectType" + "read": { + "permissions": [ + "backup:DescribeBackupVault", + "backup:GetBackupVaultNotifications", + "backup:GetBackupVaultAccessPolicy", + "backup:ListTags" + ] }, - "AccessPolicy": { - "type": [ - "object", - "string" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" + "update": { + "permissions": [ + "backup:AssociateBackupVaultMpaApprovalTeam", + "backup:DescribeBackupVault", + "backup:DeleteBackupVaultAccessPolicy", + "backup:DeleteBackupVaultNotifications", + "backup:DeleteBackupVaultLockConfiguration", + "backup:GetBackupVaultAccessPolicy", + "backup:ListTags", + "backup:TagResource", + "backup:UntagResource", + "backup:PutBackupVaultAccessPolicy", + "backup:PutBackupVaultNotifications", + "backup:PutBackupVaultLockConfiguration", + "mpa:GetApprovalTeam" + ] + }, + "delete": { + "permissions": [ + "backup:DeleteBackupVault" + ] + }, + "list": { + "permissions": [ + "backup:ListBackupVaults" + ] } }, "attributes": { - "VaultState": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "VaultType": { + "BackupVaultArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "BackupVaultArn": { + "VaultState": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "EncryptionKeyArn": { + "VaultType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } diff --git a/server/schema/resources/aws-backup-restoretestingplan.json b/server/schema/resources/aws-backup-restoretestingplan.json index cae38da9..27af9281 100644 --- a/server/schema/resources/aws-backup-restoretestingplan.json +++ b/server/schema/resources/aws-backup-restoretestingplan.json @@ -1,89 +1,29 @@ { - "tagging": { - "permissions": [ - "backup:TagResource", - "backup:UntagResource", - "backup:ListTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "backup:GetRestoreTestingPlan", - "backup:ListTags" - ], - "timeoutInMinutes": 5 - }, - "create": { - "permissions": [ - "backup:CreateRestoreTestingPlan", - "backup:TagResource", - "backup:GetRestoreTestingPlan", - "backup:ListTags" - ], - "timeoutInMinutes": 5 - }, - "update": { - "permissions": [ - "backup:UpdateRestoreTestingPlan", - "backup:TagResource", - "backup:UntagResource", - "backup:GetRestoreTestingPlan", - "backup:ListTags" - ], - "timeoutInMinutes": 5 - }, - "list": { - "permissions": [ - "backup:ListRestoreTestingPlans" - ], - "timeoutInMinutes": 5 - }, - "delete": { - "permissions": [ - "backup:DeleteRestoreTestingPlan", - "backup:GetRestoreTestingPlan" - ], - "timeoutInMinutes": 5 - } - }, "typeName": "AWS::Backup::RestoreTestingPlan", - "readOnlyProperties": [ - "/properties/RestoreTestingPlanArn" - ], "description": "Definition of AWS::Backup::RestoreTestingPlan Resource Type", - "createOnlyProperties": [ - "/properties/RestoreTestingPlanName" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/RestoreTestingPlanName" - ], "definitions": { "RestoreTestingRecoveryPointSelection": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "Algorithm": { + "$ref": "#/definitions/RestoreTestingRecoveryPointSelectionAlgorithm" + }, "SelectionWindowDays": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "RecoveryPointTypes": { - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/RestoreTestingRecoveryPointType" }, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "IncludeVaults": { - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -91,16 +31,13 @@ "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "ExcludeVaults": { - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Algorithm": { - "$ref": "#/definitions/RestoreTestingRecoveryPointSelectionAlgorithm" } }, "required": [ @@ -110,31 +47,6 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tag": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "minLength": 0, - "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 -.", - "type": "string", - "maxLength": 256, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" - }, - "Key": { - "minLength": 1, - "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 -.", - "type": "string", - "maxLength": 128, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Key", - "Value" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "RestoreTestingRecoveryPointSelectionAlgorithm": { "type": "string", "enum": [ @@ -150,22 +62,34 @@ "CONTINUOUS" ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SNAPSHOT | CONTINUOUS \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "RecoveryPointSelection", - "ScheduleExpression", - "RestoreTestingPlanName" - ], "properties": { - "ScheduleExpression": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "StartWindowHours": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, "RecoveryPointSelection": { "$ref": "#/definitions/RestoreTestingRecoveryPointSelection" }, @@ -177,20 +101,97 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, + "ScheduleExpression": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, "ScheduleExpressionTimezone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "StartWindowHours": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "Tags": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" }, + "type": "array", + "insertionOrder": false, + "uniqueItems": true, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "backup:TagResource", + "backup:UntagResource", + "backup:ListTags" + ] + }, + "additionalProperties": false, + "required": [ + "RecoveryPointSelection", + "ScheduleExpression", + "RestoreTestingPlanName" + ], + "readOnlyProperties": [ + "/properties/RestoreTestingPlanArn" + ], + "createOnlyProperties": [ + "/properties/RestoreTestingPlanName" + ], + "primaryIdentifier": [ + "/properties/RestoreTestingPlanName" + ], + "handlers": { + "create": { + "permissions": [ + "backup:CreateRestoreTestingPlan", + "backup:TagResource", + "backup:GetRestoreTestingPlan", + "backup:ListTags", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 5 + }, + "read": { + "permissions": [ + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + }, + "update": { + "permissions": [ + "backup:UpdateRestoreTestingPlan", + "backup:TagResource", + "backup:UntagResource", + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + }, + "delete": { + "permissions": [ + "backup:DeleteRestoreTestingPlan", + "backup:GetRestoreTestingPlan" + ], + "timeoutInMinutes": 5 + }, + "list": { + "permissions": [ + "backup:ListRestoreTestingPlans" + ], + "timeoutInMinutes": 5 + } + }, "attributes": { "RestoreTestingPlanArn": { "type": "string", diff --git a/server/schema/resources/aws-backup-tieringconfiguration.json b/server/schema/resources/aws-backup-tieringconfiguration.json new file mode 100644 index 00000000..e9cfbc02 --- /dev/null +++ b/server/schema/resources/aws-backup-tieringconfiguration.json @@ -0,0 +1,154 @@ +{ + "typeName": "AWS::Backup::TieringConfiguration", + "description": "Resource Type definition for AWS::Backup::TieringConfiguration", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-backup.git", + "properties": { + "TieringConfigurationName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "TieringConfigurationArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "BackupVaultName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceSelection": { + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceSelection" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "TieringConfigurationTags": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.{1,128}$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CreationTime": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "ResourceSelection": { + "type": "object", + "additionalProperties": false, + "properties": { + "Resources": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "TieringDownSettingsInDays": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "ResourceType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Resources", + "TieringDownSettingsInDays", + "ResourceType" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "TieringConfigurationName", + "BackupVaultName", + "ResourceSelection" + ], + "createOnlyProperties": [ + "/properties/TieringConfigurationName" + ], + "readOnlyProperties": [ + "/properties/TieringConfigurationArn", + "/properties/CreationTime", + "/properties/LastUpdatedTime" + ], + "primaryIdentifier": [ + "/properties/TieringConfigurationName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/TieringConfigurationTags", + "permissions": [ + "backup:TagResource", + "backup:UntagResource", + "backup:ListTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "backup:CreateTieringConfiguration", + "backup:GetTieringConfiguration", + "backup:TagResource" + ] + }, + "read": { + "permissions": [ + "backup:GetTieringConfiguration", + "backup:ListTags" + ] + }, + "update": { + "permissions": [ + "backup:UpdateTieringConfiguration", + "backup:TagResource", + "backup:UntagResource", + "backup:ListTags" + ] + }, + "delete": { + "permissions": [ + "backup:DeleteTieringConfiguration", + "backup:GetTieringConfiguration" + ] + }, + "list": { + "permissions": [ + "backup:ListTieringConfigurations" + ] + } + }, + "attributes": { + "TieringConfigurationArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreationTime": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-batch-computeenvironment.json b/server/schema/resources/aws-batch-computeenvironment.json index b8416258..adf229e5 100644 --- a/server/schema/resources/aws-batch-computeenvironment.json +++ b/server/schema/resources/aws-batch-computeenvironment.json @@ -121,6 +121,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "ScalingPolicy": { + "$ref": "#/definitions/ComputeScalingPolicy" + }, "SecurityGroupIds": { "type": "array", "uniqueItems": false, @@ -172,7 +175,18 @@ "Type", "MaxvCpus" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" + }, + "ComputeScalingPolicy": { + "type": "object", + "additionalProperties": false, + "properties": { + "MinScaleDownDelayMinutes": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Ec2ConfigurationObject": { "type": "object", @@ -189,6 +203,10 @@ "ImageKubernetesVersion": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "BatchImageStatus": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -339,6 +357,7 @@ "/properties/ComputeResources/InstanceTypes", "/properties/ComputeResources/LaunchTemplate", "/properties/ComputeResources/PlacementGroup", + "/properties/ComputeResources/ScalingPolicy", "/properties/ComputeResources/SecurityGroupIds", "/properties/ComputeResources/Subnets", "/properties/ComputeResources/Tags", @@ -353,7 +372,8 @@ "/properties/ComputeEnvironmentArn" ], "readOnlyProperties": [ - "/properties/ComputeEnvironmentArn" + "/properties/ComputeEnvironmentArn", + "/properties/ComputeResources/Ec2Configuration/*/BatchImageStatus" ], "additionalIdentifiers": [ [ diff --git a/server/schema/resources/aws-batch-jobdefinition.json b/server/schema/resources/aws-batch-jobdefinition.json index 98de8498..c6186b4d 100644 --- a/server/schema/resources/aws-batch-jobdefinition.json +++ b/server/schema/resources/aws-batch-jobdefinition.json @@ -468,6 +468,9 @@ "EfsVolumeConfiguration": { "$ref": "#/definitions/EFSVolumeConfiguration" }, + "S3FilesVolumeConfiguration": { + "$ref": "#/definitions/S3FilesVolumeConfiguration" + }, "Name": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -530,6 +533,32 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "S3FilesVolumeConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "FileSystemArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "RootDirectory": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TransitEncryptionPort": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AccessPointArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FileSystemArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ResourceRequirement": { "type": "object", "additionalProperties": false, @@ -1009,6 +1038,18 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ResourceRetentionPolicy": { + "type": "object", + "additionalProperties": false, + "properties": { + "SkipDeregisterOnUpdate": { + "type": "boolean", + "default": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "EvaluateOnExit": { "type": "object", "additionalProperties": false, @@ -1377,6 +1418,14 @@ "Type" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StopTimeout": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "StartTimeout": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "required": [ @@ -1495,6 +1544,9 @@ "RetryStrategy": { "$ref": "#/definitions/RetryStrategy" }, + "ResourceRetentionPolicy": { + "$ref": "#/definitions/ResourceRetentionPolicy" + }, "Timeout": { "$ref": "#/definitions/JobTimeout" }, @@ -1529,7 +1581,7 @@ "tagProperty": "/properties/Tags", "permissions": [ "Batch:TagResource", - "Batch:UnTagResource" + "Batch:UntagResource" ] }, "additionalProperties": false, @@ -1542,6 +1594,10 @@ "readOnlyProperties": [ "/properties/JobDefinitionArn" ], + "writeOnlyProperties": [ + "/properties/ResourceRetentionPolicy", + "/properties/ResourceRetentionPolicy/SkipDeregisterOnUpdate" + ], "primaryIdentifier": [ "/properties/JobDefinitionName" ], diff --git a/server/schema/resources/aws-batch-quotashare.json b/server/schema/resources/aws-batch-quotashare.json new file mode 100644 index 00000000..66a0b87a --- /dev/null +++ b/server/schema/resources/aws-batch-quotashare.json @@ -0,0 +1,220 @@ +{ + "typeName": "AWS::Batch::QuotaShare", + "description": "Creates an AWS Batch quota share. Each quota share operates as a virtual queue with a configured compute capacity, resource sharing strategy, and borrow limits.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-batch", + "additionalProperties": false, + "definitions": { + "ResourceArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z\\-]*:batch:[a-z0-9\\-]+:[0-9]{12}:job-queue/[a-zA-Z0-9_\\-]{1,128}/quota-share/[a-zA-Z0-9_\\-]{1,128}$ \nUpdate requires: No interruption\n" + }, + "QuotaShareCapacityLimit": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer", + "description": "The maximum capacity available for the quota share. This value represents the maximum quantity of a resource that can be allocated to jobs in the quota share without borrowing.", + "minimum": 1, + "markdownDescription": "The maximum capacity available for the quota share. This value represents the maximum quantity of a resource that can be allocated to jobs in the quota share without borrowing.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "CapacityUnit": { + "type": "string", + "description": "The unit of compute capacity for the capacityLimit. For example, `ml.m5.large`.", + "markdownDescription": "The unit of compute capacity for the capacityLimit. For example, `ml.m5.large`.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "MaxCapacity", + "CapacityUnit" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "QuotaShareResourceSharingConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Strategy": { + "type": "string", + "description": "The resource sharing strategy for the quota share. The `RESERVE` strategy allows a quota share to reserve idle capacity for itself. `LEND` configures the share to lend its idle capacity to another share in need of capacity. The `LEND_AND_BORROW` strategy configures the share to borrow idle capacity from an underutilized share, as well as lend to another share.", + "enum": [ + "RESERVE", + "LEND", + "LEND_AND_BORROW" + ], + "markdownDescription": "The resource sharing strategy for the quota share. The `RESERVE` strategy allows a quota share to reserve idle capacity for itself. `LEND` configures the share to lend its idle capacity to another share in need of capacity. The `LEND_AND_BORROW` strategy configures the share to borrow idle capacity from an underutilized share, as well as lend to another share.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: RESERVE | LEND | LEND_AND_BORROW \nUpdate requires: No interruption\n" + }, + "BorrowLimit": { + "type": "integer", + "description": "The maximum percentage of additional capacity that the quota share can borrow from other shares. `BorrowLimit` can only be applied to quota shares with a strategy of `LEND_AND_BORROW`. This value is expressed as a percentage of the quota share's configured CapacityLimits. The `BorrowLimit` is applied uniformly across all capacity units. For example, if the `BorrowLimit` is 200, the quota share can borrow up to 200% of its configured `maxCapacity` for each capacity unit. The default `BorrowLimit` is -1, which indicates unlimited borrowing.", + "minimum": -1, + "markdownDescription": "The maximum percentage of additional capacity that the quota share can borrow from other shares. `BorrowLimit` can only be applied to quota shares with a strategy of `LEND_AND_BORROW`. This value is expressed as a percentage of the quota share's configured CapacityLimits. The `BorrowLimit` is applied uniformly across all capacity units. For example, if the `BorrowLimit` is 200, the quota share can borrow up to 200% of its configured `maxCapacity` for each capacity unit. The default `BorrowLimit` is -1, which indicates unlimited borrowing.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Strategy" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "QuotaSharePreemptionConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "InSharePreemption": { + "type": "string", + "description": "Specifies whether jobs within a quota share can be preempted by another, higher priority job in the same quota share.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "Specifies whether jobs within a quota share can be preempted by another, higher priority job in the same quota share.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + } + }, + "required": [ + "InSharePreemption" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "QuotaShareName": { + "type": "string", + "description": "The name of the quota share. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The name of the quota share. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: Replacement\n" + }, + "QuotaShareArn": { + "description": "The Amazon Resource Name (ARN) of the quota share.", + "$ref": "#/definitions/ResourceArn", + "markdownDescription": "The Amazon Resource Name (ARN) of the quota share.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "JobQueue": { + "type": "string", + "description": "The AWS Batch job queue associated with the quota share. This can be the job queue name or ARN. A job queue must be in the `VALID` state before you can associate it with a quota share.", + "markdownDescription": "The AWS Batch job queue associated with the quota share. This can be the job queue name or ARN. A job queue must be in the `VALID` state before you can associate it with a quota share.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "CapacityLimits": { + "type": "array", + "description": "A list that specifies the quantity and type of compute capacity allocated to the quota share.", + "insertionOrder": true, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/QuotaShareCapacityLimit" + }, + "markdownDescription": "A list that specifies the quantity and type of compute capacity allocated to the quota share.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ResourceSharingConfiguration": { + "description": "Specifies whether a quota share reserves, lends, or both lends and borrows idle compute capacity.", + "$ref": "#/definitions/QuotaShareResourceSharingConfiguration", + "markdownDescription": "Specifies whether a quota share reserves, lends, or both lends and borrows idle compute capacity.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "PreemptionConfiguration": { + "description": "Specifies the preemption behavior for jobs in a quota share.", + "$ref": "#/definitions/QuotaSharePreemptionConfiguration", + "markdownDescription": "Specifies the preemption behavior for jobs in a quota share.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "State": { + "type": "string", + "description": "The state of the quota share. If the quota share is `ENABLED`, it is able to accept jobs. If the quota share is `DISABLED`, new jobs won't be accepted but jobs already submitted can finish. The default state is `ENABLED`.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "The state of the quota share. If the quota share is `ENABLED`, it is able to accept jobs. If the quota share is `DISABLED`, new jobs won't be accepted but jobs already submitted can finish. The default state is `ENABLED`.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "object", + "description": "The tags that you apply to the quota share to help you categorize and organize your resources. Each tag consists of a key and an optional value.", + "patternProperties": { + ".*": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The tags that you apply to the quota share to help you categorize and organize your resources. Each tag consists of a key and an optional value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "Batch:TagResource", + "Batch:UntagResource" + ] + }, + "required": [ + "QuotaShareName", + "JobQueue", + "CapacityLimits", + "ResourceSharingConfiguration", + "PreemptionConfiguration" + ], + "primaryIdentifier": [ + "/properties/QuotaShareArn" + ], + "additionalIdentifiers": [ + [ + "/properties/QuotaShareName" + ] + ], + "createOnlyProperties": [ + "/properties/QuotaShareName", + "/properties/JobQueue" + ], + "readOnlyProperties": [ + "/properties/QuotaShareArn" + ], + "handlers": { + "create": { + "permissions": [ + "Batch:CreateQuotaShare", + "Batch:TagResource", + "Batch:DescribeQuotaShare" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeQuotaShare" + ] + }, + "update": { + "permissions": [ + "Batch:DescribeQuotaShare", + "Batch:UpdateQuotaShare", + "Batch:TagResource", + "Batch:UntagResource" + ] + }, + "delete": { + "permissions": [ + "Batch:UpdateQuotaShare", + "Batch:DescribeQuotaShare", + "Batch:DeleteQuotaShare" + ] + }, + "list": { + "permissions": [ + "Batch:ListQuotaShares" + ], + "handlerSchema": { + "properties": { + "JobQueue": { + "$ref": "resource-schema.json#/properties/JobQueue" + } + } + } + } + }, + "attributes": { + "QuotaShareArn": { + "description": "The Amazon Resource Name (ARN) of the quota share.", + "$ref": "#/definitions/ResourceArn", + "markdownDescription": "The Amazon Resource Name (ARN) of the quota share.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-batch-schedulingpolicy.json b/server/schema/resources/aws-batch-schedulingpolicy.json index b600e1e9..1e071eee 100644 --- a/server/schema/resources/aws-batch-schedulingpolicy.json +++ b/server/schema/resources/aws-batch-schedulingpolicy.json @@ -8,6 +8,21 @@ "type": "string", "markdownDescription": "ARN of the Scheduling Policy.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "QuotaSharePolicy": { + "description": "Quota Share Policy for the Job Queue.", + "type": "object", + "properties": { + "IdleResourceAssignmentStrategy": { + "type": "string", + "enum": [ + "FIFO" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: FIFO \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Quota Share Policy for the Job Queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "FairsharePolicy": { "description": "Fair Share Policy for the Job Queue.", "type": "object", @@ -69,6 +84,9 @@ "FairsharePolicy": { "$ref": "#/definitions/FairsharePolicy" }, + "QuotaSharePolicy": { + "$ref": "#/definitions/QuotaSharePolicy" + }, "Tags": { "type": "object", "description": "A key-value pair to associate with a resource.", diff --git a/server/schema/resources/aws-bcmdataexports-export.json b/server/schema/resources/aws-bcmdataexports-export.json index 6a856818..ac8f9b9f 100644 --- a/server/schema/resources/aws-bcmdataexports-export.json +++ b/server/schema/resources/aws-bcmdataexports-export.json @@ -150,6 +150,12 @@ "minLength": 0, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1024 \nPattern: ^[\\S\\s]*$ \nUpdate requires: No interruption\n" }, + "S3BucketOwner": { + "type": "string", + "maxLength": 12, + "minLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, "S3Prefix": { "type": "string", "maxLength": 1024, diff --git a/server/schema/resources/aws-bcmpricingcalculator-billscenario.json b/server/schema/resources/aws-bcmpricingcalculator-billscenario.json new file mode 100644 index 00000000..91bee82a --- /dev/null +++ b/server/schema/resources/aws-bcmpricingcalculator-billscenario.json @@ -0,0 +1,229 @@ +{ + "typeName": "AWS::BcmPricingCalculator::BillScenario", + "description": "Resource Type definition for AWS::BcmPricingCalculator::BillScenario", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bcm-pricing-calculator", + "definitions": { + "BillInterval": { + "type": "object", + "properties": { + "Start": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "End": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BillScenarioStatus": { + "type": "string", + "enum": [ + "READY", + "LOCKED", + "FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: READY | LOCKED | FAILED \nUpdate requires: No interruption\n" + }, + "GroupSharingPreference": { + "type": "string", + "enum": [ + "OPEN", + "PRIORITIZED", + "RESTRICTED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPEN | PRIORITIZED | RESTRICTED \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the bill scenario.", + "markdownDescription": "The Amazon Resource Name (ARN) of the bill scenario.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z]*:bcm-pricing-calculator::[0-9]{12}:bill-scenario/[a-f0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "type": "string", + "description": "The unique identifier of the bill scenario", + "markdownDescription": "The unique identifier of the bill scenario\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "The name of the bill scenario", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the bill scenario\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "BillInterval": { + "$ref": "#/definitions/BillInterval", + "description": "The time period covered by the bill scenario", + "markdownDescription": "The time period covered by the bill scenario\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/BillScenarioStatus", + "description": "The status of the bill scenario", + "markdownDescription": "The status of the bill scenario\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the bill scenario was created", + "markdownDescription": "The timestamp when the bill scenario was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ExpiresAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the bill scenario expires", + "markdownDescription": "The timestamp when the bill scenario expires\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "FailureMessage": { + "type": "string", + "description": "The failure message if the bill scenario failed", + "markdownDescription": "The failure message if the bill scenario failed\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CostCategoryGroupSharingPreferenceArn": { + "type": "string", + "description": "The ARN of the cost category group sharing preference", + "markdownDescription": "The ARN of the cost category group sharing preference\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:ce::[0-9]{12}:costcategory/[a-f0-9-]{36}$ \nUpdate requires: No interruption\n" + }, + "GroupSharingPreference": { + "$ref": "#/definitions/GroupSharingPreference", + "description": "The group sharing preference for the bill scenario", + "markdownDescription": "The group sharing preference for the bill scenario\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "description": "An array of key-value pairs to apply to this resource", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "insertionOrder": false, + "markdownDescription": "An array of key-value pairs to apply to this resource\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/BillInterval", + "/properties/Status", + "/properties/CreatedAt", + "/properties/FailureMessage" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "bcm-pricing-calculator:TagResource", + "bcm-pricing-calculator:UntagResource", + "bcm-pricing-calculator:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "bcm-pricing-calculator:CreateBillScenario", + "bcm-pricing-calculator:UpdateBillScenario", + "bcm-pricing-calculator:GetBillScenario", + "bcm-pricing-calculator:TagResource" + ] + }, + "read": { + "permissions": [ + "bcm-pricing-calculator:GetBillScenario", + "bcm-pricing-calculator:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bcm-pricing-calculator:UpdateBillScenario", + "bcm-pricing-calculator:GetBillScenario", + "bcm-pricing-calculator:TagResource", + "bcm-pricing-calculator:UntagResource", + "bcm-pricing-calculator:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bcm-pricing-calculator:DeleteBillScenario", + "bcm-pricing-calculator:GetBillScenario" + ] + }, + "list": { + "permissions": [ + "bcm-pricing-calculator:ListBillScenarios" + ] + } + }, + "additionalProperties": false, + "attributes": { + "Arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the bill scenario.", + "markdownDescription": "The Amazon Resource Name (ARN) of the bill scenario.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z]*:bcm-pricing-calculator::[0-9]{12}:bill-scenario/[a-f0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "type": "string", + "description": "The unique identifier of the bill scenario", + "markdownDescription": "The unique identifier of the bill scenario\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "BillInterval": { + "$ref": "#/definitions/BillInterval", + "description": "The time period covered by the bill scenario", + "markdownDescription": "The time period covered by the bill scenario\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/BillScenarioStatus", + "description": "The status of the bill scenario", + "markdownDescription": "The status of the bill scenario\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the bill scenario was created", + "markdownDescription": "The timestamp when the bill scenario was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FailureMessage": { + "type": "string", + "description": "The failure message if the bill scenario failed", + "markdownDescription": "The failure message if the bill scenario failed\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrock-agent.json b/server/schema/resources/aws-bedrock-agent.json index f0fb0886..dc0ce878 100644 --- a/server/schema/resources/aws-bedrock-agent.json +++ b/server/schema/resources/aws-bedrock-agent.json @@ -45,7 +45,7 @@ "Lambda": { "type": "string", "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", "description": "ARN of a Lambda." } }, @@ -158,7 +158,7 @@ "AliasArn": { "type": "string", "description": "Alias ARN for agent descriptor", - "markdownDescription": "Alias ARN for agent descriptor\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\n" + "markdownDescription": "Alias ARN for agent descriptor\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws[a-zA-Z-]*)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -408,7 +408,7 @@ }, "MaximumLength": { "type": "number", - "maximum": 4096, + "maximum": 131072, "minimum": 0, "description": "Maximum length of output", "markdownDescription": "Maximum length of output\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" @@ -447,7 +447,7 @@ "type": "string", "maxLength": 2048, "description": "ARN of a Lambda.", - "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^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-_]+))?$ \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -556,7 +556,7 @@ "type": "string", "maxLength": 2048, "description": "ARN of a Lambda.", - "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^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-_]+))?$ \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -669,7 +669,7 @@ "type": "string", "maxLength": 2048, "description": "Arn representation of the Agent.", - "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "AgentId": { "type": "string", @@ -717,7 +717,7 @@ "maxLength": 2048, "minLength": 1, "description": "A KMS key ARN", - "markdownDescription": "A KMS key ARN\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" + "markdownDescription": "A KMS key ARN\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" }, "SkipResourceInUseCheckOnDelete": { "description": "Specifies whether to allow deleting agent while it is in use.", @@ -756,7 +756,7 @@ }, "IdleSessionTTLInSeconds": { "type": "number", - "maximum": 3600, + "maximum": 5400, "minimum": 60, "description": "Max Session Time.", "markdownDescription": "Max Session Time.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" @@ -962,7 +962,7 @@ "type": "string", "maxLength": 2048, "description": "Arn representation of the Agent.", - "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "AgentId": { "type": "string", diff --git a/server/schema/resources/aws-bedrock-agentalias.json b/server/schema/resources/aws-bedrock-agentalias.json index 7ea2971d..8175fba9 100644 --- a/server/schema/resources/aws-bedrock-agentalias.json +++ b/server/schema/resources/aws-bedrock-agentalias.json @@ -219,7 +219,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-bedrock-automatedreasoningpolicy.json b/server/schema/resources/aws-bedrock-automatedreasoningpolicy.json index dfa14c72..f3431a62 100644 --- a/server/schema/resources/aws-bedrock-automatedreasoningpolicy.json +++ b/server/schema/resources/aws-bedrock-automatedreasoningpolicy.json @@ -11,7 +11,16 @@ "/properties/PolicyArn", "/properties/DefinitionHash", "/properties/CreatedAt", - "/properties/UpdatedAt" + "/properties/UpdatedAt", + "/properties/KmsKeyArn" + ], + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ForceDelete" + ], + "writeOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ForceDelete" ], "definitions": { "Name": { @@ -209,6 +218,20 @@ "maxLength": 2048, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:automated-reasoning-policy\\/[a-z0-9]{12}$ \nUpdate requires: No interruption\n" }, + "KmsKeyId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "description": "The KMS key with which the Policy's assets will be encrypted at rest.", + "markdownDescription": "The KMS key with which the Policy's assets will be encrypted at rest.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^(arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:((key/[a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+)))|([a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+)$ \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "description": "The KMS key with which the Policy's assets will be encrypted at rest.", + "markdownDescription": "The KMS key with which the Policy's assets will be encrypted at rest.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" + }, "Version": { "type": "string", "description": "Version of the policy that was created. This will always be `DRAFT`", @@ -273,6 +296,12 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ForceDelete": { + "type": "boolean", + "description": "Specifies whether to force delete the automated reasoning policy even if it has active resources. When false , Amazon Bedrock validates if all artifacts have been deleted (e.g. policy version, test case, test result) for a policy before deletion. When true , Amazon Bedrock will delete the policy and all its artifacts without validation. Default is false", + "default": false, + "markdownDescription": "Specifies whether to force delete the automated reasoning policy even if it has active resources. When false , Amazon Bedrock validates if all artifacts have been deleted (e.g. policy version, test case, test result) for a policy before deletion. When true , Amazon Bedrock will delete the policy and all its artifacts without validation. Default is false\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "properties": { @@ -288,6 +317,12 @@ "PolicyArn": { "$ref": "#/definitions/PolicyArn" }, + "KmsKeyId": { + "$ref": "#/definitions/KmsKeyId" + }, + "KmsKeyArn": { + "$ref": "#/definitions/KmsKeyArn" + }, "Version": { "$ref": "#/definitions/Version" }, @@ -305,6 +340,9 @@ }, "Tags": { "$ref": "#/definitions/Tags" + }, + "ForceDelete": { + "$ref": "#/definitions/ForceDelete" } }, "required": [ @@ -317,14 +355,20 @@ "bedrock:GetAutomatedReasoningPolicy", "bedrock:ExportAutomatedReasoningPolicyVersion", "bedrock:TagResource", - "bedrock:ListTagsForResource" + "bedrock:ListTagsForResource", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" ] }, "read": { "permissions": [ "bedrock:GetAutomatedReasoningPolicy", "bedrock:ExportAutomatedReasoningPolicyVersion", - "bedrock:ListTagsForResource" + "bedrock:ListTagsForResource", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey" ] }, "update": { @@ -334,7 +378,10 @@ "bedrock:ExportAutomatedReasoningPolicyVersion", "bedrock:ListTagsForResource", "bedrock:TagResource", - "bedrock:UntagResource" + "bedrock:UntagResource", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" ] }, "delete": { @@ -365,6 +412,9 @@ "PolicyArn": { "$ref": "#/definitions/PolicyArn" }, + "KmsKeyArn": { + "$ref": "#/definitions/KmsKeyArn" + }, "Version": { "$ref": "#/definitions/Version" }, diff --git a/server/schema/resources/aws-bedrock-automatedreasoningpolicyversion.json b/server/schema/resources/aws-bedrock-automatedreasoningpolicyversion.json index 129d1dce..ab08d8db 100644 --- a/server/schema/resources/aws-bedrock-automatedreasoningpolicyversion.json +++ b/server/schema/resources/aws-bedrock-automatedreasoningpolicyversion.json @@ -153,14 +153,20 @@ "bedrock:GetAutomatedReasoningPolicy", "bedrock:ExportAutomatedReasoningPolicyVersion", "bedrock:TagResource", - "bedrock:ListTagsForResource" + "bedrock:ListTagsForResource", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" ] }, "read": { "permissions": [ "bedrock:GetAutomatedReasoningPolicy", "bedrock:ExportAutomatedReasoningPolicyVersion", - "bedrock:ListTagsForResource" + "bedrock:ListTagsForResource", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" ] }, "delete": { diff --git a/server/schema/resources/aws-bedrock-blueprint.json b/server/schema/resources/aws-bedrock-blueprint.json index 2bebedcb..dcb0a7c5 100644 --- a/server/schema/resources/aws-bedrock-blueprint.json +++ b/server/schema/resources/aws-bedrock-blueprint.json @@ -34,7 +34,7 @@ "type": "string", "maxLength": 128, "description": "ARN of a Blueprint", - "markdownDescription": "ARN of a Blueprint\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "ARN of a Blueprint\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov|-iso|-iso-[a-z]):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$ \nUpdate requires: No interruption\nRead only property: Yes" }, "BlueprintName": { "type": "string", @@ -198,7 +198,7 @@ "type": "string", "maxLength": 128, "description": "ARN of a Blueprint", - "markdownDescription": "ARN of a Blueprint\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "ARN of a Blueprint\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov|-iso|-iso-[a-z]):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$ \nUpdate requires: No interruption\nRead only property: Yes" }, "CreationTime": { "type": "string", diff --git a/server/schema/resources/aws-bedrock-dataautomationlibrary.json b/server/schema/resources/aws-bedrock-dataautomationlibrary.json new file mode 100644 index 00000000..aed3a667 --- /dev/null +++ b/server/schema/resources/aws-bedrock-dataautomationlibrary.json @@ -0,0 +1,261 @@ +{ + "typeName": "AWS::Bedrock::DataAutomationLibrary", + "description": "Resource Type definition for AWS::Bedrock::DataAutomationLibrary", + "definitions": { + "DataAutomationLibraryStatus": { + "type": "string", + "description": "Status of DataAutomationLibrary", + "enum": [ + "ACTIVE", + "DELETING" + ], + "markdownDescription": "Status of DataAutomationLibrary\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | DELETING \nUpdate requires: No interruption\n" + }, + "EncryptionConfiguration": { + "type": "object", + "description": "KMS Encryption Configuration", + "properties": { + "KmsKeyId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "description": "KMS Key Identifier", + "markdownDescription": "KMS Key Identifier\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]+$ \nUpdate requires: No interruption\n" + }, + "KmsEncryptionContext": { + "$ref": "#/definitions/KmsEncryptionContext" + } + }, + "required": [ + "KmsKeyId" + ], + "additionalProperties": false, + "markdownDescription": "KMS Encryption Configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EntityType": { + "type": "string", + "description": "Entity types supported in DataAutomationLibraries", + "enum": [ + "VOCABULARY" + ], + "markdownDescription": "Entity types supported in DataAutomationLibraries\n\n---\n\nRequired: No \nType: String \nAllowed Values: VOCABULARY \nUpdate requires: No interruption\n" + }, + "EntityTypeInfo": { + "type": "object", + "description": "Information about an entity type in the DataAutomationLibrary", + "properties": { + "EntityType": { + "$ref": "#/definitions/EntityType" + }, + "EntityMetadata": { + "type": "string", + "description": "JSON string representing relevant metadata for the entity type", + "markdownDescription": "JSON string representing relevant metadata for the entity type\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EntityType" + ], + "additionalProperties": false, + "markdownDescription": "Information about an entity type in the DataAutomationLibrary\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KmsEncryptionContext": { + "type": "object", + "minProperties": 1, + "description": "KMS Encryption Context", + "patternProperties": { + "^.*\\S.*$": { + "type": "string", + "maxLength": 2000, + "minLength": 1, + "description": "Encryption context value.", + "markdownDescription": "Encryption context value.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2000 \nPattern: ^.*\\S.*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "KMS Encryption Context\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "description": "Key value pair of a tag", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "description": "Tag key", + "markdownDescription": "Tag key\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "description": "Tag value", + "markdownDescription": "Tag value\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "Key value pair of a tag\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "CreationTime": { + "type": "string", + "description": "Time Stamp", + "format": "date-time", + "markdownDescription": "Time Stamp\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "EntityTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityTypeInfo" + }, + "description": "List of info for each entity type in the DataAutomationLibrary", + "markdownDescription": "List of info for each entity type in the DataAutomationLibrary\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LibraryArn": { + "type": "string", + "maxLength": 128, + "description": "ARN generated at the server side when a DataAutomationLibrary is created", + "markdownDescription": "ARN generated at the server side when a DataAutomationLibrary is created\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-iso|-iso-[a-z]|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:data-automation-library/[a-zA-Z0-9-]{12,36}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LibraryDescription": { + "type": "string", + "maxLength": 300, + "minLength": 0, + "description": "Description of the DataAutomationLibrary", + "markdownDescription": "Description of the DataAutomationLibrary\n\n---\n\nRequired: No \nType: String \nMaximum Length: 300 \nUpdate requires: No interruption\n" + }, + "LibraryName": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "description": "Name of the DataAutomationLibrary", + "markdownDescription": "Name of the DataAutomationLibrary\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9-_]+$ \nUpdate requires: Replacement\n" + }, + "Status": { + "$ref": "#/definitions/DataAutomationLibraryStatus" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "description": "List of tags", + "markdownDescription": "List of tags\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LibraryName" + ], + "readOnlyProperties": [ + "/properties/CreationTime", + "/properties/EntityTypes", + "/properties/LibraryArn", + "/properties/Status" + ], + "createOnlyProperties": [ + "/properties/EncryptionConfiguration", + "/properties/LibraryName" + ], + "primaryIdentifier": [ + "/properties/LibraryArn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateDataAutomationLibrary", + "bedrock:GetDataAutomationLibrary", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:CreateGrant" + ] + }, + "read": { + "permissions": [ + "bedrock:GetDataAutomationLibrary", + "bedrock:ListTagsForResource", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKey" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateDataAutomationLibrary", + "bedrock:GetDataAutomationLibrary", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKey" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteDataAutomationLibrary", + "bedrock:GetDataAutomationLibrary", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKey" + ] + }, + "list": { + "permissions": [ + "bedrock:ListDataAutomationLibraries" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "CreationTime": { + "type": "string", + "description": "Time Stamp", + "format": "date-time", + "markdownDescription": "Time Stamp\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EntityTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityTypeInfo" + }, + "description": "List of info for each entity type in the DataAutomationLibrary", + "markdownDescription": "List of info for each entity type in the DataAutomationLibrary\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LibraryArn": { + "type": "string", + "maxLength": 128, + "description": "ARN generated at the server side when a DataAutomationLibrary is created", + "markdownDescription": "ARN generated at the server side when a DataAutomationLibrary is created\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-iso|-iso-[a-z]|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:data-automation-library/[a-zA-Z0-9-]{12,36}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/DataAutomationLibraryStatus" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrock-dataautomationproject.json b/server/schema/resources/aws-bedrock-dataautomationproject.json index 56767052..0bccfc01 100644 --- a/server/schema/resources/aws-bedrock-dataautomationproject.json +++ b/server/schema/resources/aws-bedrock-dataautomationproject.json @@ -173,7 +173,7 @@ "type": "string", "maxLength": 128, "description": "ARN of a Blueprint", - "markdownDescription": "ARN of a Blueprint\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$ \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of a Blueprint\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov|-iso|-iso-[a-z]):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):blueprint/(bedrock-data-automation-public-[a-zA-Z0-9-_]{1,30}|[a-zA-Z0-9-]{12,36})$ \nUpdate requires: No interruption\n" }, "BlueprintVersion": { "type": "string", @@ -336,6 +336,9 @@ }, "ModalityProcessing": { "$ref": "#/definitions/ModalityProcessingConfiguration" + }, + "SensitiveDataConfiguration": { + "$ref": "#/definitions/SensitiveDataConfiguration" } }, "additionalProperties": false, @@ -346,6 +349,12 @@ "properties": { "ModalityProcessing": { "$ref": "#/definitions/ModalityProcessingConfiguration" + }, + "LanguageConfiguration": { + "$ref": "#/definitions/AudioLanguageConfiguration" + }, + "SensitiveDataConfiguration": { + "$ref": "#/definitions/SensitiveDataConfiguration" } }, "additionalProperties": false, @@ -356,6 +365,9 @@ "properties": { "ModalityProcessing": { "$ref": "#/definitions/ModalityProcessingConfiguration" + }, + "SensitiveDataConfiguration": { + "$ref": "#/definitions/SensitiveDataConfiguration" } }, "additionalProperties": false, @@ -366,6 +378,9 @@ "properties": { "ModalityProcessing": { "$ref": "#/definitions/ModalityProcessingConfiguration" + }, + "SensitiveDataConfiguration": { + "$ref": "#/definitions/SensitiveDataConfiguration" } }, "additionalProperties": false, @@ -592,6 +607,149 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "AudioLanguageConfiguration": { + "type": "object", + "properties": { + "InputLanguages": { + "type": "array", + "items": { + "$ref": "#/definitions/Language" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "GenerativeOutputLanguage": { + "$ref": "#/definitions/AudioGenerativeOutputLanguage" + }, + "IdentifyMultipleLanguages": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SensitiveDataConfiguration": { + "type": "object", + "properties": { + "DetectionMode": { + "$ref": "#/definitions/SensitiveDataDetectionMode" + }, + "DetectionScope": { + "type": "array", + "items": { + "$ref": "#/definitions/SensitiveDataDetectionScope" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PiiEntitiesConfiguration": { + "$ref": "#/definitions/PIIEntitiesConfiguration" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SensitiveDataDetectionMode": { + "type": "string", + "enum": [ + "DETECTION", + "DETECTION_AND_REDACTION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DETECTION | DETECTION_AND_REDACTION \nUpdate requires: No interruption\n" + }, + "SensitiveDataDetectionScope": { + "type": "string", + "enum": [ + "STANDARD", + "CUSTOM" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: STANDARD | CUSTOM \nUpdate requires: No interruption\n" + }, + "PIIEntitiesConfiguration": { + "type": "object", + "properties": { + "PiiEntityTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/PIIEntityTypes" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "RedactionMaskMode": { + "$ref": "#/definitions/PIIRedactionMaskMode" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PIIRedactionMaskMode": { + "type": "string", + "enum": [ + "PII", + "ENTITY_TYPE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PII | ENTITY_TYPE \nUpdate requires: No interruption\n" + }, + "PIIEntityTypes": { + "type": "string", + "enum": [ + "ALL", + "ADDRESS", + "AGE", + "NAME", + "EMAIL", + "PHONE", + "USERNAME", + "PASSWORD", + "DRIVER_ID", + "LICENSE_PLATE", + "VEHICLE_IDENTIFICATION_NUMBER", + "CREDIT_DEBIT_CARD_CVV", + "CREDIT_DEBIT_CARD_EXPIRY", + "CREDIT_DEBIT_CARD_NUMBER", + "PIN", + "INTERNATIONAL_BANK_ACCOUNT_NUMBER", + "SWIFT_CODE", + "IP_ADDRESS", + "MAC_ADDRESS", + "URL", + "AWS_ACCESS_KEY", + "AWS_SECRET_KEY", + "US_BANK_ACCOUNT_NUMBER", + "US_BANK_ROUTING_NUMBER", + "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", + "US_PASSPORT_NUMBER", + "US_SOCIAL_SECURITY_NUMBER", + "CA_HEALTH_NUMBER", + "CA_SOCIAL_INSURANCE_NUMBER", + "UK_NATIONAL_HEALTH_SERVICE_NUMBER", + "UK_NATIONAL_INSURANCE_NUMBER", + "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALL | ADDRESS | AGE | NAME | EMAIL | PHONE | USERNAME | PASSWORD | DRIVER_ID | LICENSE_PLATE | VEHICLE_IDENTIFICATION_NUMBER | CREDIT_DEBIT_CARD_CVV | CREDIT_DEBIT_CARD_EXPIRY | CREDIT_DEBIT_CARD_NUMBER | PIN | INTERNATIONAL_BANK_ACCOUNT_NUMBER | SWIFT_CODE | IP_ADDRESS | MAC_ADDRESS | URL | AWS_ACCESS_KEY | AWS_SECRET_KEY | US_BANK_ACCOUNT_NUMBER | US_BANK_ROUTING_NUMBER | US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER | US_PASSPORT_NUMBER | US_SOCIAL_SECURITY_NUMBER | CA_HEALTH_NUMBER | CA_SOCIAL_INSURANCE_NUMBER | UK_NATIONAL_HEALTH_SERVICE_NUMBER | UK_NATIONAL_INSURANCE_NUMBER | UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER \nUpdate requires: No interruption\n" + }, + "AudioGenerativeOutputLanguage": { + "type": "string", + "enum": [ + "DEFAULT", + "EN" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEFAULT | EN \nUpdate requires: No interruption\n" + }, + "Language": { + "type": "string", + "enum": [ + "EN", + "DE", + "ES", + "FR", + "IT", + "PT", + "JA", + "KO", + "CN", + "TW", + "HK" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EN | DE | ES | FR | IT | PT | JA | KO | CN | TW | HK \nUpdate requires: No interruption\n" + }, "StandardOutputConfiguration": { "type": "object", "description": "Standard output configuration", @@ -753,7 +911,7 @@ "type": "string", "maxLength": 128, "description": "ARN of a DataAutomationProject", - "markdownDescription": "ARN of a DataAutomationProject\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):data-automation-project/[a-zA-Z0-9-]{12,36}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "ARN of a DataAutomationProject\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov|-iso|-iso-[a-z]):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):data-automation-project/[a-zA-Z0-9-]{12,36}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ProjectDescription": { "type": "string", @@ -767,6 +925,15 @@ "description": "Name of the DataAutomationProject", "markdownDescription": "Name of the DataAutomationProject\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9-_]+$ \nUpdate requires: Replacement\n" }, + "ProjectType": { + "type": "string", + "description": "Type of the DataAutomationProject - Sync or Async", + "enum": [ + "ASYNC", + "SYNC" + ], + "markdownDescription": "Type of the DataAutomationProject - Sync or Async\n\n---\n\nRequired: No \nType: String \nAllowed Values: ASYNC | SYNC \nUpdate requires: Replacement\n" + }, "ProjectStage": { "$ref": "#/definitions/DataAutomationProjectStage" }, @@ -823,7 +990,8 @@ "/properties/Status" ], "createOnlyProperties": [ - "/properties/ProjectName" + "/properties/ProjectName", + "/properties/ProjectType" ], "primaryIdentifier": [ "/properties/ProjectArn" @@ -904,7 +1072,7 @@ "type": "string", "maxLength": 128, "description": "ARN of a DataAutomationProject", - "markdownDescription": "ARN of a DataAutomationProject\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):data-automation-project/[a-zA-Z0-9-]{12,36}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "ARN of a DataAutomationProject\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:aws(|-cn|-us-gov|-iso|-iso-[a-z]):bedrock:[a-zA-Z0-9-]*:(aws|[0-9]{12}):data-automation-project/[a-zA-Z0-9-]{12,36}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ProjectStage": { "$ref": "#/definitions/DataAutomationProjectStage" diff --git a/server/schema/resources/aws-bedrock-enforcedguardrailconfiguration.json b/server/schema/resources/aws-bedrock-enforcedguardrailconfiguration.json new file mode 100644 index 00000000..d88c9ee8 --- /dev/null +++ b/server/schema/resources/aws-bedrock-enforcedguardrailconfiguration.json @@ -0,0 +1,237 @@ +{ + "typeName": "AWS::Bedrock::EnforcedGuardrailConfiguration", + "description": "Definition of AWS::Bedrock::EnforcedGuardrailConfiguration Resource Type", + "definitions": { + "SelectiveContentGuarding": { + "type": "object", + "description": "Selective content guarding controls for enforced guardrails", + "additionalProperties": false, + "properties": { + "System": { + "type": "string", + "description": "Selective guarding mode for system prompts", + "enum": [ + "SELECTIVE", + "COMPREHENSIVE" + ], + "markdownDescription": "Selective guarding mode for system prompts\n\n---\n\nRequired: No \nType: String \nAllowed Values: SELECTIVE | COMPREHENSIVE \nUpdate requires: No interruption\n" + }, + "Messages": { + "type": "string", + "description": "Selective guarding mode for user messages", + "enum": [ + "SELECTIVE", + "COMPREHENSIVE" + ], + "markdownDescription": "Selective guarding mode for user messages\n\n---\n\nRequired: No \nType: String \nAllowed Values: SELECTIVE | COMPREHENSIVE \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Selective content guarding controls for enforced guardrails\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConfigOwner": { + "type": "string", + "description": "Configuration owner type", + "enum": [ + "ACCOUNT" + ], + "markdownDescription": "Configuration owner type\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACCOUNT \nUpdate requires: No interruption\n" + }, + "ModelEnforcement": { + "type": "object", + "description": "Model-specific information for the enforced guardrail configuration. If not present, the configuration is enforced on all models", + "properties": { + "IncludedModels": { + "type": "array", + "description": "Models to enforce the guardrail on", + "minItems": 1, + "items": { + "type": "string", + "description": "Model identifier or ALL", + "markdownDescription": "Model identifier or ALL\n\n---\n\nRequired: No \nType: String \nPattern: ^(ALL|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}){0,1})$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Models to enforce the guardrail on\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ExcludedModels": { + "type": "array", + "description": "Models to exclude from enforcement. If a model is in both lists, it is excluded", + "minItems": 0, + "items": { + "type": "string", + "description": "Model identifier to exclude", + "markdownDescription": "Model identifier to exclude\n\n---\n\nRequired: No \nType: String \nPattern: ^([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}){0,1}$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Models to exclude from enforcement. If a model is in both lists, it is excluded\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IncludedModels", + "ExcludedModels" + ], + "additionalProperties": false, + "markdownDescription": "Model-specific information for the enforced guardrail configuration. If not present, the configuration is enforced on all models\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ConfigId": { + "type": "string", + "description": "Unique ID for the account enforced configuration", + "markdownDescription": "Unique ID for the account enforced configuration\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GuardrailIdentifier": { + "type": "string", + "minLength": 0, + "maxLength": 2048, + "description": "Identifier for the guardrail, could be the ID or the ARN", + "markdownDescription": "Identifier for the guardrail, could be the ID or the ARN\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$ \nUpdate requires: No interruption\n" + }, + "GuardrailVersion": { + "type": "string", + "description": "Numerical guardrail version (not DRAFT)", + "markdownDescription": "Numerical guardrail version (not DRAFT)\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[1-9][0-9]{0,7}$ \nUpdate requires: No interruption\n" + }, + "SelectiveContentGuarding": { + "$ref": "#/definitions/SelectiveContentGuarding" + }, + "ModelEnforcement": { + "$ref": "#/definitions/ModelEnforcement" + }, + "GuardrailArn": { + "type": "string", + "minLength": 0, + "maxLength": 2048, + "description": "ARN representation for the guardrail", + "markdownDescription": "ARN representation for the guardrail\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GuardrailId": { + "type": "string", + "minLength": 0, + "maxLength": 64, + "description": "Unique ID for the guardrail", + "markdownDescription": "Unique ID for the guardrail\n\n---\n\nRequired: No \nType: String \nMaximum Length: 64 \nPattern: ^[a-z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the configuration was created", + "format": "date-time", + "markdownDescription": "Timestamp when the configuration was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedBy": { + "type": "string", + "description": "The ARN of the role used to create the configuration", + "markdownDescription": "The ARN of the role used to create the configuration\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "Timestamp when the configuration was last updated", + "format": "date-time", + "markdownDescription": "Timestamp when the configuration was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedBy": { + "type": "string", + "description": "The ARN of the role used to update the configuration", + "markdownDescription": "The ARN of the role used to update the configuration\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Owner": { + "$ref": "#/definitions/ConfigOwner" + } + }, + "required": [ + "GuardrailIdentifier", + "GuardrailVersion" + ], + "readOnlyProperties": [ + "/properties/ConfigId", + "/properties/GuardrailArn", + "/properties/GuardrailId", + "/properties/CreatedAt", + "/properties/CreatedBy", + "/properties/UpdatedAt", + "/properties/UpdatedBy", + "/properties/Owner" + ], + "primaryIdentifier": [ + "/properties/ConfigId" + ], + "propertyTransform": { + "/properties/GuardrailIdentifier": "$substringAfter(GuardrailIdentifier, \"/\") $OR GuardrailIdentifier" + }, + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:PutEnforcedGuardrailConfiguration", + "bedrock:ListEnforcedGuardrailsConfiguration" + ] + }, + "read": { + "permissions": [ + "bedrock:ListEnforcedGuardrailsConfiguration" + ] + }, + "update": { + "permissions": [ + "bedrock:PutEnforcedGuardrailConfiguration", + "bedrock:ListEnforcedGuardrailsConfiguration" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteEnforcedGuardrailConfiguration" + ] + }, + "list": { + "permissions": [ + "bedrock:ListEnforcedGuardrailsConfiguration" + ] + } + }, + "additionalProperties": false, + "attributes": { + "ConfigId": { + "type": "string", + "description": "Unique ID for the account enforced configuration", + "markdownDescription": "Unique ID for the account enforced configuration\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GuardrailArn": { + "type": "string", + "minLength": 0, + "maxLength": 2048, + "description": "ARN representation for the guardrail", + "markdownDescription": "ARN representation for the guardrail\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GuardrailId": { + "type": "string", + "minLength": 0, + "maxLength": 64, + "description": "Unique ID for the guardrail", + "markdownDescription": "Unique ID for the guardrail\n\n---\n\nRequired: No \nType: String \nMaximum Length: 64 \nPattern: ^[a-z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the configuration was created", + "format": "date-time", + "markdownDescription": "Timestamp when the configuration was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedBy": { + "type": "string", + "description": "The ARN of the role used to create the configuration", + "markdownDescription": "The ARN of the role used to create the configuration\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "Timestamp when the configuration was last updated", + "format": "date-time", + "markdownDescription": "Timestamp when the configuration was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedBy": { + "type": "string", + "description": "The ARN of the role used to update the configuration", + "markdownDescription": "The ARN of the role used to update the configuration\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Owner": { + "$ref": "#/definitions/ConfigOwner" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrock-guardrail.json b/server/schema/resources/aws-bedrock-guardrail.json index 4b4a122f..d6898d08 100644 --- a/server/schema/resources/aws-bedrock-guardrail.json +++ b/server/schema/resources/aws-bedrock-guardrail.json @@ -501,10 +501,10 @@ }, "Definition": { "type": "string", - "maxLength": 200, + "maxLength": 1000, "minLength": 1, "description": "Definition of topic in topic policy", - "markdownDescription": "Definition of topic in topic policy\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + "markdownDescription": "Definition of topic in topic policy\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" }, "Examples": { "type": "array", diff --git a/server/schema/resources/aws-bedrock-knowledgebase.json b/server/schema/resources/aws-bedrock-knowledgebase.json index 94eb4808..b3fe0dd1 100644 --- a/server/schema/resources/aws-bedrock-knowledgebase.json +++ b/server/schema/resources/aws-bedrock-knowledgebase.json @@ -47,9 +47,10 @@ "RDS", "MONGO_DB_ATLAS", "NEPTUNE_ANALYTICS", + "S3_VECTORS", "OPENSEARCH_MANAGED_CLUSTER" ], - "markdownDescription": "The storage type of a knowledge base.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPENSEARCH_SERVERLESS | PINECONE | RDS | MONGO_DB_ATLAS | NEPTUNE_ANALYTICS | OPENSEARCH_MANAGED_CLUSTER \nUpdate requires: No interruption\n" + "markdownDescription": "The storage type of a knowledge base.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPENSEARCH_SERVERLESS | PINECONE | RDS | MONGO_DB_ATLAS | NEPTUNE_ANALYTICS | S3_VECTORS | OPENSEARCH_MANAGED_CLUSTER \nUpdate requires: No interruption\n" }, "KnowledgeBaseType": { "type": "string", @@ -530,6 +531,44 @@ "additionalProperties": false, "markdownDescription": "Contains the configurations to use Neptune Analytics as Vector Store.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "S3VectorsConfiguration": { + "type": "object", + "description": "Contains the storage configuration of the knowledge base for S3 vectors.", + "properties": { + "VectorBucketArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the S3 bucket where vector embeddings are stored. This bucket contains the vector data used by the knowledge base.", + "markdownDescription": "The Amazon Resource Name (ARN) of the S3 bucket where vector embeddings are stored. This bucket contains the vector data used by the knowledge base.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "IndexArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the vector index used for the knowledge base. This ARN identifies the specific vector index resource within Amazon Bedrock.", + "markdownDescription": "The Amazon Resource Name (ARN) of the vector index used for the knowledge base. This ARN identifies the specific vector index resource within Amazon Bedrock.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "IndexName": { + "type": "string", + "maxLength": 63, + "minLength": 3, + "description": "The name of the vector index used for the knowledge base. This name identifies the vector index within the Amazon Bedrock service.", + "markdownDescription": "The name of the vector index used for the knowledge base. This name identifies the vector index within the Amazon Bedrock service.\n\n---\n\nRequired: Conditional \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + } + }, + "oneOf": [ + { + "required": [ + "IndexArn" + ] + }, + { + "required": [ + "VectorBucketArn", + "IndexName" + ] + } + ], + "additionalProperties": false, + "markdownDescription": "Contains the storage configuration of the knowledge base for S3 vectors.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "StorageConfiguration": { "type": "object", "description": "The vector store service in which the knowledge base is stored.", @@ -552,6 +591,9 @@ "NeptuneAnalyticsConfiguration": { "$ref": "#/definitions/NeptuneAnalyticsConfiguration" }, + "S3VectorsConfiguration": { + "$ref": "#/definitions/S3VectorsConfiguration" + }, "OpensearchManagedClusterConfiguration": { "$ref": "#/definitions/OpenSearchManagedClusterConfiguration" } @@ -580,6 +622,11 @@ "NeptuneAnalyticsConfiguration" ] }, + { + "required": [ + "S3VectorsConfiguration" + ] + }, { "required": [ "MongoDbAtlasConfiguration" @@ -609,6 +656,91 @@ "additionalProperties": false, "markdownDescription": "A map of tag keys and values\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "FixedLengthDuration": { + "type": "integer", + "description": "Duration in seconds to segment the multi modal media", + "minimum": 1, + "maximum": 30, + "markdownDescription": "Duration in seconds to segment the multi modal media\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AudioSegmentationConfiguration": { + "type": "object", + "description": "Configure the audio segmentation configuration for multi modal ingestion.", + "properties": { + "FixedLengthDuration": { + "$ref": "#/definitions/FixedLengthDuration" + } + }, + "required": [ + "FixedLengthDuration" + ], + "additionalProperties": false, + "markdownDescription": "Configure the audio segmentation configuration for multi modal ingestion.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VideoSegmentationConfiguration": { + "type": "object", + "description": "Configure the video segmentation configuration for multi modal ingestion.", + "properties": { + "FixedLengthDuration": { + "$ref": "#/definitions/FixedLengthDuration" + } + }, + "required": [ + "FixedLengthDuration" + ], + "additionalProperties": false, + "markdownDescription": "Configure the video segmentation configuration for multi modal ingestion.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AudioConfiguration": { + "type": "object", + "description": "Configure the audio configuration for multi modal ingestion.", + "properties": { + "SegmentationConfiguration": { + "$ref": "#/definitions/AudioSegmentationConfiguration" + } + }, + "required": [ + "SegmentationConfiguration" + ], + "additionalProperties": false, + "markdownDescription": "Configure the audio configuration for multi modal ingestion.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VideoConfiguration": { + "type": "object", + "description": "Configure the video configuration for multi modal ingestion.", + "properties": { + "SegmentationConfiguration": { + "$ref": "#/definitions/VideoSegmentationConfiguration" + } + }, + "required": [ + "SegmentationConfiguration" + ], + "additionalProperties": false, + "markdownDescription": "Configure the video configuration for multi modal ingestion.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AudioConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/AudioConfiguration" + }, + "maxItems": 1, + "minItems": 1, + "description": "List of audio configurations for multi modal ingestion.", + "insertionOrder": false, + "markdownDescription": "List of audio configurations for multi modal ingestion.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VideoConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VideoConfiguration" + }, + "maxItems": 1, + "minItems": 1, + "description": "List of video configurations for multi modal ingestion.", + "insertionOrder": false, + "markdownDescription": "List of video configurations for multi modal ingestion.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "BedrockEmbeddingModelConfiguration": { "type": "object", "description": "The vector configuration details for the Bedrock embeddings model.", @@ -628,6 +760,12 @@ "BINARY" ], "markdownDescription": "The data type for the vectors when using a model to convert text into vector embeddings.\n\n---\n\nRequired: No \nType: String \nAllowed Values: FLOAT32 | BINARY \nUpdate requires: No interruption\n" + }, + "Audio": { + "$ref": "#/definitions/AudioConfigurations" + }, + "Video": { + "$ref": "#/definitions/VideoConfigurations" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-bedrock-resourcepolicy.json b/server/schema/resources/aws-bedrock-resourcepolicy.json new file mode 100644 index 00000000..39e477f6 --- /dev/null +++ b/server/schema/resources/aws-bedrock-resourcepolicy.json @@ -0,0 +1,60 @@ +{ + "typeName": "AWS::Bedrock::ResourcePolicy", + "description": "Definition of AWS::Bedrock::ResourcePolicy Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": {}, + "properties": { + "ResourceArn": { + "type": "string", + "description": "The ARN of the Bedrock Guardrail or Guardrail Profile resource", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The ARN of the Bedrock Guardrail or Guardrail Profile resource\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[a-z]+)*:bedrock:[a-z0-9-]+:[0-9]{12}:(guardrail|guardrail-profile)/[a-z0-9]+$ \nUpdate requires: Replacement\n" + }, + "PolicyDocument": { + "type": "object", + "description": "The IAM policy document defining access permissions for the guardrail and guardrail profile resources", + "markdownDescription": "The IAM policy document defining access permissions for the guardrail and guardrail profile resources\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "ResourceArn", + "PolicyDocument" + ], + "createOnlyProperties": [ + "/properties/ResourceArn" + ], + "primaryIdentifier": [ + "/properties/ResourceArn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:PutResourcePolicy", + "bedrock:GetResourcePolicy" + ] + }, + "read": { + "permissions": [ + "bedrock:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "bedrock:PutResourcePolicy", + "bedrock:GetResourcePolicy" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteResourcePolicy", + "bedrock:GetResourcePolicy" + ] + } + }, + "tagging": { + "taggable": false + }, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-apikeycredentialprovider.json b/server/schema/resources/aws-bedrockagentcore-apikeycredentialprovider.json new file mode 100644 index 00000000..b8e5b747 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-apikeycredentialprovider.json @@ -0,0 +1,187 @@ +{ + "typeName": "AWS::BedrockAgentCore::ApiKeyCredentialProvider", + "description": "Resource Type definition for AWS::BedrockAgentCore::ApiKeyCredentialProvider", + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiKeySecretArn": { + "type": "object", + "description": "Contains information about the API key secret in AWS Secrets Manager", + "properties": { + "SecretArn": { + "type": "string", + "description": "The ARN of the secret in AWS Secrets Manager", + "markdownDescription": "The ARN of the secret in AWS Secrets Manager\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov):secretsmanager:[A-Za-z0-9-]{1,64}:[0-9]{12}:secret:[a-zA-Z0-9-_/+=.@!]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn" + ], + "additionalProperties": false, + "markdownDescription": "Contains information about the API key secret in AWS Secrets Manager\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "type": "string", + "description": "The name of the API key credential provider", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The name of the API key credential provider\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9\\-_]+$ \nUpdate requires: Replacement\n" + }, + "ApiKey": { + "type": "string", + "description": "The API key to use for authentication", + "minLength": 1, + "maxLength": 65536, + "markdownDescription": "The API key to use for authentication\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 65536 \nUpdate requires: No interruption\n" + }, + "CredentialProviderArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the API key credential provider", + "markdownDescription": "The Amazon Resource Name (ARN) of the API key credential provider\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov):bedrock-agentcore:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ApiKeySecretArn": { + "$ref": "#/definitions/ApiKeySecretArn", + "description": "The ARN of the API key secret in AWS Secrets Manager", + "markdownDescription": "The ARN of the API key secret in AWS Secrets Manager\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was created", + "markdownDescription": "The timestamp when the credential provider was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was last updated", + "markdownDescription": "The timestamp when the credential provider was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "Tags to assign to the API key credential provider", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "insertionOrder": false, + "markdownDescription": "Tags to assign to the API key credential provider\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/CredentialProviderArn", + "/properties/ApiKeySecretArn", + "/properties/CreatedTime", + "/properties/LastUpdatedTime" + ], + "writeOnlyProperties": [ + "/properties/ApiKey" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/CredentialProviderArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateApiKeyCredentialProvider", + "bedrock-agentcore:GetApiKeyCredentialProvider", + "bedrock-agentcore:CreateTokenVault", + "bedrock-agentcore:TagResource", + "secretsmanager:CreateSecret" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetApiKeyCredentialProvider", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateApiKeyCredentialProvider", + "bedrock-agentcore:GetApiKeyCredentialProvider", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource", + "secretsmanager:PutSecretValue" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteApiKeyCredentialProvider", + "bedrock-agentcore:GetApiKeyCredentialProvider", + "secretsmanager:DeleteSecret" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListApiKeyCredentialProviders" + ] + } + }, + "attributes": { + "CredentialProviderArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the API key credential provider", + "markdownDescription": "The Amazon Resource Name (ARN) of the API key credential provider\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov):bedrock-agentcore:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ApiKeySecretArn": { + "$ref": "#/definitions/ApiKeySecretArn", + "description": "The ARN of the API key secret in AWS Secrets Manager", + "markdownDescription": "The ARN of the API key secret in AWS Secrets Manager\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was created", + "markdownDescription": "The timestamp when the credential provider was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was last updated", + "markdownDescription": "The timestamp when the credential provider was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-browsercustom.json b/server/schema/resources/aws-bedrockagentcore-browsercustom.json index 10e160bd..ebdc6afc 100644 --- a/server/schema/resources/aws-bedrockagentcore-browsercustom.json +++ b/server/schema/resources/aws-bedrockagentcore-browsercustom.json @@ -11,15 +11,16 @@ "BrowserArn": { "type": "string", "description": "The ARN of a Browser resource.", - "markdownDescription": "The ARN of a Browser resource.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?\\/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of a Browser resource.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?\\/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\n" }, "BrowserNetworkMode": { "type": "string", "enum": [ - "PUBLIC" + "PUBLIC", + "VPC" ], "description": "Network modes supported by browser", - "markdownDescription": "Network modes supported by browser\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC \nUpdate requires: No interruption\n" + "markdownDescription": "Network modes supported by browser\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | VPC \nUpdate requires: No interruption\n" }, "BrowserNetworkConfiguration": { "type": "object", @@ -27,6 +28,9 @@ "NetworkMode": { "$ref": "#/definitions/BrowserNetworkMode", "default": "PUBLIC" + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" } }, "required": [ @@ -52,6 +56,19 @@ "description": "Recording configuration for browser", "markdownDescription": "Recording configuration for browser\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "BrowserSigning": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "default": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "description": "Browser signing configuration", + "markdownDescription": "Browser signing configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "S3Location": { "type": "object", "properties": { @@ -73,6 +90,56 @@ "description": "S3 Location Configuration", "markdownDescription": "S3 Location Configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "VpcConfig": { + "type": "object", + "description": "Network mode configuration for VPC", + "properties": { + "SecurityGroups": { + "$ref": "#/definitions/SecurityGroups" + }, + "Subnets": { + "$ref": "#/definitions/Subnets" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "additionalProperties": false, + "markdownDescription": "Network mode configuration for VPC\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecurityGroups": { + "type": "array", + "description": "Security groups for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "Security groups for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupId": { + "type": "string", + "description": "Security group id", + "markdownDescription": "Security group id\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "Subnets for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "Subnets for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "description": "Subnet id", + "markdownDescription": "Subnet id\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, "BrowserStatus": { "type": "string", "enum": [ @@ -138,7 +205,7 @@ "RoleArn": { "type": "string", "description": "The Amazon Resource Name (ARN) of the IAM role.", - "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" }, "TagsMap": { "type": "object", @@ -187,6 +254,11 @@ "description": "Recording configuration for browser.", "markdownDescription": "Recording configuration for browser.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" }, + "BrowserSigning": { + "$ref": "#/definitions/BrowserSigning", + "description": "Browser signing configuration.", + "markdownDescription": "Browser signing configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, "ExecutionRoleArn": { "$ref": "#/definitions/RoleArn", "description": "The Amazon Resource Name (ARN) of the IAM role that the browser uses to access resources.", @@ -197,6 +269,11 @@ "description": "Status of browser.", "markdownDescription": "Status of browser.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the browser creation or operation failed.", + "markdownDescription": "The reason for failure if the browser creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", @@ -222,6 +299,7 @@ "/properties/BrowserId", "/properties/BrowserArn", "/properties/Status", + "/properties/FailureReason", "/properties/CreatedAt", "/properties/LastUpdatedAt" ], @@ -238,6 +316,7 @@ "/properties/Description", "/properties/NetworkConfiguration", "/properties/RecordingConfig", + "/properties/BrowserSigning", "/properties/ExecutionRoleArn" ], "handlers": { @@ -247,6 +326,7 @@ "bedrock-agentcore:GetBrowser", "bedrock-agentcore:TagResource", "bedrock-agentcore:ListTagsForResource", + "iam:CreateServiceLinkedRole", "iam:PassRole" ] }, @@ -305,6 +385,11 @@ "description": "Status of browser.", "markdownDescription": "Status of browser.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the browser creation or operation failed.", + "markdownDescription": "The reason for failure if the browser creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", diff --git a/server/schema/resources/aws-bedrockagentcore-browserprofile.json b/server/schema/resources/aws-bedrockagentcore-browserprofile.json new file mode 100644 index 00000000..c29d97f0 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-browserprofile.json @@ -0,0 +1,271 @@ +{ + "typeName": "AWS::BedrockAgentCore::BrowserProfile", + "description": "Resource definition for AWS::BedrockAgentCore::BrowserProfile", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "BrowserProfileId": { + "type": "string", + "description": "The id of the browser profile.", + "markdownDescription": "The id of the browser profile.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "BrowserProfileArn": { + "type": "string", + "description": "The ARN of a BrowserProfile resource.", + "markdownDescription": "The ARN of a BrowserProfile resource.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:browser-profile/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "BrowserProfileName": { + "type": "string", + "description": "The name of the browser profile.", + "markdownDescription": "The name of the browser profile.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$ \nUpdate requires: No interruption\n" + }, + "BrowserProfileDescription": { + "type": "string", + "description": "The description of the browser profile.", + "markdownDescription": "The description of the browser profile.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "BrowserProfileStatus": { + "type": "string", + "enum": [ + "READY", + "DELETING", + "DELETED", + "SAVING" + ], + "description": "Status of browser profile", + "markdownDescription": "Status of browser profile\n\n---\n\nRequired: No \nType: String \nAllowed Values: READY | DELETING | DELETED | SAVING \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the browser profile was created.", + "markdownDescription": "Timestamp when the browser profile was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LastUpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the browser profile was last updated.", + "markdownDescription": "Timestamp when the browser profile was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LastSavedAt": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the browser profile was last saved.", + "markdownDescription": "Timestamp when the browser profile was last saved.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LastSavedBrowserSessionId": { + "type": "string", + "description": "ID of the last saved browser session.", + "markdownDescription": "ID of the last saved browser session.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-zA-Z]{1,40}$ \nUpdate requires: No interruption\n" + }, + "LastSavedBrowserId": { + "type": "string", + "description": "ID of the last saved browser.", + "markdownDescription": "ID of the last saved browser.\n\n---\n\nRequired: No \nType: String \nPattern: ^(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\n" + }, + "BrowserProfileSummary": { + "type": "object", + "properties": { + "ProfileId": { + "$ref": "#/definitions/BrowserProfileId" + }, + "ProfileArn": { + "$ref": "#/definitions/BrowserProfileArn" + }, + "Name": { + "$ref": "#/definitions/BrowserProfileName" + }, + "Description": { + "$ref": "#/definitions/BrowserProfileDescription" + }, + "Status": { + "$ref": "#/definitions/BrowserProfileStatus" + }, + "CreatedAt": { + "$ref": "#/definitions/CreatedAt" + }, + "LastUpdatedAt": { + "$ref": "#/definitions/LastUpdatedAt" + }, + "LastSavedAt": { + "$ref": "#/definitions/LastSavedAt" + }, + "LastSavedBrowserSessionId": { + "$ref": "#/definitions/LastSavedBrowserSessionId" + }, + "LastSavedBrowserId": { + "$ref": "#/definitions/LastSavedBrowserId" + } + }, + "required": [ + "ProfileId", + "ProfileArn", + "Name", + "Status", + "CreatedAt", + "LastUpdatedAt" + ], + "additionalProperties": false, + "description": "Browser Profile Summary", + "markdownDescription": "Browser Profile Summary\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BrowserProfileSummaries": { + "type": "array", + "items": { + "$ref": "#/definitions/BrowserProfileSummary" + }, + "description": "List of browser profiles", + "markdownDescription": "List of browser profiles\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "description": "Value of a tag", + "markdownDescription": "Value of a tag\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A map of tag keys and values\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ProfileId": { + "$ref": "#/definitions/BrowserProfileId" + }, + "ProfileArn": { + "$ref": "#/definitions/BrowserProfileArn" + }, + "Name": { + "$ref": "#/definitions/BrowserProfileName" + }, + "Description": { + "$ref": "#/definitions/BrowserProfileDescription" + }, + "Status": { + "$ref": "#/definitions/BrowserProfileStatus" + }, + "CreatedAt": { + "$ref": "#/definitions/CreatedAt" + }, + "LastUpdatedAt": { + "$ref": "#/definitions/LastUpdatedAt" + }, + "LastSavedAt": { + "$ref": "#/definitions/LastSavedAt" + }, + "LastSavedBrowserSessionId": { + "$ref": "#/definitions/LastSavedBrowserSessionId" + }, + "LastSavedBrowserId": { + "$ref": "#/definitions/LastSavedBrowserId" + }, + "Tags": { + "$ref": "#/definitions/TagsMap", + "description": "A map of tag keys and values.", + "markdownDescription": "A map of tag keys and values.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/ProfileId", + "/properties/ProfileArn", + "/properties/Status", + "/properties/CreatedAt", + "/properties/LastUpdatedAt", + "/properties/LastSavedAt", + "/properties/LastSavedBrowserSessionId", + "/properties/LastSavedBrowserId" + ], + "primaryIdentifier": [ + "/properties/ProfileId" + ], + "additionalIdentifiers": [ + [ + "/properties/ProfileArn" + ] + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateBrowserProfile", + "bedrock-agentcore:GetBrowserProfile", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetBrowserProfile", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:GetBrowserProfile", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:GetBrowserProfile", + "bedrock-agentcore:DeleteBrowserProfile" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListBrowserProfiles" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "attributes": { + "ProfileId": { + "$ref": "#/definitions/BrowserProfileId" + }, + "ProfileArn": { + "$ref": "#/definitions/BrowserProfileArn" + }, + "Status": { + "$ref": "#/definitions/BrowserProfileStatus" + }, + "CreatedAt": { + "$ref": "#/definitions/CreatedAt" + }, + "LastUpdatedAt": { + "$ref": "#/definitions/LastUpdatedAt" + }, + "LastSavedAt": { + "$ref": "#/definitions/LastSavedAt" + }, + "LastSavedBrowserSessionId": { + "$ref": "#/definitions/LastSavedBrowserSessionId" + }, + "LastSavedBrowserId": { + "$ref": "#/definitions/LastSavedBrowserId" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json b/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json index baa13b2f..884621a2 100644 --- a/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json +++ b/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json @@ -11,16 +11,17 @@ "CodeInterpreterArn": { "type": "string", "description": "The ARN of a CodeInterpreter resource.", - "markdownDescription": "The ARN of a CodeInterpreter resource.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?\\/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of a CodeInterpreter resource.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?\\/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\n" }, "CodeInterpreterNetworkMode": { "type": "string", "enum": [ "PUBLIC", - "SANDBOX" + "SANDBOX", + "VPC" ], "description": "Network modes supported by code interpreter", - "markdownDescription": "Network modes supported by code interpreter\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | SANDBOX \nUpdate requires: No interruption\n" + "markdownDescription": "Network modes supported by code interpreter\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | SANDBOX | VPC \nUpdate requires: No interruption\n" }, "CodeInterpreterNetworkConfiguration": { "type": "object", @@ -28,6 +29,9 @@ "NetworkMode": { "$ref": "#/definitions/CodeInterpreterNetworkMode", "default": "SANDBOX" + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" } }, "required": [ @@ -50,7 +54,7 @@ "RoleArn": { "type": "string", "description": "The ARN of the IAM role.", - "markdownDescription": "The ARN of the IAM role.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of the IAM role.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" }, "CodeInterpreterStatus": { "type": "string", @@ -112,6 +116,56 @@ "description": "List of code interpreters", "markdownDescription": "List of code interpreters\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "VpcConfig": { + "type": "object", + "description": "Network mode configuration for VPC", + "properties": { + "SecurityGroups": { + "$ref": "#/definitions/SecurityGroups" + }, + "Subnets": { + "$ref": "#/definitions/Subnets" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "additionalProperties": false, + "markdownDescription": "Network mode configuration for VPC\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecurityGroups": { + "type": "array", + "description": "Security groups for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "Security groups for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupId": { + "type": "string", + "description": "Security group id", + "markdownDescription": "Security group id\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "Subnets for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "Subnets for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "description": "Subnet id", + "markdownDescription": "Subnet id\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, "TagsMap": { "type": "object", "description": "A map of tag keys and values", @@ -164,6 +218,11 @@ "description": "Status of code interpreter.", "markdownDescription": "Status of code interpreter.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the code interpreter creation or operation failed.", + "markdownDescription": "The reason for failure if the code interpreter creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", @@ -189,6 +248,7 @@ "/properties/CodeInterpreterId", "/properties/CodeInterpreterArn", "/properties/Status", + "/properties/FailureReason", "/properties/CreatedAt", "/properties/LastUpdatedAt" ], @@ -213,6 +273,7 @@ "bedrock-agentcore:GetCodeInterpreter", "bedrock-agentcore:TagResource", "bedrock-agentcore:ListTagsForResource", + "iam:CreateServiceLinkedRole", "iam:PassRole" ] }, @@ -271,6 +332,11 @@ "description": "Status of code interpreter.", "markdownDescription": "Status of code interpreter.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the code interpreter creation or operation failed.", + "markdownDescription": "The reason for failure if the code interpreter creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", diff --git a/server/schema/resources/aws-bedrockagentcore-evaluator.json b/server/schema/resources/aws-bedrockagentcore-evaluator.json new file mode 100644 index 00000000..dc75c726 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-evaluator.json @@ -0,0 +1,461 @@ +{ + "typeName": "AWS::BedrockAgentCore::Evaluator", + "description": "Resource Type definition for AWS::BedrockAgentCore::Evaluator - Creates a custom evaluator for agent quality assessment using LLM-as-a-Judge configurations.", + "definitions": { + "EvaluatorStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "CREATING", + "CREATE_FAILED", + "UPDATING", + "UPDATE_FAILED", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | CREATING | CREATE_FAILED | UPDATING | UPDATE_FAILED | DELETING \nUpdate requires: No interruption\n" + }, + "EvaluatorLevel": { + "type": "string", + "enum": [ + "TOOL_CALL", + "TRACE", + "SESSION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TOOL_CALL | TRACE | SESSION \nUpdate requires: No interruption\n" + }, + "EvaluatorConfig": { + "type": "object", + "description": "The configuration that defines how an evaluator assesses agent performance.", + "properties": { + "LlmAsAJudge": { + "$ref": "#/definitions/LlmAsAJudgeEvaluatorConfig" + }, + "CodeBased": { + "$ref": "#/definitions/CodeBasedEvaluatorConfig" + } + }, + "oneOf": [ + { + "required": [ + "LlmAsAJudge" + ] + }, + { + "required": [ + "CodeBased" + ] + } + ], + "additionalProperties": false, + "markdownDescription": "The configuration that defines how an evaluator assesses agent performance.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CodeBasedEvaluatorConfig": { + "type": "object", + "description": "The configuration for code-based evaluation using a Lambda function.", + "properties": { + "LambdaConfig": { + "$ref": "#/definitions/LambdaEvaluatorConfig" + } + }, + "required": [ + "LambdaConfig" + ], + "additionalProperties": false, + "markdownDescription": "The configuration for code-based evaluation using a Lambda function.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LambdaEvaluatorConfig": { + "type": "object", + "description": "The Lambda function configuration for code-based evaluation.", + "properties": { + "LambdaArn": { + "type": "string", + "description": "The ARN of the Lambda function used for evaluation.", + "markdownDescription": "The ARN of the Lambda function used for evaluation.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^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-_]+))?$ \nUpdate requires: No interruption\n" + }, + "LambdaTimeoutInSeconds": { + "type": "integer", + "description": "The timeout in seconds for the Lambda function invocation.", + "minimum": 1, + "maximum": 300, + "markdownDescription": "The timeout in seconds for the Lambda function invocation.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LambdaArn" + ], + "additionalProperties": false, + "markdownDescription": "The Lambda function configuration for code-based evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LlmAsAJudgeEvaluatorConfig": { + "type": "object", + "description": "The configuration for LLM-as-a-Judge evaluation.", + "properties": { + "Instructions": { + "type": "string", + "description": "The evaluation instructions that guide the language model in assessing agent performance.", + "markdownDescription": "The evaluation instructions that guide the language model in assessing agent performance.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "RatingScale": { + "$ref": "#/definitions/RatingScale" + }, + "ModelConfig": { + "$ref": "#/definitions/EvaluatorModelConfig" + } + }, + "required": [ + "Instructions", + "RatingScale", + "ModelConfig" + ], + "additionalProperties": false, + "markdownDescription": "The configuration for LLM-as-a-Judge evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RatingScale": { + "type": "object", + "description": "The rating scale that defines how evaluators should score agent performance.", + "properties": { + "Numerical": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NumericalScaleDefinition" + }, + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" + }, + "Categorical": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CategoricalScaleDefinition" + }, + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" + } + }, + "oneOf": [ + { + "required": [ + "Numerical" + ] + }, + { + "required": [ + "Categorical" + ] + } + ], + "additionalProperties": false, + "markdownDescription": "The rating scale that defines how evaluators should score agent performance.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NumericalScaleDefinition": { + "type": "object", + "description": "A numerical rating scale option.", + "properties": { + "Value": { + "type": "number", + "description": "The numerical value for this rating scale option.", + "minimum": 0, + "markdownDescription": "The numerical value for this rating scale option.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "Label": { + "type": "string", + "description": "The label that describes this numerical rating option.", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "The label that describes this numerical rating option.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: No interruption\n" + }, + "Definition": { + "type": "string", + "description": "The description that explains what this numerical rating represents.", + "markdownDescription": "The description that explains what this numerical rating represents.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Label", + "Definition" + ], + "additionalProperties": false, + "markdownDescription": "A numerical rating scale option.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CategoricalScaleDefinition": { + "type": "object", + "description": "A categorical rating scale option.", + "properties": { + "Label": { + "type": "string", + "description": "The label of this categorical rating option.", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "The label of this categorical rating option.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: No interruption\n" + }, + "Definition": { + "type": "string", + "description": "The description that explains what this categorical rating represents.", + "markdownDescription": "The description that explains what this categorical rating represents.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Label", + "Definition" + ], + "additionalProperties": false, + "markdownDescription": "A categorical rating scale option.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluatorModelConfig": { + "type": "object", + "description": "The model configuration that specifies which foundation model to use for evaluation.", + "properties": { + "BedrockEvaluatorModelConfig": { + "$ref": "#/definitions/BedrockEvaluatorModelConfig" + } + }, + "required": [ + "BedrockEvaluatorModelConfig" + ], + "additionalProperties": false, + "markdownDescription": "The model configuration that specifies which foundation model to use for evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BedrockEvaluatorModelConfig": { + "type": "object", + "description": "The configuration for using Amazon Bedrock models in evaluator assessments.", + "properties": { + "ModelId": { + "type": "string", + "description": "The identifier of the Amazon Bedrock model to use for evaluation.", + "markdownDescription": "The identifier of the Amazon Bedrock model to use for evaluation.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "InferenceConfig": { + "$ref": "#/definitions/InferenceConfiguration" + }, + "AdditionalModelRequestFields": { + "type": "object", + "description": "Additional model-specific request fields.", + "markdownDescription": "Additional model-specific request fields.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "The configuration for using Amazon Bedrock models in evaluator assessments.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InferenceConfiguration": { + "type": "object", + "description": "The inference configuration parameters that control model behavior during evaluation.", + "properties": { + "MaxTokens": { + "type": "integer", + "description": "The maximum number of tokens to generate in the model response.", + "minimum": 1, + "markdownDescription": "The maximum number of tokens to generate in the model response.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Temperature": { + "type": "number", + "description": "The temperature value that controls randomness in the model's responses.", + "minimum": 0, + "maximum": 1, + "markdownDescription": "The temperature value that controls randomness in the model's responses.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "TopP": { + "type": "number", + "description": "The top-p sampling parameter that controls the diversity of the model's responses.", + "minimum": 0, + "maximum": 1, + "markdownDescription": "The top-p sampling parameter that controls the diversity of the model's responses.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The inference configuration parameters that control model behavior during evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "EvaluatorId": { + "type": "string", + "description": "The unique identifier of the evaluator.", + "markdownDescription": "The unique identifier of the evaluator.\n\n---\n\nRequired: No \nType: String \nPattern: ^(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EvaluatorArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the evaluator.", + "markdownDescription": "The Amazon Resource Name (ARN) of the evaluator.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EvaluatorName": { + "type": "string", + "description": "The name of the evaluator. Must be unique within your account.", + "markdownDescription": "The name of the evaluator. Must be unique within your account.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$ \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "description": "The description of the evaluator.", + "minLength": 1, + "maxLength": 200, + "markdownDescription": "The description of the evaluator.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "EvaluatorConfig": { + "$ref": "#/definitions/EvaluatorConfig", + "description": "The configuration for the evaluator.", + "markdownDescription": "The configuration for the evaluator.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Level": { + "$ref": "#/definitions/EvaluatorLevel", + "description": "The evaluation level that determines the scope of evaluation.", + "markdownDescription": "The evaluation level that determines the scope of evaluation.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/EvaluatorStatus", + "description": "The current status of the evaluator.", + "markdownDescription": "The current status of the evaluator.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the evaluator was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the evaluator was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "The timestamp when the evaluator was last updated.", + "format": "date-time", + "markdownDescription": "The timestamp when the evaluator was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "A list of tags to assign to the evaluator.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "insertionOrder": false, + "markdownDescription": "A list of tags to assign to the evaluator.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "EvaluatorName", + "EvaluatorConfig", + "Level" + ], + "readOnlyProperties": [ + "/properties/EvaluatorId", + "/properties/EvaluatorArn", + "/properties/Status", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "createOnlyProperties": [ + "/properties/EvaluatorName" + ], + "primaryIdentifier": [ + "/properties/EvaluatorArn" + ], + "additionalIdentifiers": [ + [ + "/properties/EvaluatorId" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateEvaluator", + "bedrock-agentcore:GetEvaluator", + "bedrock-agentcore:TagResource", + "bedrock:InvokeModel", + "lambda:GetFunction", + "lambda:InvokeFunction" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetEvaluator", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateEvaluator", + "bedrock-agentcore:GetEvaluator", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource", + "bedrock:InvokeModel", + "lambda:GetFunction", + "lambda:InvokeFunction" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteEvaluator", + "bedrock-agentcore:GetEvaluator" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListEvaluators" + ] + } + }, + "attributes": { + "EvaluatorId": { + "type": "string", + "description": "The unique identifier of the evaluator.", + "markdownDescription": "The unique identifier of the evaluator.\n\n---\n\nRequired: No \nType: String \nPattern: ^(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EvaluatorArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the evaluator.", + "markdownDescription": "The Amazon Resource Name (ARN) of the evaluator.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/EvaluatorStatus", + "description": "The current status of the evaluator.", + "markdownDescription": "The current status of the evaluator.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the evaluator was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the evaluator was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "The timestamp when the evaluator was last updated.", + "format": "date-time", + "markdownDescription": "The timestamp when the evaluator was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-gateway.json b/server/schema/resources/aws-bedrockagentcore-gateway.json new file mode 100644 index 00000000..6a4901aa --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-gateway.json @@ -0,0 +1,627 @@ +{ + "typeName": "AWS::BedrockAgentCore::Gateway", + "description": "Definition of AWS::BedrockAgentCore::Gateway Resource Type", + "definitions": { + "AuthorizerConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "CustomJWTAuthorizer", + "properties": { + "CustomJWTAuthorizer": { + "$ref": "#/definitions/CustomJWTAuthorizerConfiguration" + } + }, + "required": [ + "CustomJWTAuthorizer" + ], + "additionalProperties": false + } + ] + }, + "AuthorizerType": { + "type": "string", + "enum": [ + "CUSTOM_JWT", + "AWS_IAM", + "NONE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CUSTOM_JWT | AWS_IAM | NONE \nUpdate requires: No interruption\n" + }, + "CustomJWTAuthorizerConfiguration": { + "type": "object", + "properties": { + "DiscoveryUrl": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^.+/\\.well-known/openid-configuration$ \nUpdate requires: No interruption\n" + }, + "AllowedAudience": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedClients": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedScopes": { + "type": "array", + "items": { + "$ref": "#/definitions/AllowedScope" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomClaims": { + "type": "array", + "items": { + "$ref": "#/definitions/CustomClaimValidationType" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DiscoveryUrl" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AllowedScope": { + "type": "string", + "description": "Allowed scope value", + "markdownDescription": "Allowed scope value\n\n---\n\nRequired: No \nType: String \nPattern: [\\x21\\x23-\\x5B\\x5D-\\x7E]+ \nUpdate requires: No interruption\n" + }, + "CustomClaimValidationType": { + "type": "object", + "description": "Required custom claim", + "properties": { + "AuthorizingClaimMatchValue": { + "$ref": "#/definitions/AuthorizingClaimMatchValueType" + }, + "InboundTokenClaimName": { + "$ref": "#/definitions/InboundTokenClaimName" + }, + "InboundTokenClaimValueType": { + "$ref": "#/definitions/InboundTokenClaimValueType" + } + }, + "required": [ + "AuthorizingClaimMatchValue", + "InboundTokenClaimName", + "InboundTokenClaimValueType" + ], + "additionalProperties": false, + "markdownDescription": "Required custom claim\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InboundTokenClaimName": { + "type": "string", + "description": "The name of the custom claim to validate", + "markdownDescription": "The name of the custom claim to validate\n\n---\n\nRequired: No \nType: String \nPattern: [A-Za-z0-9_.-:]+ \nUpdate requires: No interruption\n" + }, + "InboundTokenClaimValueType": { + "type": "string", + "description": "Token claim data type", + "enum": [ + "STRING", + "STRING_ARRAY" + ], + "markdownDescription": "Token claim data type\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | STRING_ARRAY \nUpdate requires: No interruption\n" + }, + "AuthorizingClaimMatchValueType": { + "type": "object", + "description": "The value or values in the custom claim to match and relationship of match", + "properties": { + "ClaimMatchOperator": { + "$ref": "#/definitions/ClaimMatchOperator" + }, + "ClaimMatchValue": { + "$ref": "#/definitions/ClaimMatchValueType" + } + }, + "required": [ + "ClaimMatchOperator", + "ClaimMatchValue" + ], + "additionalProperties": false, + "markdownDescription": "The value or values in the custom claim to match and relationship of match\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClaimMatchOperator": { + "type": "string", + "description": "The relationship between the claim field value and the value or values being matched", + "enum": [ + "EQUALS", + "CONTAINS", + "CONTAINS_ANY" + ], + "markdownDescription": "The relationship between the claim field value and the value or values being matched\n\n---\n\nRequired: No \nType: String \nAllowed Values: EQUALS | CONTAINS | CONTAINS_ANY \nUpdate requires: No interruption\n" + }, + "ClaimMatchValueType": { + "type": "object", + "description": "The value or values in the custom claim to match for", + "oneOf": [ + { + "required": [ + "MatchValueString" + ] + }, + { + "required": [ + "MatchValueStringList" + ] + } + ], + "properties": { + "MatchValueString": { + "$ref": "#/definitions/MatchValueString" + }, + "MatchValueStringList": { + "$ref": "#/definitions/MatchValueStringList" + } + }, + "additionalProperties": false, + "markdownDescription": "The value or values in the custom claim to match for\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MatchValueString": { + "type": "string", + "description": "The string value to match for", + "markdownDescription": "The string value to match for\n\n---\n\nRequired: No \nType: String \nPattern: [A-Za-z0-9_.-]+ \nUpdate requires: No interruption\n" + }, + "MatchValueStringList": { + "type": "array", + "description": "The list of strings to check for a match", + "minItems": 1, + "maxItems": 255, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MatchValueString" + }, + "markdownDescription": "The list of strings to check for a match\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ExceptionLevel": { + "type": "string", + "enum": [ + "DEBUG" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEBUG \nUpdate requires: No interruption\n" + }, + "GatewayInterceptionPoint": { + "type": "string", + "enum": [ + "REQUEST", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: REQUEST | RESPONSE \nUpdate requires: No interruption\n" + }, + "GatewayInterceptorConfiguration": { + "type": "object", + "properties": { + "Interceptor": { + "$ref": "#/definitions/InterceptorConfiguration" + }, + "InterceptionPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/GatewayInterceptionPoint" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "InputConfiguration": { + "$ref": "#/definitions/InterceptorInputConfiguration" + } + }, + "required": [ + "Interceptor", + "InterceptionPoints" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InterceptorConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "Lambda", + "properties": { + "Lambda": { + "$ref": "#/definitions/LambdaInterceptorConfiguration" + } + }, + "required": [ + "Lambda" + ], + "additionalProperties": false + } + ] + }, + "InterceptorInputConfiguration": { + "type": "object", + "properties": { + "PassRequestHeaders": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PassRequestHeaders" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LambdaInterceptorConfiguration": { + "type": "object", + "properties": { + "Arn": { + "type": "string", + "maxLength": 170, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 170 \nPattern: ^arn:[a-z0-9-]{1,20}:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Arn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GatewayPolicyEngineMode": { + "type": "string", + "description": "The enforcement mode for the policy engine. LOG_ONLY - The policy engine evaluates each action against your policies and adds traces on whether tool calls would be allowed or denied, but does not enforce the decision. Use this mode to test and validate policies before enabling enforcement. ENFORCE - The policy engine evaluates actions against your policies and enforces decisions by allowing or denying agent operations. Test and validate policies in LOG_ONLY mode before enabling enforcement to avoid unintended denials or adversely affecting production traffic.", + "enum": [ + "LOG_ONLY", + "ENFORCE" + ], + "markdownDescription": "The enforcement mode for the policy engine. LOG_ONLY - The policy engine evaluates each action against your policies and adds traces on whether tool calls would be allowed or denied, but does not enforce the decision. Use this mode to test and validate policies before enabling enforcement. ENFORCE - The policy engine evaluates actions against your policies and enforces decisions by allowing or denying agent operations. Test and validate policies in LOG_ONLY mode before enabling enforcement to avoid unintended denials or adversely affecting production traffic.\n\n---\n\nRequired: No \nType: String \nAllowed Values: LOG_ONLY | ENFORCE \nUpdate requires: No interruption\n" + }, + "GatewayPolicyEngineConfiguration": { + "type": "object", + "description": "The configuration for a policy engine associated with a gateway. A policy engine is a collection of policies that evaluates and authorizes agent tool calls. When associated with a gateway, the policy engine intercepts all agent requests and determines whether to allow or deny each action based on the defined policies.", + "properties": { + "Arn": { + "type": "string", + "description": "The ARN of the policy engine. The policy engine contains Cedar policies that define fine-grained authorization rules specifying who can perform what actions on which resources as agents interact through the gateway.", + "maxLength": 170, + "minLength": 1, + "markdownDescription": "The ARN of the policy engine. The policy engine contains Cedar policies that define fine-grained authorization rules specifying who can perform what actions on which resources as agents interact through the gateway.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 170 \nPattern: ^arn:[a-z0-9-]{1,20}:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9_]{10}$ \nUpdate requires: No interruption\n" + }, + "Mode": { + "$ref": "#/definitions/GatewayPolicyEngineMode" + } + }, + "required": [ + "Arn", + "Mode" + ], + "additionalProperties": false, + "markdownDescription": "The configuration for a policy engine associated with a gateway. A policy engine is a collection of policies that evaluates and authorizes agent tool calls. When associated with a gateway, the policy engine intercepts all agent requests and determines whether to allow or deny each action based on the defined policies.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GatewayProtocolConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "Mcp", + "properties": { + "Mcp": { + "$ref": "#/definitions/MCPGatewayConfiguration" + } + }, + "required": [ + "Mcp" + ], + "additionalProperties": false + } + ] + }, + "GatewayProtocolType": { + "type": "string", + "enum": [ + "MCP" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MCP \nUpdate requires: No interruption\n" + }, + "GatewayStatus": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "UPDATE_UNSUCCESSFUL", + "DELETING", + "READY", + "FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | UPDATING | UPDATE_UNSUCCESSFUL | DELETING | READY | FAILED \nUpdate requires: No interruption\n" + }, + "MCPGatewayConfiguration": { + "type": "object", + "properties": { + "SupportedVersions": { + "type": "array", + "items": { + "type": "string", + "default": "2025-03-26", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Instructions": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "SearchType": { + "$ref": "#/definitions/SearchType" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SearchType": { + "type": "string", + "enum": [ + "SEMANTIC" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "maxProperties": 50, + "minProperties": 0, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkloadIdentityDetails": { + "type": "object", + "properties": { + "WorkloadIdentityArn": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "WorkloadIdentityArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AuthorizerConfiguration": { + "$ref": "#/definitions/AuthorizerConfiguration" + }, + "AuthorizerType": { + "$ref": "#/definitions/AuthorizerType" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "ExceptionLevel": { + "$ref": "#/definitions/ExceptionLevel" + }, + "InterceptorConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/GatewayInterceptorConfiguration" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PolicyEngineConfiguration": { + "$ref": "#/definitions/GatewayPolicyEngineConfiguration" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z0-9-]{1,20}:bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^([0-9a-z][-]?){1,100}-[0-9a-z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayUrl": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "KmsKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9-]{1,20}:kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^([0-9a-zA-Z][-]?){1,100}$ \nUpdate requires: No interruption\n" + }, + "ProtocolConfiguration": { + "$ref": "#/definitions/GatewayProtocolConfiguration" + }, + "ProtocolType": { + "$ref": "#/definitions/GatewayProtocolType" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9-]{1,20}:iam::([0-9]{12})?:role/.+$ \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/GatewayStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "WorkloadIdentityDetails": { + "$ref": "#/definitions/WorkloadIdentityDetails" + } + }, + "required": [ + "AuthorizerType", + "Name", + "ProtocolType", + "RoleArn" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/GatewayArn", + "/properties/GatewayIdentifier", + "/properties/GatewayUrl", + "/properties/Status", + "/properties/StatusReasons", + "/properties/UpdatedAt", + "/properties/WorkloadIdentityDetails" + ], + "primaryIdentifier": [ + "/properties/GatewayIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateGateway", + "bedrock-agentcore:CreateWorkloadIdentity", + "bedrock-agentcore:DeleteWorkloadIdentity", + "bedrock-agentcore:GetGateway", + "bedrock-agentcore:ListTagsForResource", + "bedrock-agentcore:SynchronizeGatewayTargets", + "bedrock-agentcore:TagResource", + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetGateway", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:GetGateway", + "bedrock-agentcore:ListTagsForResource", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:UpdateGateway", + "iam:PassRole", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:ListGrants" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteGateway", + "bedrock-agentcore:DeleteWorkloadIdentity", + "bedrock-agentcore:GetGateway" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListGateways" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "bedrock-agentcore:ListTagsForResource", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource" + ] + }, + "attributes": { + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z0-9-]{1,20}:bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^([0-9a-z][-]?){1,100}-[0-9a-z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayUrl": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/GatewayStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "WorkloadIdentityDetails": { + "$ref": "#/definitions/WorkloadIdentityDetails" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-gatewaytarget.json b/server/schema/resources/aws-bedrockagentcore-gatewaytarget.json new file mode 100644 index 00000000..35b29d45 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-gatewaytarget.json @@ -0,0 +1,807 @@ +{ + "typeName": "AWS::BedrockAgentCore::GatewayTarget", + "description": "Resource Type definition for AWS::BedrockAgentCore::GatewayTarget", + "definitions": { + "ApiKeyCredentialLocation": { + "type": "string", + "enum": [ + "HEADER", + "QUERY_PARAMETER" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: HEADER | QUERY_PARAMETER \nUpdate requires: No interruption\n" + }, + "ApiKeyCredentialProvider": { + "type": "object", + "properties": { + "ProviderArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "CredentialParameterName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "CredentialPrefix": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "CredentialLocation": { + "$ref": "#/definitions/ApiKeyCredentialLocation" + } + }, + "required": [ + "ProviderArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiSchemaConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "S3", + "properties": { + "S3": { + "$ref": "#/definitions/S3Configuration" + } + }, + "required": [ + "S3" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "InlinePayload", + "properties": { + "InlinePayload": { + "type": "string" + } + }, + "required": [ + "InlinePayload" + ], + "additionalProperties": false + } + ] + }, + "ApiGatewayTargetConfiguration": { + "type": "object", + "properties": { + "RestApiId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Stage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ApiGatewayToolConfiguration": { + "$ref": "#/definitions/ApiGatewayToolConfiguration" + } + }, + "required": [ + "RestApiId", + "Stage", + "ApiGatewayToolConfiguration" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiGatewayToolConfiguration": { + "type": "object", + "properties": { + "ToolOverrides": { + "type": "array", + "items": { + "$ref": "#/definitions/ApiGatewayToolOverride" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ToolFilters": { + "type": "array", + "items": { + "$ref": "#/definitions/ApiGatewayToolFilter" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ToolFilters" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiGatewayToolOverride": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Path": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Method": { + "$ref": "#/definitions/RestApiMethod" + } + }, + "required": [ + "Name", + "Path", + "Method" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiGatewayToolFilter": { + "type": "object", + "properties": { + "FilterPath": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Methods": { + "type": "array", + "items": { + "$ref": "#/definitions/RestApiMethod" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FilterPath", + "Methods" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RestApiMethod": { + "type": "string", + "enum": [ + "GET", + "DELETE", + "HEAD", + "OPTIONS", + "PATCH", + "PUT", + "POST" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GET | DELETE | HEAD | OPTIONS | PATCH | PUT | POST \nUpdate requires: No interruption\n" + }, + "CredentialProvider": { + "oneOf": [ + { + "type": "object", + "title": "OauthCredentialProvider", + "properties": { + "OauthCredentialProvider": { + "$ref": "#/definitions/OAuthCredentialProvider" + } + }, + "required": [ + "OauthCredentialProvider" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "ApiKeyCredentialProvider", + "properties": { + "ApiKeyCredentialProvider": { + "$ref": "#/definitions/ApiKeyCredentialProvider" + } + }, + "required": [ + "ApiKeyCredentialProvider" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "IamCredentialProvider", + "properties": { + "IamCredentialProvider": { + "$ref": "#/definitions/IamCredentialProvider" + } + }, + "required": [ + "IamCredentialProvider" + ], + "additionalProperties": false + } + ] + }, + "IamCredentialProvider": { + "type": "object", + "properties": { + "Service": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9._-]+$ \nUpdate requires: No interruption\n" + }, + "Region": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 32 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Service" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CredentialProviderConfiguration": { + "type": "object", + "properties": { + "CredentialProviderType": { + "$ref": "#/definitions/CredentialProviderType" + }, + "CredentialProvider": { + "$ref": "#/definitions/CredentialProvider" + } + }, + "required": [ + "CredentialProviderType" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CredentialProviderType": { + "type": "string", + "enum": [ + "GATEWAY_IAM_ROLE", + "OAUTH", + "API_KEY" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GATEWAY_IAM_ROLE | OAUTH | API_KEY \nUpdate requires: No interruption\n" + }, + "McpLambdaTargetConfiguration": { + "type": "object", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 170, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 170 \nPattern: ^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-_]+))?$ \nUpdate requires: No interruption\n" + }, + "ToolSchema": { + "$ref": "#/definitions/ToolSchema" + } + }, + "required": [ + "LambdaArn", + "ToolSchema" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "McpServerTargetConfiguration": { + "type": "object", + "properties": { + "Endpoint": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://.* \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Endpoint" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "McpTargetConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "OpenApiSchema", + "properties": { + "OpenApiSchema": { + "$ref": "#/definitions/ApiSchemaConfiguration" + } + }, + "required": [ + "OpenApiSchema" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "SmithyModel", + "properties": { + "SmithyModel": { + "$ref": "#/definitions/ApiSchemaConfiguration" + } + }, + "required": [ + "SmithyModel" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Lambda", + "properties": { + "Lambda": { + "$ref": "#/definitions/McpLambdaTargetConfiguration" + } + }, + "required": [ + "Lambda" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "McpServer", + "properties": { + "McpServer": { + "$ref": "#/definitions/McpServerTargetConfiguration" + } + }, + "required": [ + "McpServer" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "ApiGateway", + "properties": { + "ApiGateway": { + "$ref": "#/definitions/ApiGatewayTargetConfiguration" + } + }, + "required": [ + "ApiGateway" + ], + "additionalProperties": false + } + ] + }, + "OAuthCredentialProvider": { + "type": "object", + "properties": { + "ProviderArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "Scopes": { + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomParameters": { + "$ref": "#/definitions/OAuthCustomParameters" + }, + "GrantType": { + "$ref": "#/definitions/OAuthGrantType" + }, + "DefaultReturnUrl": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "description": "Return URL for OAuth callback.", + "markdownDescription": "Return URL for OAuth callback.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: \\w+:(\\/?\\/?)[^\\s]+ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ProviderArn", + "Scopes" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OAuthCustomParameters": { + "type": "object", + "maxProperties": 10, + "minProperties": 1, + "patternProperties": { + ".+": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OAuthGrantType": { + "type": "string", + "enum": [ + "AUTHORIZATION_CODE", + "CLIENT_CREDENTIALS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: AUTHORIZATION_CODE | CLIENT_CREDENTIALS \nUpdate requires: No interruption\n" + }, + "S3Configuration": { + "type": "object", + "properties": { + "Uri": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^s3://.{1,2043}$ \nUpdate requires: No interruption\n" + }, + "BucketOwnerAccountId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaDefinition": { + "type": "object", + "properties": { + "Type": { + "$ref": "#/definitions/SchemaType" + }, + "Properties": { + "$ref": "#/definitions/SchemaProperties" + }, + "Required": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Items": { + "$ref": "#/definitions/SchemaDefinition" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaProperties": { + "type": "object", + "patternProperties": { + ".+": { + "$ref": "#/definitions/SchemaDefinition" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaType": { + "type": "string", + "enum": [ + "string", + "number", + "object", + "array", + "boolean", + "integer" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: string | number | object | array | boolean | integer \nUpdate requires: No interruption\n" + }, + "TargetConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "Mcp", + "properties": { + "Mcp": { + "$ref": "#/definitions/McpTargetConfiguration" + } + }, + "required": [ + "Mcp" + ], + "additionalProperties": false + } + ] + }, + "TargetStatus": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "UPDATE_UNSUCCESSFUL", + "DELETING", + "READY", + "FAILED", + "SYNCHRONIZING", + "SYNCHRONIZE_UNSUCCESSFUL" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | UPDATING | UPDATE_UNSUCCESSFUL | DELETING | READY | FAILED | SYNCHRONIZING | SYNCHRONIZE_UNSUCCESSFUL \nUpdate requires: No interruption\n" + }, + "ToolDefinition": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "InputSchema": { + "$ref": "#/definitions/SchemaDefinition" + }, + "OutputSchema": { + "$ref": "#/definitions/SchemaDefinition" + } + }, + "required": [ + "Description", + "InputSchema", + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolSchema": { + "oneOf": [ + { + "type": "object", + "title": "S3", + "properties": { + "S3": { + "$ref": "#/definitions/S3Configuration" + } + }, + "required": [ + "S3" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "InlinePayload", + "properties": { + "InlinePayload": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolDefinition" + } + } + }, + "required": [ + "InlinePayload" + ], + "additionalProperties": false + } + ] + }, + "MetadataConfiguration": { + "type": "object", + "properties": { + "AllowedRequestHeaders": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedQueryParameters": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedResponseHeaders": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CredentialProviderConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/CredentialProviderConfiguration" + }, + "maxItems": 1, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^([0-9a-z][-]?){1,100}-[0-9a-z]{10}$ \nUpdate requires: Replacement\n" + }, + "LastSynchronizedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "MetadataConfiguration": { + "$ref": "#/definitions/MetadataConfiguration" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^([0-9a-zA-Z][-]?){1,100}$ \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/TargetStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetConfiguration": { + "$ref": "#/definitions/TargetConfiguration" + }, + "TargetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "required": [ + "Name", + "TargetConfiguration" + ], + "createOnlyProperties": [ + "/properties/GatewayIdentifier" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/GatewayArn", + "/properties/LastSynchronizedAt", + "/properties/Status", + "/properties/StatusReasons", + "/properties/TargetId", + "/properties/UpdatedAt" + ], + "primaryIdentifier": [ + "/properties/GatewayIdentifier", + "/properties/TargetId" + ], + "handlers": { + "create": { + "permissions": [ + "apigateway:GET", + "bedrock-agentcore:CreateGatewayTarget", + "bedrock-agentcore:GetGatewayTarget", + "bedrock-agentcore:GetResourceOauth2Token", + "bedrock-agentcore:GetWorkloadAccessToken", + "bedrock-agentcore:SynchronizeGatewayTargets", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:ListGrants", + "s3:GetObject", + "secretsmanager:GetSecretValue" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetGatewayTarget" + ] + }, + "update": { + "permissions": [ + "apigateway:GET", + "bedrock-agentcore:GetGatewayTarget", + "bedrock-agentcore:GetResourceOauth2Token", + "bedrock-agentcore:GetWorkloadAccessToken", + "bedrock-agentcore:SynchronizeGatewayTargets", + "bedrock-agentcore:UpdateGatewayTarget", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:ListGrants", + "s3:GetObject", + "secretsmanager:GetSecretValue" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteGatewayTarget", + "bedrock-agentcore:GetGatewayTarget", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:ListGrants" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListGatewayTargets" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "cloudFormationSystemTags": false + }, + "attributes": { + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastSynchronizedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/TargetStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-memory.json b/server/schema/resources/aws-bedrockagentcore-memory.json new file mode 100644 index 00000000..89d33390 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-memory.json @@ -0,0 +1,1218 @@ +{ + "typeName": "AWS::BedrockAgentCore::Memory", + "description": "Resource Type definition for AWS::BedrockAgentCore::Memory", + "definitions": { + "Name": { + "type": "string", + "description": "Name of the Memory resource", + "markdownDescription": "Name of the Memory resource\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$ \nUpdate requires: No interruption\n" + }, + "MemoryArn": { + "type": "string", + "description": "ARN of the Memory resource", + "markdownDescription": "ARN of the Memory resource\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:memory/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "MemoryId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the Memory resource", + "markdownDescription": "Unique identifier for the Memory resource\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "description": "Description of the Memory resource", + "markdownDescription": "Description of the Memory resource\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "description": "ARN format", + "markdownDescription": "ARN format\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$ \nUpdate requires: No interruption\n" + }, + "MemoryStatus": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "FAILED", + "DELETING" + ], + "description": "Status of the Memory resource", + "markdownDescription": "Status of the Memory resource\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | FAILED | DELETING \nUpdate requires: No interruption\n" + }, + "SemanticMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM", + "EPISODIC" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM | EPISODIC \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM", + "EPISODIC" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM | EPISODIC \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM", + "EPISODIC" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM | EPISODIC \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + }, + "Configuration": { + "$ref": "#/definitions/CustomConfigurationInput" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM", + "EPISODIC" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM | EPISODIC \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EpisodicMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + }, + "ReflectionConfiguration": { + "$ref": "#/definitions/EpisodicReflectionConfigurationInput" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM", + "EPISODIC" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM | EPISODIC \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MemoryStrategy": { + "type": "object", + "properties": { + "SemanticMemoryStrategy": { + "$ref": "#/definitions/SemanticMemoryStrategy" + }, + "SummaryMemoryStrategy": { + "$ref": "#/definitions/SummaryMemoryStrategy" + }, + "UserPreferenceMemoryStrategy": { + "$ref": "#/definitions/UserPreferenceMemoryStrategy" + }, + "CustomMemoryStrategy": { + "$ref": "#/definitions/CustomMemoryStrategy" + }, + "EpisodicMemoryStrategy": { + "$ref": "#/definitions/EpisodicMemoryStrategy" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MemoryStrategies": { + "type": "array", + "items": { + "$ref": "#/definitions/MemoryStrategy" + }, + "insertionOrder": false, + "description": "List of memory strategies attached to this memory", + "markdownDescription": "List of memory strategies attached to this memory\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StrategyConfiguration": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "SEMANTIC_OVERRIDE", + "SUMMARY_OVERRIDE", + "USER_PREFERENCE_OVERRIDE", + "EPISODIC" + ], + "description": "Type of strategy configuration override", + "markdownDescription": "Type of strategy configuration override\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC_OVERRIDE | SUMMARY_OVERRIDE | USER_PREFERENCE_OVERRIDE | EPISODIC \nUpdate requires: No interruption\n" + }, + "Extraction": { + "$ref": "#/definitions/ExtractionConfiguration" + }, + "Consolidation": { + "$ref": "#/definitions/ConsolidationConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExtractionConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/CustomExtractionConfiguration" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomExtractionConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/SemanticExtractionOverride" + }, + { + "$ref": "#/definitions/UserPreferenceExtractionOverride" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticExtractionOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceExtractionOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConsolidationConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/CustomConsolidationConfiguration" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomConsolidationConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/SemanticConsolidationOverride" + }, + { + "$ref": "#/definitions/SummaryConsolidationOverride" + }, + { + "$ref": "#/definitions/UserPreferenceConsolidationOverride" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticConsolidationOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryConsolidationOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceConsolidationOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EpisodicReflectionConfigurationInput": { + "type": "object", + "properties": { + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Namespace": { + "type": "string", + "description": "Namespace for the memory strategy", + "markdownDescription": "Namespace for the memory strategy\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9\\-_/]*(\\{(actorId|sessionId|memoryStrategyId)\\}[a-zA-Z0-9\\-_/]*)*$ \nUpdate requires: No interruption\n" + }, + "NamespacesList": { + "type": "array", + "items": { + "$ref": "#/definitions/Namespace" + }, + "minItems": 1, + "insertionOrder": false, + "description": "List of namespaces for memory strategy", + "markdownDescription": "List of namespaces for memory strategy\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Prompt": { + "type": "string", + "minLength": 1, + "maxLength": 30000, + "description": "Text prompt for model instructions", + "markdownDescription": "Text prompt for model instructions\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30000 \nUpdate requires: No interruption\n" + }, + "CustomConfigurationInput": { + "type": "object", + "properties": { + "SemanticOverride": { + "$ref": "#/definitions/SemanticOverride" + }, + "SummaryOverride": { + "$ref": "#/definitions/SummaryOverride" + }, + "UserPreferenceOverride": { + "$ref": "#/definitions/UserPreferenceOverride" + }, + "SelfManagedConfiguration": { + "$ref": "#/definitions/SelfManagedConfiguration" + }, + "EpisodicOverride": { + "$ref": "#/definitions/EpisodicOverride" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SelfManagedConfiguration": { + "type": "object", + "properties": { + "TriggerConditions": { + "$ref": "#/definitions/TriggerConditionList" + }, + "InvocationConfiguration": { + "$ref": "#/definitions/InvocationConfigurationInput" + }, + "HistoricalContextWindowSize": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TriggerConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/TriggerConditionInput" + }, + "additionalProperties": false, + "insertionOrder": false, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TriggerConditionInput": { + "type": "object", + "properties": { + "MessageBasedTrigger": { + "$ref": "#/definitions/MessageBasedTriggerInput" + }, + "TokenBasedTrigger": { + "$ref": "#/definitions/TokenBasedTriggerInput" + }, + "TimeBasedTrigger": { + "$ref": "#/definitions/TimeBasedTriggerInput" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MessageBasedTriggerInput": { + "type": "object", + "properties": { + "MessageCount": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TokenBasedTriggerInput": { + "type": "object", + "properties": { + "TokenCount": { + "type": "integer", + "minimum": 100, + "maximum": 500000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TimeBasedTriggerInput": { + "type": "object", + "properties": { + "IdleSessionTimeout": { + "type": "integer", + "minimum": 10, + "maximum": 3000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InvocationConfigurationInput": { + "type": "object", + "properties": { + "TopicArn": { + "$ref": "#/definitions/Arn" + }, + "PayloadDeliveryBucketName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticOverride": { + "type": "object", + "properties": { + "Extraction": { + "$ref": "#/definitions/SemanticOverrideExtractionConfigurationInput" + }, + "Consolidation": { + "$ref": "#/definitions/SemanticOverrideConsolidationConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticOverrideExtractionConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryOverride": { + "type": "object", + "properties": { + "Consolidation": { + "$ref": "#/definitions/SummaryOverrideConsolidationConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceOverride": { + "type": "object", + "properties": { + "Extraction": { + "$ref": "#/definitions/UserPreferenceOverrideExtractionConfigurationInput" + }, + "Consolidation": { + "$ref": "#/definitions/UserPreferenceOverrideConsolidationConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceOverrideExtractionConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EpisodicOverride": { + "type": "object", + "properties": { + "Extraction": { + "$ref": "#/definitions/EpisodicOverrideExtractionConfigurationInput" + }, + "Consolidation": { + "$ref": "#/definitions/EpisodicOverrideConsolidationConfigurationInput" + }, + "Reflection": { + "$ref": "#/definitions/EpisodicOverrideReflectionConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EpisodicOverrideExtractionConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EpisodicOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EpisodicOverrideReflectionConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "NamespaceTemplates": { + "$ref": "#/definitions/NamespacesList" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ContentConfiguration": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "MEMORY_RECORDS" + ], + "description": "The type of content to deliver", + "markdownDescription": "The type of content to deliver\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: MEMORY_RECORDS \nUpdate requires: No interruption\n" + }, + "Level": { + "type": "string", + "enum": [ + "METADATA_ONLY", + "FULL_CONTENT" + ], + "description": "The level of content detail to deliver", + "markdownDescription": "The level of content detail to deliver\n\n---\n\nRequired: No \nType: String \nAllowed Values: METADATA_ONLY | FULL_CONTENT \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KinesisResource": { + "type": "object", + "properties": { + "DataStreamArn": { + "$ref": "#/definitions/Arn" + }, + "ContentConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentConfiguration" + }, + "minItems": 1, + "maxItems": 1, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DataStreamArn", + "ContentConfigurations" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StreamDeliveryResource": { + "type": "object", + "properties": { + "Kinesis": { + "$ref": "#/definitions/KinesisResource" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StreamDeliveryResources": { + "type": "object", + "properties": { + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/StreamDeliveryResource" + }, + "maxItems": 1, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Resources" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "maxProperties": 50, + "minProperties": 0, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]{1,128}$": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "description": "Value of a tag", + "markdownDescription": "Value of a tag\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A map of tag keys and values\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/Arn" + }, + "MemoryExecutionRoleArn": { + "$ref": "#/definitions/Arn" + }, + "EventExpiryDuration": { + "type": "integer", + "minimum": 3, + "maximum": 365, + "description": "Duration in days until memory events expire", + "markdownDescription": "Duration in days until memory events expire\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "MemoryArn": { + "$ref": "#/definitions/MemoryArn" + }, + "MemoryId": { + "$ref": "#/definitions/MemoryId" + }, + "Status": { + "$ref": "#/definitions/MemoryStatus" + }, + "FailureReason": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "MemoryStrategies": { + "$ref": "#/definitions/MemoryStrategies" + }, + "StreamDeliveryResources": { + "$ref": "#/definitions/StreamDeliveryResources" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "required": [ + "Name", + "EventExpiryDuration" + ], + "primaryIdentifier": [ + "/properties/MemoryArn" + ], + "additionalIdentifiers": [ + [ + "/properties/MemoryId" + ] + ], + "readOnlyProperties": [ + "/properties/MemoryArn", + "/properties/MemoryId", + "/properties/Status", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/FailureReason", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/Status", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/Type", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/Status", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/Type", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/Status", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/Type", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/Status", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/Type", + "/properties/MemoryStrategies/*/EpisodicMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/EpisodicMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/EpisodicMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/EpisodicMemoryStrategy/Status", + "/properties/MemoryStrategies/*/EpisodicMemoryStrategy/Type" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/EncryptionKeyArn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateMemory", + "bedrock-agentcore:GetMemory", + "iam:PassRole", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptTo", + "kms:ReEncryptFrom", + "kms:GenerateDataKey", + "bedrock-agentcore:TagResource" + ], + "timeoutInMinutes": 45 + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetMemory", + "bedrock-agentcore:ListTagsForResource", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateMemory", + "bedrock-agentcore:GetMemory", + "iam:PassRole", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptTo", + "kms:ReEncryptFrom", + "kms:GenerateDataKey" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteMemory", + "bedrock-agentcore:GetMemory", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListMemories" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "MemoryArn": { + "$ref": "#/definitions/MemoryArn" + }, + "MemoryId": { + "$ref": "#/definitions/MemoryId" + }, + "Status": { + "$ref": "#/definitions/MemoryStatus" + }, + "FailureReason": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-oauth2credentialprovider.json b/server/schema/resources/aws-bedrockagentcore-oauth2credentialprovider.json new file mode 100644 index 00000000..00adc1cd --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-oauth2credentialprovider.json @@ -0,0 +1,591 @@ +{ + "typeName": "AWS::BedrockAgentCore::OAuth2CredentialProvider", + "description": "Resource Type definition for AWS::BedrockAgentCore::OAuth2CredentialProvider", + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Oauth2AuthorizationServerMetadata": { + "type": "object", + "description": "Authorization server metadata for the OAuth2 provider", + "properties": { + "Issuer": { + "type": "string", + "description": "The issuer URL for the OAuth2 authorization server", + "markdownDescription": "The issuer URL for the OAuth2 authorization server\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AuthorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint URL", + "markdownDescription": "The authorization endpoint URL\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "TokenEndpoint": { + "type": "string", + "description": "The token endpoint URL", + "markdownDescription": "The token endpoint URL\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ResponseTypes": { + "type": "array", + "description": "The supported response types", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "The supported response types\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Issuer", + "AuthorizationEndpoint", + "TokenEndpoint" + ], + "additionalProperties": false, + "markdownDescription": "Authorization server metadata for the OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Oauth2Discovery": { + "type": "object", + "description": "Discovery information for an OAuth2 provider", + "properties": { + "DiscoveryUrl": { + "type": "string", + "description": "The discovery URL for the OAuth2 provider", + "markdownDescription": "The discovery URL for the OAuth2 provider\n\n---\n\nRequired: No \nType: String \nPattern: ^.+/\\.well-known/openid-configuration$ \nUpdate requires: No interruption\n" + }, + "AuthorizationServerMetadata": { + "$ref": "#/definitions/Oauth2AuthorizationServerMetadata" + } + }, + "additionalProperties": false, + "markdownDescription": "Discovery information for an OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a custom OAuth2 provider", + "properties": { + "OauthDiscovery": { + "$ref": "#/definitions/Oauth2Discovery" + }, + "ClientId": { + "type": "string", + "description": "The client ID for the custom OAuth2 provider", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The client ID for the custom OAuth2 provider\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "description": "The client secret for the custom OAuth2 provider", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The client secret for the custom OAuth2 provider\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OauthDiscovery", + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a custom OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GoogleOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a Google OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a Google OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GithubOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a GitHub OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a GitHub OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SlackOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a Slack OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a Slack OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SalesforceOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a Salesforce OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a Salesforce OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MicrosoftOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a Microsoft OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "TenantId": { + "type": "string", + "description": "The Microsoft Entra ID tenant ID", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The Microsoft Entra ID tenant ID\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a Microsoft OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AtlassianOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for an Atlassian OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for an Atlassian OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkedinOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a LinkedIn OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a LinkedIn OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IncludedOauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for a supported non-custom OAuth2 provider", + "properties": { + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "Issuer": { + "type": "string", + "description": "Token issuer of your isolated OAuth2 application tenant", + "markdownDescription": "Token issuer of your isolated OAuth2 application tenant\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AuthorizationEndpoint": { + "type": "string", + "description": "OAuth2 authorization endpoint for your isolated OAuth2 application tenant", + "markdownDescription": "OAuth2 authorization endpoint for your isolated OAuth2 application tenant\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TokenEndpoint": { + "type": "string", + "description": "OAuth2 token endpoint for your isolated OAuth2 application tenant", + "markdownDescription": "OAuth2 token endpoint for your isolated OAuth2 application tenant\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "Input configuration for a supported non-custom OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Oauth2ProviderConfigInput": { + "type": "object", + "description": "Input configuration for an OAuth2 provider", + "properties": { + "CustomOauth2ProviderConfig": { + "$ref": "#/definitions/CustomOauth2ProviderConfigInput" + }, + "GoogleOauth2ProviderConfig": { + "$ref": "#/definitions/GoogleOauth2ProviderConfigInput" + }, + "GithubOauth2ProviderConfig": { + "$ref": "#/definitions/GithubOauth2ProviderConfigInput" + }, + "SlackOauth2ProviderConfig": { + "$ref": "#/definitions/SlackOauth2ProviderConfigInput" + }, + "SalesforceOauth2ProviderConfig": { + "$ref": "#/definitions/SalesforceOauth2ProviderConfigInput" + }, + "MicrosoftOauth2ProviderConfig": { + "$ref": "#/definitions/MicrosoftOauth2ProviderConfigInput" + }, + "AtlassianOauth2ProviderConfig": { + "$ref": "#/definitions/AtlassianOauth2ProviderConfigInput" + }, + "LinkedinOauth2ProviderConfig": { + "$ref": "#/definitions/LinkedinOauth2ProviderConfigInput" + }, + "IncludedOauth2ProviderConfig": { + "$ref": "#/definitions/IncludedOauth2ProviderConfigInput" + } + }, + "additionalProperties": false, + "markdownDescription": "Input configuration for an OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Oauth2ProviderConfigOutput": { + "type": "object", + "description": "Output configuration for an OAuth2 provider", + "properties": { + "OauthDiscovery": { + "$ref": "#/definitions/Oauth2Discovery" + }, + "ClientId": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Output configuration for an OAuth2 provider\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClientSecretArn": { + "type": "object", + "description": "Contains information about a secret in AWS Secrets Manager", + "properties": { + "SecretArn": { + "type": "string", + "description": "The ARN of the secret in AWS Secrets Manager", + "markdownDescription": "The ARN of the secret in AWS Secrets Manager\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov):secretsmanager:[A-Za-z0-9-]{1,64}:[0-9]{12}:secret:[a-zA-Z0-9-_/+=.@!]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn" + ], + "additionalProperties": false, + "markdownDescription": "Contains information about a secret in AWS Secrets Manager\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "type": "string", + "description": "The name of the OAuth2 credential provider", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The name of the OAuth2 credential provider\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9\\-_]+$ \nUpdate requires: Replacement\n" + }, + "CredentialProviderVendor": { + "type": "string", + "description": "The vendor of the OAuth2 credential provider", + "enum": [ + "GoogleOauth2", + "GithubOauth2", + "SlackOauth2", + "SalesforceOauth2", + "MicrosoftOauth2", + "CustomOauth2", + "AtlassianOauth2", + "LinkedinOauth2", + "XOauth2", + "OktaOauth2", + "OneLoginOauth2", + "PingOneOauth2", + "FacebookOauth2", + "YandexOauth2", + "RedditOauth2", + "ZoomOauth2", + "TwitchOauth2", + "SpotifyOauth2", + "DropboxOauth2", + "NotionOauth2", + "HubspotOauth2", + "CyberArkOauth2", + "FusionAuthOauth2", + "Auth0Oauth2", + "CognitoOauth2" + ], + "markdownDescription": "The vendor of the OAuth2 credential provider\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: GoogleOauth2 | GithubOauth2 | SlackOauth2 | SalesforceOauth2 | MicrosoftOauth2 | CustomOauth2 | AtlassianOauth2 | LinkedinOauth2 | XOauth2 | OktaOauth2 | OneLoginOauth2 | PingOneOauth2 | FacebookOauth2 | YandexOauth2 | RedditOauth2 | ZoomOauth2 | TwitchOauth2 | SpotifyOauth2 | DropboxOauth2 | NotionOauth2 | HubspotOauth2 | CyberArkOauth2 | FusionAuthOauth2 | Auth0Oauth2 | CognitoOauth2 \nUpdate requires: Replacement\n" + }, + "Oauth2ProviderConfigInput": { + "$ref": "#/definitions/Oauth2ProviderConfigInput", + "description": "The configuration settings for the OAuth2 provider", + "markdownDescription": "The configuration settings for the OAuth2 provider\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "CredentialProviderArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the OAuth2 credential provider", + "markdownDescription": "The Amazon Resource Name (ARN) of the OAuth2 credential provider\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov):bedrock-agentcore:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/oauth2credentialprovider/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientSecretArn": { + "$ref": "#/definitions/ClientSecretArn", + "description": "The ARN of the client secret in AWS Secrets Manager", + "markdownDescription": "The ARN of the client secret in AWS Secrets Manager\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CallbackUrl": { + "type": "string", + "description": "The callback URL for the OAuth2 authorization flow", + "markdownDescription": "The callback URL for the OAuth2 authorization flow\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Oauth2ProviderConfigOutput": { + "$ref": "#/definitions/Oauth2ProviderConfigOutput", + "description": "The output configuration for the OAuth2 provider", + "markdownDescription": "The output configuration for the OAuth2 provider\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was created", + "markdownDescription": "The timestamp when the credential provider was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was last updated", + "markdownDescription": "The timestamp when the credential provider was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "Tags to assign to the OAuth2 credential provider", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "insertionOrder": false, + "markdownDescription": "Tags to assign to the OAuth2 credential provider\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "CredentialProviderVendor" + ], + "readOnlyProperties": [ + "/properties/CredentialProviderArn", + "/properties/ClientSecretArn", + "/properties/CallbackUrl", + "/properties/Oauth2ProviderConfigOutput", + "/properties/CreatedTime", + "/properties/LastUpdatedTime" + ], + "writeOnlyProperties": [ + "/properties/Oauth2ProviderConfigInput" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/CredentialProviderVendor" + ], + "primaryIdentifier": [ + "/properties/CredentialProviderArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateOauth2CredentialProvider", + "bedrock-agentcore:GetOauth2CredentialProvider", + "bedrock-agentcore:CreateTokenVault", + "bedrock-agentcore:TagResource", + "secretsmanager:CreateSecret" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetOauth2CredentialProvider", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateOauth2CredentialProvider", + "bedrock-agentcore:GetOauth2CredentialProvider", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource", + "secretsmanager:PutSecretValue" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteOauth2CredentialProvider", + "bedrock-agentcore:GetOauth2CredentialProvider", + "secretsmanager:DeleteSecret" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListOauth2CredentialProviders" + ] + } + }, + "attributes": { + "CredentialProviderArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the OAuth2 credential provider", + "markdownDescription": "The Amazon Resource Name (ARN) of the OAuth2 credential provider\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov):bedrock-agentcore:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/oauth2credentialprovider/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientSecretArn": { + "$ref": "#/definitions/ClientSecretArn", + "description": "The ARN of the client secret in AWS Secrets Manager", + "markdownDescription": "The ARN of the client secret in AWS Secrets Manager\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CallbackUrl": { + "type": "string", + "description": "The callback URL for the OAuth2 authorization flow", + "markdownDescription": "The callback URL for the OAuth2 authorization flow\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Oauth2ProviderConfigOutput": { + "$ref": "#/definitions/Oauth2ProviderConfigOutput", + "description": "The output configuration for the OAuth2 provider", + "markdownDescription": "The output configuration for the OAuth2 provider\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was created", + "markdownDescription": "The timestamp when the credential provider was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the credential provider was last updated", + "markdownDescription": "The timestamp when the credential provider was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-onlineevaluationconfig.json b/server/schema/resources/aws-bedrockagentcore-onlineevaluationconfig.json new file mode 100644 index 00000000..944ed149 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-onlineevaluationconfig.json @@ -0,0 +1,476 @@ +{ + "typeName": "AWS::BedrockAgentCore::OnlineEvaluationConfig", + "description": "Resource Type definition for AWS::BedrockAgentCore::OnlineEvaluationConfig - Creates an online evaluation configuration for continuous monitoring of agent performance.", + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OnlineEvaluationConfigStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "CREATING", + "CREATE_FAILED", + "UPDATING", + "UPDATE_FAILED", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | CREATING | CREATE_FAILED | UPDATING | UPDATE_FAILED | DELETING \nUpdate requires: No interruption\n" + }, + "ExecutionStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "DataSourceConfig": { + "type": "object", + "description": "The configuration that specifies where to read agent traces for online evaluation.", + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/CloudWatchLogsInputConfig" + } + }, + "required": [ + "CloudWatchLogs" + ], + "additionalProperties": false, + "markdownDescription": "The configuration that specifies where to read agent traces for online evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudWatchLogsInputConfig": { + "type": "object", + "description": "The configuration for reading agent traces from CloudWatch logs.", + "properties": { + "LogGroupNames": { + "type": "array", + "description": "The list of CloudWatch log group names to monitor for agent traces.", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[.\\-_/#A-Za-z0-9]+$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 5, + "insertionOrder": false, + "markdownDescription": "The list of CloudWatch log group names to monitor for agent traces.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ServiceNames": { + "type": "array", + "description": "The list of service names to filter traces within the specified log groups.", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9._-]+$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 1, + "insertionOrder": false, + "markdownDescription": "The list of service names to filter traces within the specified log groups.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LogGroupNames", + "ServiceNames" + ], + "additionalProperties": false, + "markdownDescription": "The configuration for reading agent traces from CloudWatch logs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluatorReference": { + "type": "object", + "description": "The reference to an evaluator used in online evaluation configurations.", + "properties": { + "EvaluatorId": { + "type": "string", + "description": "The unique identifier of the evaluator.", + "markdownDescription": "The unique identifier of the evaluator.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(Builtin\\.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EvaluatorId" + ], + "additionalProperties": false, + "markdownDescription": "The reference to an evaluator used in online evaluation configurations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Rule": { + "type": "object", + "description": "The evaluation rule that defines sampling configuration, filtering criteria, and session detection settings.", + "properties": { + "SamplingConfig": { + "$ref": "#/definitions/SamplingConfig" + }, + "Filters": { + "type": "array", + "description": "The list of filters that determine which agent traces should be included in the evaluation.", + "items": { + "$ref": "#/definitions/Filter" + }, + "minItems": 0, + "maxItems": 5, + "insertionOrder": false, + "markdownDescription": "The list of filters that determine which agent traces should be included in the evaluation.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SessionConfig": { + "$ref": "#/definitions/SessionConfig" + } + }, + "required": [ + "SamplingConfig" + ], + "additionalProperties": false, + "markdownDescription": "The evaluation rule that defines sampling configuration, filtering criteria, and session detection settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SamplingConfig": { + "type": "object", + "description": "The configuration that controls what percentage of agent traces are sampled for evaluation.", + "properties": { + "SamplingPercentage": { + "type": "number", + "description": "The percentage of agent traces to sample for evaluation.", + "minimum": 0.01, + "maximum": 100, + "markdownDescription": "The percentage of agent traces to sample for evaluation.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SamplingPercentage" + ], + "additionalProperties": false, + "markdownDescription": "The configuration that controls what percentage of agent traces are sampled for evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Filter": { + "type": "object", + "description": "The filter that applies conditions to agent traces during online evaluation.", + "properties": { + "Key": { + "type": "string", + "description": "The key or field name to filter on within the agent trace data.", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The key or field name to filter on within the agent trace data.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9._-]+$ \nUpdate requires: No interruption\n" + }, + "Operator": { + "type": "string", + "description": "The comparison operator to use for filtering.", + "enum": [ + "Equals", + "NotEquals", + "GreaterThan", + "LessThan", + "GreaterThanOrEqual", + "LessThanOrEqual", + "Contains", + "NotContains" + ], + "markdownDescription": "The comparison operator to use for filtering.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Equals | NotEquals | GreaterThan | LessThan | GreaterThanOrEqual | LessThanOrEqual | Contains | NotContains \nUpdate requires: No interruption\n" + }, + "Value": { + "$ref": "#/definitions/FilterValue" + } + }, + "required": [ + "Key", + "Operator", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "The filter that applies conditions to agent traces during online evaluation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FilterValue": { + "type": "object", + "description": "The value used in filter comparisons.", + "properties": { + "StringValue": { + "type": "string", + "description": "The string value for text-based filtering.", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The string value for text-based filtering.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "DoubleValue": { + "type": "number", + "description": "The numeric value for numerical filtering.", + "markdownDescription": "The numeric value for numerical filtering.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "BooleanValue": { + "type": "boolean", + "description": "The boolean value for true/false filtering conditions.", + "markdownDescription": "The boolean value for true/false filtering conditions.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The value used in filter comparisons.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SessionConfig": { + "type": "object", + "description": "The configuration that defines how agent sessions are detected.", + "properties": { + "SessionTimeoutMinutes": { + "type": "integer", + "description": "The number of minutes of inactivity after which an agent session is considered complete.", + "minimum": 1, + "maximum": 1440, + "markdownDescription": "The number of minutes of inactivity after which an agent session is considered complete.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SessionTimeoutMinutes" + ], + "additionalProperties": false, + "markdownDescription": "The configuration that defines how agent sessions are detected.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OutputConfig": { + "type": "object", + "description": "The configuration that specifies where evaluation results should be written.", + "properties": { + "CloudWatchConfig": { + "$ref": "#/definitions/CloudWatchOutputConfig" + } + }, + "additionalProperties": false, + "markdownDescription": "The configuration that specifies where evaluation results should be written.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudWatchOutputConfig": { + "type": "object", + "description": "The CloudWatch configuration for writing evaluation results.", + "properties": { + "LogGroupName": { + "type": "string", + "description": "The CloudWatch log group name for evaluation results.", + "markdownDescription": "The CloudWatch log group name for evaluation results.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The CloudWatch configuration for writing evaluation results.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "OnlineEvaluationConfigId": { + "type": "string", + "description": "The unique identifier of the online evaluation configuration.", + "markdownDescription": "The unique identifier of the online evaluation configuration.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OnlineEvaluationConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the online evaluation configuration.", + "markdownDescription": "The Amazon Resource Name (ARN) of the online evaluation configuration.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:online-evaluation-config/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OnlineEvaluationConfigName": { + "type": "string", + "description": "The name of the online evaluation configuration. Must be unique within your account.", + "markdownDescription": "The name of the online evaluation configuration. Must be unique within your account.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$ \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "description": "The description of the online evaluation configuration.", + "minLength": 1, + "maxLength": 200, + "markdownDescription": "The description of the online evaluation configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "DataSourceConfig": { + "$ref": "#/definitions/DataSourceConfig", + "description": "The data source configuration that specifies CloudWatch log groups and service names to monitor.", + "markdownDescription": "The data source configuration that specifies CloudWatch log groups and service names to monitor.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "EvaluationExecutionRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the IAM role that grants permissions for evaluation.", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role that grants permissions for evaluation.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$ \nUpdate requires: No interruption\n" + }, + "Evaluators": { + "type": "array", + "description": "The list of evaluators to apply during online evaluation.", + "items": { + "$ref": "#/definitions/EvaluatorReference" + }, + "minItems": 1, + "maxItems": 10, + "insertionOrder": false, + "markdownDescription": "The list of evaluators to apply during online evaluation.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Rule": { + "$ref": "#/definitions/Rule", + "description": "The evaluation rule that defines sampling configuration, filters, and session detection settings.", + "markdownDescription": "The evaluation rule that defines sampling configuration, filters, and session detection settings.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/OnlineEvaluationConfigStatus", + "description": "The status of the online evaluation configuration.", + "markdownDescription": "The status of the online evaluation configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ExecutionStatus": { + "$ref": "#/definitions/ExecutionStatus", + "description": "The execution status indicating whether the online evaluation is currently running.", + "markdownDescription": "The execution status indicating whether the online evaluation is currently running.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "OutputConfig": { + "$ref": "#/definitions/OutputConfig", + "description": "The configuration that specifies where evaluation results should be written.", + "markdownDescription": "The configuration that specifies where evaluation results should be written.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the online evaluation configuration was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the online evaluation configuration was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "The timestamp when the online evaluation configuration was last updated.", + "format": "date-time", + "markdownDescription": "The timestamp when the online evaluation configuration was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "A list of tags to assign to the online evaluation configuration.", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to assign to the online evaluation configuration.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "OnlineEvaluationConfigName", + "DataSourceConfig", + "EvaluationExecutionRoleArn", + "Evaluators", + "Rule" + ], + "readOnlyProperties": [ + "/properties/OnlineEvaluationConfigId", + "/properties/OnlineEvaluationConfigArn", + "/properties/Status", + "/properties/OutputConfig", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "createOnlyProperties": [ + "/properties/OnlineEvaluationConfigName" + ], + "primaryIdentifier": [ + "/properties/OnlineEvaluationConfigArn" + ], + "additionalIdentifiers": [ + [ + "/properties/OnlineEvaluationConfigId" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateOnlineEvaluationConfig", + "bedrock-agentcore:GetOnlineEvaluationConfig", + "bedrock-agentcore:TagResource", + "iam:PassRole", + "lambda:GetFunction", + "lambda:InvokeFunction", + "logs:DescribeLogGroups", + "logs:DescribeIndexPolicies", + "logs:PutIndexPolicy" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetOnlineEvaluationConfig", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateOnlineEvaluationConfig", + "bedrock-agentcore:GetOnlineEvaluationConfig", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "iam:PassRole", + "lambda:GetFunction", + "lambda:InvokeFunction", + "logs:DescribeLogGroups", + "logs:DescribeIndexPolicies", + "logs:PutIndexPolicy" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteOnlineEvaluationConfig", + "bedrock-agentcore:GetOnlineEvaluationConfig" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListOnlineEvaluationConfigs" + ] + } + }, + "attributes": { + "OnlineEvaluationConfigId": { + "type": "string", + "description": "The unique identifier of the online evaluation configuration.", + "markdownDescription": "The unique identifier of the online evaluation configuration.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OnlineEvaluationConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the online evaluation configuration.", + "markdownDescription": "The Amazon Resource Name (ARN) of the online evaluation configuration.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:online-evaluation-config/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/OnlineEvaluationConfigStatus", + "description": "The status of the online evaluation configuration.", + "markdownDescription": "The status of the online evaluation configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OutputConfig": { + "$ref": "#/definitions/OutputConfig", + "description": "The configuration that specifies where evaluation results should be written.", + "markdownDescription": "The configuration that specifies where evaluation results should be written.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the online evaluation configuration was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the online evaluation configuration was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "The timestamp when the online evaluation configuration was last updated.", + "format": "date-time", + "markdownDescription": "The timestamp when the online evaluation configuration was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-policy.json b/server/schema/resources/aws-bedrockagentcore-policy.json new file mode 100644 index 00000000..171e955c --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-policy.json @@ -0,0 +1,255 @@ +{ + "typeName": "AWS::BedrockAgentCore::Policy", + "description": "Resource Type definition for AWS::BedrockAgentCore::Policy", + "definitions": { + "PolicyStatus": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "UPDATE_FAILED", + "DELETE_FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | UPDATE_FAILED | DELETE_FAILED \nUpdate requires: No interruption\n" + }, + "PolicyDefinition": { + "type": "object", + "description": "The definition structure for policies. Encapsulates different policy formats.", + "properties": { + "Cedar": { + "$ref": "#/definitions/CedarPolicy" + } + }, + "required": [ + "Cedar" + ], + "additionalProperties": false, + "markdownDescription": "The definition structure for policies. Encapsulates different policy formats.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CedarPolicy": { + "type": "object", + "description": "A Cedar policy statement within the AgentCore Policy system.", + "properties": { + "Statement": { + "type": "string", + "description": "The Cedar policy statement that defines the authorization logic.", + "minLength": 35, + "maxLength": 153600, + "markdownDescription": "The Cedar policy statement that defines the authorization logic.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 35 \nMaximum Length: 153600 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Statement" + ], + "additionalProperties": false, + "markdownDescription": "A Cedar policy statement within the AgentCore Policy system.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PolicyValidationMode": { + "type": "string", + "description": "The validation mode for the policy. Determines how Cedar analyzer validation results are handled.", + "enum": [ + "FAIL_ON_ANY_FINDINGS", + "IGNORE_ALL_FINDINGS" + ], + "markdownDescription": "The validation mode for the policy. Determines how Cedar analyzer validation results are handled.\n\n---\n\nRequired: No \nType: String \nAllowed Values: FAIL_ON_ANY_FINDINGS | IGNORE_ALL_FINDINGS \nUpdate requires: No interruption\n" + } + }, + "properties": { + "PolicyEngineId": { + "type": "string", + "description": "The identifier of the policy engine which contains this policy.", + "minLength": 12, + "maxLength": 59, + "markdownDescription": "The identifier of the policy engine which contains this policy.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 12 \nMaximum Length: 59 \nPattern: ^[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}$ \nUpdate requires: Replacement\n" + }, + "Name": { + "type": "string", + "description": "The customer-assigned immutable name for the policy. Must be unique within the policy engine.", + "minLength": 1, + "maxLength": 48, + "markdownDescription": "The customer-assigned immutable name for the policy. Must be unique within the policy engine.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 48 \nPattern: ^[A-Za-z][A-Za-z0-9_]*$ \nUpdate requires: Replacement\n" + }, + "Definition": { + "$ref": "#/definitions/PolicyDefinition" + }, + "Description": { + "type": "string", + "description": "A human-readable description of the policy's purpose and functionality.", + "minLength": 1, + "maxLength": 4096, + "markdownDescription": "A human-readable description of the policy's purpose and functionality.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 4096 \nUpdate requires: No interruption\n" + }, + "ValidationMode": { + "$ref": "#/definitions/PolicyValidationMode" + }, + "PolicyId": { + "type": "string", + "description": "The unique identifier for the policy.", + "minLength": 12, + "maxLength": 59, + "markdownDescription": "The unique identifier for the policy.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 59 \nPattern: ^[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the policy.", + "minLength": 96, + "maxLength": 203, + "markdownDescription": "The Amazon Resource Name (ARN) of the policy.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 96 \nMaximum Length: 203 \nPattern: ^arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy was created.", + "markdownDescription": "The timestamp when the policy was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy was last updated.", + "markdownDescription": "The timestamp when the policy was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/PolicyStatus", + "description": "The current status of the policy.", + "markdownDescription": "The current status of the policy.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "description": "Additional information about the policy status.", + "markdownDescription": "Additional information about the policy status.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "PolicyEngineId", + "Name", + "Definition" + ], + "readOnlyProperties": [ + "/properties/PolicyId", + "/properties/PolicyArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status", + "/properties/StatusReasons" + ], + "createOnlyProperties": [ + "/properties/PolicyEngineId", + "/properties/Name" + ], + "writeOnlyProperties": [ + "/properties/ValidationMode" + ], + "primaryIdentifier": [ + "/properties/PolicyArn" + ], + "additionalIdentifiers": [ + [ + "/properties/PolicyEngineId", + "/properties/PolicyId" + ] + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreatePolicy", + "bedrock-agentcore:GetPolicy", + "bedrock-agentcore:ManageAdminPolicy", + "bedrock-agentcore:ManageResourceScopedPolicy" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetPolicy" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdatePolicy", + "bedrock-agentcore:GetPolicy", + "bedrock-agentcore:ManageAdminPolicy", + "bedrock-agentcore:ManageResourceScopedPolicy" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeletePolicy", + "bedrock-agentcore:ManageAdminPolicy", + "bedrock-agentcore:ManageResourceScopedPolicy", + "bedrock-agentcore:GetPolicy" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListPolicies" + ], + "handlerSchema": { + "properties": { + "PolicyEngineId": { + "type": "string", + "minLength": 12, + "maxLength": 59, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 12 \nMaximum Length: 59 \nPattern: ^[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PolicyEngineId" + ] + } + } + }, + "attributes": { + "PolicyId": { + "type": "string", + "description": "The unique identifier for the policy.", + "minLength": 12, + "maxLength": 59, + "markdownDescription": "The unique identifier for the policy.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 59 \nPattern: ^[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the policy.", + "minLength": 96, + "maxLength": 203, + "markdownDescription": "The Amazon Resource Name (ARN) of the policy.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 96 \nMaximum Length: 203 \nPattern: ^arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy was created.", + "markdownDescription": "The timestamp when the policy was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy was last updated.", + "markdownDescription": "The timestamp when the policy was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/PolicyStatus", + "description": "The current status of the policy.", + "markdownDescription": "The current status of the policy.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "description": "Additional information about the policy status.", + "markdownDescription": "Additional information about the policy status.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-policyengine.json b/server/schema/resources/aws-bedrockagentcore-policyengine.json new file mode 100644 index 00000000..04bc6695 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-policyengine.json @@ -0,0 +1,240 @@ +{ + "typeName": "AWS::BedrockAgentCore::PolicyEngine", + "description": "Resource Type definition for AWS::BedrockAgentCore::PolicyEngine", + "definitions": { + "PolicyEngineStatus": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "UPDATE_FAILED", + "DELETE_FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | UPDATE_FAILED | DELETE_FAILED \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "PolicyEngineId": { + "type": "string", + "description": "The unique identifier for the policy engine", + "minLength": 12, + "maxLength": 59, + "markdownDescription": "The unique identifier for the policy engine\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 59 \nPattern: ^[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "The customer-assigned immutable name for the policy engine", + "minLength": 1, + "maxLength": 48, + "markdownDescription": "The customer-assigned immutable name for the policy engine\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 48 \nPattern: ^[A-Za-z][A-Za-z0-9_]*$ \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "description": "A human-readable description of the policy engine's purpose and scope", + "minLength": 1, + "maxLength": 4096, + "markdownDescription": "A human-readable description of the policy engine's purpose and scope\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 4096 \nUpdate requires: No interruption\n" + }, + "EncryptionKeyArn": { + "type": "string", + "description": "The ARN of the KMS key used to encrypt the policy engine data", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The ARN of the KMS key used to encrypt the policy engine data\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: Replacement\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy engine was created", + "markdownDescription": "The timestamp when the policy engine was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy engine was last updated", + "markdownDescription": "The timestamp when the policy engine was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyEngineArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the policy engine", + "minLength": 76, + "maxLength": 136, + "markdownDescription": "The Amazon Resource Name (ARN) of the policy engine\n\n---\n\nRequired: No \nType: String \nMinimum Length: 76 \nMaximum Length: 136 \nPattern: ^arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/PolicyEngineStatus", + "description": "The current status of the policy engine", + "markdownDescription": "The current status of the policy engine\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "description": "Additional information about the policy engine status", + "markdownDescription": "Additional information about the policy engine status\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "A list of tags to assign to the policy engine.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "insertionOrder": false, + "markdownDescription": "A list of tags to assign to the policy engine.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/PolicyEngineId", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/PolicyEngineArn", + "/properties/Status", + "/properties/StatusReasons" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/EncryptionKeyArn" + ], + "primaryIdentifier": [ + "/properties/PolicyEngineArn" + ], + "additionalIdentifiers": [ + [ + "/properties/PolicyEngineId" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreatePolicyEngine", + "bedrock-agentcore:GetPolicyEngine", + "bedrock-agentcore:TagResource", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:CreateGrant", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetPolicyEngine", + "bedrock-agentcore:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdatePolicyEngine", + "bedrock-agentcore:GetPolicyEngine", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource", + "kms:Decrypt", + "kms:GenerateDataKey" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeletePolicyEngine", + "bedrock-agentcore:GetPolicyEngine", + "kms:Decrypt", + "kms:GenerateDataKey" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListPolicyEngines", + "kms:Decrypt" + ] + } + }, + "attributes": { + "PolicyEngineId": { + "type": "string", + "description": "The unique identifier for the policy engine", + "minLength": 12, + "maxLength": 59, + "markdownDescription": "The unique identifier for the policy engine\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 59 \nPattern: ^[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy engine was created", + "markdownDescription": "The timestamp when the policy engine was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the policy engine was last updated", + "markdownDescription": "The timestamp when the policy engine was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyEngineArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the policy engine", + "minLength": 76, + "maxLength": 136, + "markdownDescription": "The Amazon Resource Name (ARN) of the policy engine\n\n---\n\nRequired: No \nType: String \nMinimum Length: 76 \nMaximum Length: 136 \nPattern: ^arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/PolicyEngineStatus", + "description": "The current status of the policy engine", + "markdownDescription": "The current status of the policy engine\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "description": "Additional information about the policy engine status", + "markdownDescription": "Additional information about the policy engine status\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-runtime.json b/server/schema/resources/aws-bedrockagentcore-runtime.json index d59322ad..ef8606fe 100644 --- a/server/schema/resources/aws-bedrockagentcore-runtime.json +++ b/server/schema/resources/aws-bedrockagentcore-runtime.json @@ -6,7 +6,7 @@ "AgentRuntimeArn": { "type": "string", "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agent/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}:([0-9]{0,4}[1-9][0-9]{0,4}) \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" }, "AgentRuntimeId": { "type": "string", @@ -59,6 +59,9 @@ "properties": { "NetworkMode": { "$ref": "#/definitions/NetworkMode" + }, + "NetworkModeConfig": { + "$ref": "#/definitions/VpcConfig" } }, "required": [ @@ -71,17 +74,70 @@ "type": "string", "description": "Network mode configuration type", "enum": [ - "PUBLIC" + "PUBLIC", + "VPC" ], - "markdownDescription": "Network mode configuration type\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC \nUpdate requires: No interruption\n" + "markdownDescription": "Network mode configuration type\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | VPC \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "type": "object", + "description": "Network mode configuration for VPC", + "properties": { + "SecurityGroups": { + "$ref": "#/definitions/SecurityGroups" + }, + "Subnets": { + "$ref": "#/definitions/Subnets" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "additionalProperties": false, + "markdownDescription": "Network mode configuration for VPC\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecurityGroups": { + "type": "array", + "description": "Security groups for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "Security groups for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupId": { + "type": "string", + "description": "Security group id", + "markdownDescription": "Security group id\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "Subnets for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "Subnets for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "description": "Subnet id", + "markdownDescription": "Subnet id\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" }, "ProtocolConfiguration": { "type": "string", "enum": [ "MCP", - "HTTP" + "HTTP", + "A2A", + "AGUI" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MCP | HTTP \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MCP | HTTP | A2A | AGUI \nUpdate requires: No interruption\n" }, "AuthorizerConfiguration": { "type": "object", @@ -106,6 +162,12 @@ }, "AllowedClients": { "$ref": "#/definitions/AllowedClientsList" + }, + "AllowedScopes": { + "$ref": "#/definitions/AllowedScopesList" + }, + "CustomClaims": { + "$ref": "#/definitions/CustomClaimsList" } }, "required": [ @@ -149,6 +211,125 @@ "description": "Allowed client value", "markdownDescription": "Allowed client value\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "AllowedScopesList": { + "type": "array", + "description": "List of allowed scopes", + "minItems": 1, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedScope" + }, + "markdownDescription": "List of allowed scopes\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedScope": { + "type": "string", + "description": "Allowed scope value", + "markdownDescription": "Allowed scope value\n\n---\n\nRequired: No \nType: String \nPattern: [\\x21\\x23-\\x5B\\x5D-\\x7E]+ \nUpdate requires: No interruption\n" + }, + "CustomClaimsList": { + "type": "array", + "description": "List of required custom claims", + "minItems": 1, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomClaimValidationType" + }, + "markdownDescription": "List of required custom claims\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomClaimValidationType": { + "type": "object", + "description": "Required custom claim", + "properties": { + "AuthorizingClaimMatchValue": { + "$ref": "#/definitions/AuthorizingClaimMatchValueType" + }, + "InboundTokenClaimName": { + "$ref": "#/definitions/InboundTokenClaimName" + }, + "InboundTokenClaimValueType": { + "$ref": "#/definitions/InboundTokenClaimValueType" + } + }, + "required": [ + "AuthorizingClaimMatchValue", + "InboundTokenClaimName", + "InboundTokenClaimValueType" + ], + "additionalProperties": false, + "markdownDescription": "Required custom claim\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InboundTokenClaimName": { + "type": "string", + "description": "The name of the custom claim to validate", + "markdownDescription": "The name of the custom claim to validate\n\n---\n\nRequired: No \nType: String \nPattern: [A-Za-z0-9_.-:]+ \nUpdate requires: No interruption\n" + }, + "InboundTokenClaimValueType": { + "type": "string", + "description": "Token claim data type", + "enum": [ + "STRING", + "STRING_ARRAY" + ], + "markdownDescription": "Token claim data type\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | STRING_ARRAY \nUpdate requires: No interruption\n" + }, + "AuthorizingClaimMatchValueType": { + "type": "object", + "description": "The value or values in the custom claim to match and relationship of match", + "properties": { + "ClaimMatchOperator": { + "$ref": "#/definitions/ClaimMatchOperator" + }, + "ClaimMatchValue": { + "$ref": "#/definitions/ClaimMatchValueType" + } + }, + "required": [ + "ClaimMatchOperator", + "ClaimMatchValue" + ], + "additionalProperties": false, + "markdownDescription": "The value or values in the custom claim to match and relationship of match\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClaimMatchOperator": { + "type": "string", + "description": "The relationship between the claim field value and the value or values being matched", + "enum": [ + "EQUALS", + "CONTAINS", + "CONTAINS_ANY" + ], + "markdownDescription": "The relationship between the claim field value and the value or values being matched\n\n---\n\nRequired: No \nType: String \nAllowed Values: EQUALS | CONTAINS | CONTAINS_ANY \nUpdate requires: No interruption\n" + }, + "ClaimMatchValueType": { + "type": "object", + "description": "The value or values in the custom claim to match for", + "properties": { + "MatchValueString": { + "$ref": "#/definitions/MatchValueString" + }, + "MatchValueStringList": { + "$ref": "#/definitions/MatchValueStringList" + } + }, + "additionalProperties": false, + "markdownDescription": "The value or values in the custom claim to match for\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MatchValueString": { + "type": "string", + "description": "The string value to match for", + "markdownDescription": "The string value to match for\n\n---\n\nRequired: No \nType: String \nPattern: [A-Za-z0-9_.-]+ \nUpdate requires: No interruption\n" + }, + "MatchValueStringList": { + "type": "array", + "description": "The list of strings to check for a match", + "minItems": 1, + "maxItems": 255, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MatchValueString" + }, + "markdownDescription": "The list of strings to check for a match\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "WorkloadIdentityDetails": { "type": "object", "description": "Configuration for workload identity", @@ -175,11 +356,103 @@ "properties": { "ContainerConfiguration": { "$ref": "#/definitions/ContainerConfiguration" + }, + "CodeConfiguration": { + "$ref": "#/definitions/CodeConfiguration" } }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CodeConfiguration": { + "type": "object", + "description": "Representation of a code configuration", + "properties": { + "Code": { + "$ref": "#/definitions/Code" + }, + "Runtime": { + "$ref": "#/definitions/AgentManagedRuntimeType" + }, + "EntryPoint": { + "$ref": "#/definitions/EntryPoints" + } + }, + "required": [ + "Code", + "Runtime", + "EntryPoint" + ], + "additionalProperties": false, + "markdownDescription": "Representation of a code configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Code": { + "type": "object", + "description": "Object represents source code from zip file", + "properties": { + "S3": { + "$ref": "#/definitions/S3Location" + } + }, + "additionalProperties": false, + "markdownDescription": "Object represents source code from zip file\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3Location": { + "type": "object", + "description": "S3 Location Configuration", + "properties": { + "Bucket": { + "type": "string", + "description": "S3 bucket name", + "markdownDescription": "S3 bucket name\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ \nUpdate requires: No interruption\n" + }, + "Prefix": { + "type": "string", + "minLength": 1, + "maxLength": 1024, + "description": "S3 object key prefix", + "markdownDescription": "S3 object key prefix\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "VersionId": { + "type": "string", + "minLength": 3, + "maxLength": 1024, + "description": "S3 object version ID", + "markdownDescription": "S3 object version ID\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Bucket", + "Prefix" + ], + "additionalProperties": false, + "markdownDescription": "S3 Location Configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AgentManagedRuntimeType": { + "type": "string", + "description": "Managed runtime types", + "enum": [ + "PYTHON_3_10", + "PYTHON_3_11", + "PYTHON_3_12", + "PYTHON_3_13", + "PYTHON_3_14" + ], + "markdownDescription": "Managed runtime types\n\n---\n\nRequired: No \nType: String \nAllowed Values: PYTHON_3_10 | PYTHON_3_11 | PYTHON_3_12 | PYTHON_3_13 | PYTHON_3_14 \nUpdate requires: No interruption\n" + }, + "EntryPoints": { + "type": "array", + "description": "List of entry points", + "minItems": 1, + "maxItems": 2, + "insertionOrder": true, + "items": { + "type": "string", + "description": "Entry point", + "markdownDescription": "Entry point\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of entry points\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "ContainerConfiguration": { "type": "object", "properties": { @@ -246,6 +519,101 @@ }, "additionalProperties": false, "markdownDescription": "A map of tag keys and values\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LifecycleConfiguration": { + "type": "object", + "description": "Configuration for managing the lifecycle of runtime sessions and resources", + "properties": { + "IdleRuntimeSessionTimeout": { + "type": "integer", + "minimum": 60, + "maximum": 28800, + "description": "Timeout in seconds for idle runtime sessions", + "markdownDescription": "Timeout in seconds for idle runtime sessions\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxLifetime": { + "type": "integer", + "minimum": 60, + "maximum": 28800, + "description": "Maximum lifetime in seconds for runtime sessions", + "markdownDescription": "Maximum lifetime in seconds for runtime sessions\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration for managing the lifecycle of runtime sessions and resources\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RequestHeaderConfiguration": { + "type": "object", + "description": "Configuration for HTTP request headers", + "properties": { + "RequestHeaderAllowlist": { + "$ref": "#/definitions/RequestHeaderAllowlist" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration for HTTP request headers\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RequestHeaderAllowlist": { + "type": "array", + "description": "List of allowed HTTP headers for agent runtime requests", + "minItems": 1, + "maxItems": 20, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HeaderName" + }, + "markdownDescription": "List of allowed HTTP headers for agent runtime requests\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "HeaderName": { + "type": "string", + "description": "HTTP header name", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "HTTP header name\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^(Authorization|X-Amzn-Bedrock-AgentCore-Runtime-Custom-[a-zA-Z0-9_-]+)$ \nUpdate requires: No interruption\n" + }, + "MountPath": { + "type": "string", + "description": "Mount path for session storage", + "minLength": 6, + "maxLength": 200, + "markdownDescription": "Mount path for session storage\n\n---\n\nRequired: No \nType: String \nMinimum Length: 6 \nMaximum Length: 200 \nPattern: ^/mnt/[a-zA-Z0-9._-]+/?$ \nUpdate requires: No interruption\n" + }, + "SessionStorageConfiguration": { + "type": "object", + "description": "Configuration for session storage", + "properties": { + "MountPath": { + "$ref": "#/definitions/MountPath" + } + }, + "required": [ + "MountPath" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for session storage\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FilesystemConfiguration": { + "type": "object", + "description": "Filesystem configuration for the runtime", + "properties": { + "SessionStorage": { + "$ref": "#/definitions/SessionStorageConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "Filesystem configuration for the runtime\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FilesystemConfigurations": { + "type": "array", + "description": "List of filesystem configurations", + "items": { + "$ref": "#/definitions/FilesystemConfiguration" + }, + "minItems": 0, + "maxItems": 1, + "insertionOrder": false, + "markdownDescription": "List of filesystem configurations\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "properties": { @@ -299,6 +667,21 @@ "description": "Authorizer configuration for the agent runtime", "markdownDescription": "Authorizer configuration for the agent runtime\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "LifecycleConfiguration": { + "$ref": "#/definitions/LifecycleConfiguration", + "description": "Lifecycle configuration for managing runtime sessions", + "markdownDescription": "Lifecycle configuration for managing runtime sessions\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "RequestHeaderConfiguration": { + "$ref": "#/definitions/RequestHeaderConfiguration", + "description": "Configuration for HTTP request headers", + "markdownDescription": "Configuration for HTTP request headers\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "FilesystemConfigurations": { + "$ref": "#/definitions/FilesystemConfigurations", + "description": "Filesystem configurations for the agent runtime", + "markdownDescription": "Filesystem configurations for the agent runtime\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "AgentRuntimeVersion": { "$ref": "#/definitions/AgentRuntimeVersion", "description": "Version of the Agent", @@ -326,6 +709,11 @@ }, "Tags": { "$ref": "#/definitions/TagsMap" + }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the agent is in a failed state.", + "markdownDescription": "The reason for failure if the agent is in a failed state.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, "primaryIdentifier": [ @@ -347,7 +735,8 @@ "/properties/Status", "/properties/CreatedAt", "/properties/LastUpdatedAt", - "/properties/WorkloadIdentityDetails" + "/properties/WorkloadIdentityDetails", + "/properties/FailureReason" ], "replacementStrategy": "create_then_delete", "handlers": { @@ -360,7 +749,11 @@ "bedrock-agentcore:CreateWorkloadIdentity", "bedrock-agentcore:TagResource", "bedrock-agentcore:ListTagsForResource", - "iam:PassRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "kms:Decrypt" ] }, "read": { @@ -379,13 +772,18 @@ "bedrock-agentcore:TagResource", "bedrock-agentcore:UntagResource", "bedrock-agentcore:ListTagsForResource", - "iam:PassRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "kms:Decrypt" ] }, "delete": { "permissions": [ "bedrock-agentcore:DeleteAgentRuntime", "bedrock-agentcore:DeleteAgentRuntimeEndpoint", + "bedrock-agentcore:DeleteWorkloadIdentity", "bedrock-agentcore:GetAgentRuntime", "bedrock-agentcore:GetAgentRuntimeEndpoint" ] @@ -444,6 +842,11 @@ "$ref": "#/definitions/AgentStatus", "description": "Current status of the agent", "markdownDescription": "Current status of the agent\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the agent is in a failed state.", + "markdownDescription": "The reason for failure if the agent is in a failed state.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-runtimeendpoint.json b/server/schema/resources/aws-bedrockagentcore-runtimeendpoint.json index 556eb183..2e4f94a0 100644 --- a/server/schema/resources/aws-bedrockagentcore-runtimeendpoint.json +++ b/server/schema/resources/aws-bedrockagentcore-runtimeendpoint.json @@ -31,11 +31,11 @@ }, "AgentRuntimeEndpointArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z0-9_-]+/runtime-endpoint/[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z0-9_-]+/runtime-endpoint/[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" }, "AgentRuntimeArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agent/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}:([0-9]{0,4}[1-9][0-9]{0,4})$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws(?:-cn|-us-gov|-iso(?:-[bef])?)?):bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" }, "AgentRuntimeEndpointStatus": { "type": "string", @@ -89,7 +89,7 @@ "AgentRuntimeVersion": { "$ref": "#/definitions/AgentRuntimeVersion", "description": "The version of the AgentCore Runtime to use for the endpoint.", - "markdownDescription": "The version of the AgentCore Runtime to use for the endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + "markdownDescription": "The version of the AgentCore Runtime to use for the endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "LiveVersion": { "$ref": "#/definitions/AgentRuntimeVersion", @@ -166,11 +166,7 @@ ], "createOnlyProperties": [ "/properties/AgentRuntimeId", - "/properties/Name", - "/properties/AgentRuntimeVersion" - ], - "writeOnlyProperties": [ - "/properties/AgentRuntimeVersion" + "/properties/Name" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "handlers": { diff --git a/server/schema/resources/aws-bedrockagentcore-workloadidentity.json b/server/schema/resources/aws-bedrockagentcore-workloadidentity.json new file mode 100644 index 00000000..ec6de8b0 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-workloadidentity.json @@ -0,0 +1,158 @@ +{ + "typeName": "AWS::BedrockAgentCore::WorkloadIdentity", + "description": "Definition of AWS::BedrockAgentCore::WorkloadIdentity Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties": { + "Name": { + "description": "The name of the workload identity. The name must be unique within your account.", + "type": "string", + "minLength": 3, + "maxLength": 255, + "markdownDescription": "The name of the workload identity. The name must be unique within your account.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 255 \nPattern: [A-Za-z0-9_.-]+ \nUpdate requires: Replacement\n" + }, + "AllowedResourceOauth2ReturnUrls": { + "description": "The list of allowed OAuth2 return URLs for resources associated with this workload identity.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: \\w+:(/?/?)[^\\s]+ \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "The list of allowed OAuth2 return URLs for resources associated with this workload identity.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "WorkloadIdentityArn": { + "description": "The Amazon Resource Name (ARN) of the workload identity.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The Amazon Resource Name (ARN) of the workload identity.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "description": "The timestamp when the workload identity was created.", + "type": "number", + "markdownDescription": "The timestamp when the workload identity was created.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "description": "The timestamp when the workload identity was last updated.", + "type": "number", + "markdownDescription": "The timestamp when the workload identity was last updated.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "insertionOrder": false, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/WorkloadIdentityArn", + "/properties/CreatedTime", + "/properties/LastUpdatedTime" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateWorkloadIdentity", + "bedrock-agentcore:GetWorkloadIdentity", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetWorkloadIdentity", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateWorkloadIdentity", + "bedrock-agentcore:GetWorkloadIdentity", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteWorkloadIdentity" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListWorkloadIdentities" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "attributes": { + "WorkloadIdentityArn": { + "description": "The Amazon Resource Name (ARN) of the workload identity.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The Amazon Resource Name (ARN) of the workload identity.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "description": "The timestamp when the workload identity was created.", + "type": "number", + "markdownDescription": "The timestamp when the workload identity was created.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "description": "The timestamp when the workload identity was last updated.", + "type": "number", + "markdownDescription": "The timestamp when the workload identity was last updated.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockmantle-project.json b/server/schema/resources/aws-bedrockmantle-project.json new file mode 100644 index 00000000..0f876b87 --- /dev/null +++ b/server/schema/resources/aws-bedrockmantle-project.json @@ -0,0 +1,163 @@ +{ + "typeName": "AWS::BedrockMantle::Project", + "description": "Resource type definition for AWS::BedrockMantle::Project", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id" + ], + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "description": "The ARN of the project.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The ARN of the project.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^arn:[a-zA-Z0-9_\\-]+:bedrock-mantle:[a-zA-Z0-9_\\-]+:[0-9]+:project/(default|proj_[a-z0-9]+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The timestamp when the project was created.", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the project was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The unique identifier of the project.", + "type": "string", + "minLength": 1, + "maxLength": 25, + "markdownDescription": "The unique identifier of the project.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 25 \nPattern: ^(default|proj_[a-z0-9]+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the project.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The name of the project.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 200, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-mantle:CreateProject", + "bedrock-mantle:GetProject", + "bedrock-mantle:ListTagsForResource", + "bedrock-mantle:TagResource" + ] + }, + "read": { + "permissions": [ + "bedrock-mantle:GetProject", + "bedrock-mantle:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-mantle:UpdateProject", + "bedrock-mantle:GetProject", + "bedrock-mantle:ListTagsForResource", + "bedrock-mantle:TagResource", + "bedrock-mantle:UntagResource" + ] + }, + "delete": { + "permissions": [ + "bedrock-mantle:ArchiveProject", + "bedrock-mantle:GetProject", + "bedrock-mantle:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "bedrock-mantle:ListProjects", + "bedrock-mantle:ListTagsForResource" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "bedrock-mantle:TagResource", + "bedrock-mantle:UntagResource", + "bedrock-mantle:ListTagsForResource" + ] + }, + "attributes": { + "Arn": { + "description": "The ARN of the project.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The ARN of the project.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^arn:[a-zA-Z0-9_\\-]+:bedrock-mantle:[a-zA-Z0-9_\\-]+:[0-9]+:project/(default|proj_[a-z0-9]+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The timestamp when the project was created.", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the project was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The unique identifier of the project.", + "type": "string", + "minLength": 1, + "maxLength": 25, + "markdownDescription": "The unique identifier of the project.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 25 \nPattern: ^(default|proj_[a-z0-9]+)$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-billing-billingview.json b/server/schema/resources/aws-billing-billingview.json index bdd30182..67a7c063 100644 --- a/server/schema/resources/aws-billing-billingview.json +++ b/server/schema/resources/aws-billing-billingview.json @@ -48,6 +48,12 @@ "Arn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws[a-z-]*:(billing)::[0-9]{12}:billingview/[a-zA-Z0-9/:_\\+=\\.\\-@]{0,75}[a-zA-Z0-9] \nUpdate requires: No interruption\n" + }, + "Timestamp": { + "type": "string", + "format": "date-time", + "description": "The time in ISO 8601 format, UTC time (YYYY-MM-DDTHH:MM:SSZ).", + "markdownDescription": "The time in ISO 8601 format, UTC time (YYYY-MM-DDTHH:MM:SSZ).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "properties": { @@ -104,6 +110,19 @@ } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TimeRange": { + "type": "object", + "additionalProperties": false, + "properties": { + "BeginDateInclusive": { + "$ref": "#/definitions/Timestamp" + }, + "EndDateInclusive": { + "$ref": "#/definitions/Timestamp" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -148,7 +167,7 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws[a-z-]*:(billing)::[0-9]{12}:billingview/[a-zA-Z0-9_+=.@-]{1,75} \nUpdate requires: No interruption\n" }, - "markdownDescription": "An array of strings that define the billing view's source.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "An array of strings that define the billing view's source.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "UpdatedAt": { "description": "The time when the billing view was last updated.", @@ -169,7 +188,6 @@ "/properties/BillingViewType" ], "createOnlyProperties": [ - "/properties/SourceViews", "/properties/Description", "/properties/Name" ], @@ -192,10 +210,12 @@ "create": { "permissions": [ "billing:CreateBillingView", + "billing:AssociateSourceViews", "billing:TagResource", "billing:ListTagsForResource", "billing:GetBillingView", - "billing:ListSourceViewsForBillingView" + "billing:ListSourceViewsForBillingView", + "billing:UseSourceView" ] }, "read": { @@ -208,10 +228,13 @@ "update": { "permissions": [ "billing:UpdateBillingView", + "billing:DisassociateSourceViews", + "billing:AssociateSourceViews", "billing:GetBillingView", "billing:ListTagsForResource", "billing:TagResource", "billing:UntagResource", + "billing:UseSourceView", "billing:ListSourceViewsForBillingView" ] }, diff --git a/server/schema/resources/aws-billingconductor-billinggroup.json b/server/schema/resources/aws-billingconductor-billinggroup.json index 64bf020d..15b22241 100644 --- a/server/schema/resources/aws-billingconductor-billinggroup.json +++ b/server/schema/resources/aws-billingconductor-billinggroup.json @@ -18,7 +18,7 @@ "PricingPlanArn": { "description": "ARN of the attached pricing plan", "type": "string", - "markdownDescription": "ARN of the attached pricing plan\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10} \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of the attached pricing plan\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|Passthrough|[a-zA-Z0-9]{10}) \nUpdate requires: No interruption\n" } }, "required": [ @@ -39,16 +39,17 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: [0-9]{12} \nUpdate requires: No interruption\n" }, "minItems": 1, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ResponsibilityTransferArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: arn:[a-z0-9][a-z0-9-.]{0,62}:organizations::[0-9]{12}:transfer/o-[a-z0-9]{10,32}/(billing)/(inbound|outbound)/rt-[0-9a-z]{8,32} \nUpdate requires: No interruption\n" }, "AutoAssociate": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "required": [ - "LinkedAccountIds" - ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { @@ -79,13 +80,13 @@ "Arn": { "description": "Billing Group ARN", "type": "string", - "markdownDescription": "Billing Group ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[0-9]{12} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Billing Group ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[a-zA-Z0-9]{10,12} \nUpdate requires: No interruption\nRead only property: Yes" }, "Name": { "type": "string", "minLength": 1, "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9_\\+=\\.\\-@]+ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9_\\+=\\.\\-@]+ \nUpdate requires: No interruption\n" }, "Description": { "type": "string", @@ -95,7 +96,7 @@ "PrimaryAccountId": { "description": "This account will act as a virtual payer account of the billing group", "type": "string", - "markdownDescription": "This account will act as a virtual payer account of the billing group\n\n---\n\nRequired: Yes \nType: String \nPattern: [0-9]{12} \nUpdate requires: Replacement\n" + "markdownDescription": "This account will act as a virtual payer account of the billing group\n\n---\n\nRequired: Conditional \nType: String \nPattern: [0-9]{12} \nUpdate requires: Replacement\n" }, "ComputationPreference": { "$ref": "#/definitions/ComputationPreference" @@ -151,9 +152,34 @@ "required": [ "Name", "AccountGrouping", - "PrimaryAccountId", "ComputationPreference" ], + "anyOf": [ + { + "required": [ + "PrimaryAccountId" + ], + "properties": { + "AccountGrouping": { + "required": [ + "LinkedAccountIds" + ] + } + } + }, + { + "required": [ + "AccountGrouping" + ], + "properties": { + "AccountGrouping": { + "required": [ + "ResponsibilityTransferArn" + ] + } + } + } + ], "readOnlyProperties": [ "/properties/Arn", "/properties/Size", @@ -175,7 +201,8 @@ "billingconductor:AssociateAccounts", "billingconductor:ListBillingGroups", "billingconductor:TagResource", - "billingconductor:ListTagsForResource" + "billingconductor:ListTagsForResource", + "organizations:DescribeResponsibilityTransfer" ] }, "read": { @@ -219,7 +246,7 @@ "Arn": { "description": "Billing Group ARN", "type": "string", - "markdownDescription": "Billing Group ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[0-9]{12} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Billing Group ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[a-zA-Z0-9]{10,12} \nUpdate requires: No interruption\nRead only property: Yes" }, "Size": { "description": "Number of accounts in the billing group", diff --git a/server/schema/resources/aws-billingconductor-customlineitem.json b/server/schema/resources/aws-billingconductor-customlineitem.json index 4477d630..879a08a2 100644 --- a/server/schema/resources/aws-billingconductor-customlineitem.json +++ b/server/schema/resources/aws-billingconductor-customlineitem.json @@ -92,16 +92,18 @@ "Attribute": { "type": "string", "enum": [ - "LINE_ITEM_TYPE" + "LINE_ITEM_TYPE", + "SERVICE" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: LINE_ITEM_TYPE \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: LINE_ITEM_TYPE | SERVICE \nUpdate requires: No interruption\n" }, "MatchOption": { "type": "string", "enum": [ - "NOT_EQUAL" + "NOT_EQUAL", + "EQUAL" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NOT_EQUAL \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NOT_EQUAL | EQUAL \nUpdate requires: No interruption\n" }, "Values": { "type": "array", @@ -110,13 +112,21 @@ "items": { "$ref": "#/definitions/LineItemFilterValue" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AttributeValues": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/AttributeValue" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ "Attribute", - "MatchOption", - "Values" + "MatchOption" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -127,6 +137,12 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SAVINGS_PLAN_NEGATION \nUpdate requires: No interruption\n" }, + "AttributeValue": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9]+$ \nUpdate requires: No interruption\n" + }, "CustomLineItemChargeDetails": { "type": "object", "additionalProperties": false, @@ -178,6 +194,29 @@ "maxLength": 128, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9_\\+=\\.\\-@]+ \nUpdate requires: No interruption\n" }, + "ComputationRule": { + "description": "The display settings of the Custom Line Item.", + "type": "string", + "enum": [ + "CONSOLIDATED", + "ITEMIZED" + ], + "markdownDescription": "The display settings of the Custom Line Item.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONSOLIDATED | ITEMIZED \nUpdate requires: Replacement\n" + }, + "PresentationDetails": { + "type": "object", + "additionalProperties": false, + "properties": { + "Service": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Service" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, "Description": { "type": "string", "maxLength": 255, @@ -189,7 +228,7 @@ "BillingGroupArn": { "description": "Billing Group ARN", "type": "string", - "markdownDescription": "Billing Group ARN\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[0-9]{12} \nUpdate requires: Replacement\n" + "markdownDescription": "Billing Group ARN\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[a-zA-Z0-9]{10,12} \nUpdate requires: Replacement\n" }, "BillingPeriodRange": { "$ref": "#/definitions/BillingPeriodRange" @@ -271,6 +310,8 @@ "createOnlyProperties": [ "/properties/BillingGroupArn", "/properties/AccountId", + "/properties/ComputationRule", + "/properties/PresentationDetails", "/properties/BillingPeriodRange/InclusiveStartBillingPeriod", "/properties/BillingPeriodRange/ExclusiveEndBillingPeriod", "/properties/CustomLineItemChargeDetails/Type" diff --git a/server/schema/resources/aws-billingconductor-pricingplan.json b/server/schema/resources/aws-billingconductor-pricingplan.json index a5c8d0bc..28745db7 100644 --- a/server/schema/resources/aws-billingconductor-pricingplan.json +++ b/server/schema/resources/aws-billingconductor-pricingplan.json @@ -36,7 +36,7 @@ "Arn": { "description": "Pricing Plan ARN", "type": "string", - "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|Passthrough|[a-zA-Z0-9]{10}) \nUpdate requires: No interruption\nRead only property: Yes" }, "Name": { "type": "string", @@ -154,7 +154,7 @@ "Arn": { "description": "Pricing Plan ARN", "type": "string", - "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|Passthrough|[a-zA-Z0-9]{10}) \nUpdate requires: No interruption\nRead only property: Yes" }, "Size": { "type": "integer", diff --git a/server/schema/resources/aws-braket-spendinglimit.json b/server/schema/resources/aws-braket-spendinglimit.json new file mode 100644 index 00000000..17371035 --- /dev/null +++ b/server/schema/resources/aws-braket-spendinglimit.json @@ -0,0 +1,202 @@ +{ + "typeName": "AWS::Braket::SpendingLimit", + "description": "Creates a spending limit for a specified quantum device. Spending limits help you control costs by setting maximum amounts that can be spent on quantum computing tasks within a specified time period.", + "definitions": { + "TimePeriod": { + "type": "object", + "description": "Defines a time range for spending limits, specifying when the limit is active.", + "properties": { + "StartAt": { + "type": "string", + "description": "The start date and time for the spending limit period, in ISO 8601 format.", + "markdownDescription": "The start date and time for the spending limit period, in ISO 8601 format.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "EndAt": { + "type": "string", + "description": "The end date and time for the spending limit period, in ISO 8601 format.", + "markdownDescription": "The end date and time for the spending limit period, in ISO 8601 format.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "StartAt", + "EndAt" + ], + "additionalProperties": false, + "markdownDescription": "Defines a time range for spending limits, specifying when the limit is active.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "SpendingLimitArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) that uniquely identifies the spending limit.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The Amazon Resource Name (ARN) that uniquely identifies the spending limit.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^arn:aws[a-z\\-]*:braket:[a-z0-9\\-]+:[0-9]{12}:spending-limit/.*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeviceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to.", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + }, + "SpendingLimit": { + "type": "string", + "description": "The maximum amount that can be spent on the specified device, in USD.", + "minLength": 1, + "markdownDescription": "The maximum amount that can be spent on the specified device, in USD.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nPattern: ^\\d+(\\.\\d{1,2})?$ \nUpdate requires: No interruption\n" + }, + "TimePeriod": { + "$ref": "#/definitions/TimePeriod" + }, + "QueuedSpend": { + "type": "string", + "description": "The amount currently queued for spending on the device, in USD.", + "markdownDescription": "The amount currently queued for spending on the device, in USD.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TotalSpend": { + "type": "string", + "description": "The total amount spent on the device so far during the current time period, in USD.", + "markdownDescription": "The total amount spent on the device so far during the current time period, in USD.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The date and time when the spending limit was created, in ISO 8601 format.", + "markdownDescription": "The date and time when the spending limit was created, in ISO 8601 format.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "The date and time when the spending limit was last modified, in ISO 8601 format.", + "markdownDescription": "The date and time when the spending limit was last modified, in ISO 8601 format.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "The tags to apply to the spending limit.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the spending limit.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "DeviceArn", + "SpendingLimit" + ], + "createOnlyProperties": [ + "/properties/DeviceArn" + ], + "readOnlyProperties": [ + "/properties/SpendingLimitArn", + "/properties/QueuedSpend", + "/properties/TotalSpend", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "primaryIdentifier": [ + "/properties/SpendingLimitArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "braket:TagResource", + "braket:UntagResource", + "braket:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "braket:CreateSpendingLimit", + "braket:SearchSpendingLimits", + "braket:TagResource" + ] + }, + "read": { + "permissions": [ + "braket:SearchSpendingLimits", + "braket:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "braket:UpdateSpendingLimit", + "braket:SearchSpendingLimits", + "braket:TagResource", + "braket:UntagResource" + ] + }, + "delete": { + "permissions": [ + "braket:DeleteSpendingLimit", + "braket:SearchSpendingLimits" + ] + }, + "list": { + "permissions": [ + "braket:SearchSpendingLimits" + ] + } + }, + "attributes": { + "SpendingLimitArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) that uniquely identifies the spending limit.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The Amazon Resource Name (ARN) that uniquely identifies the spending limit.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^arn:aws[a-z\\-]*:braket:[a-z0-9\\-]+:[0-9]{12}:spending-limit/.*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "QueuedSpend": { + "type": "string", + "description": "The amount currently queued for spending on the device, in USD.", + "markdownDescription": "The amount currently queued for spending on the device, in USD.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TotalSpend": { + "type": "string", + "description": "The total amount spent on the device so far during the current time period, in USD.", + "markdownDescription": "The total amount spent on the device so far during the current time period, in USD.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The date and time when the spending limit was created, in ISO 8601 format.", + "markdownDescription": "The date and time when the spending limit was created, in ISO 8601 format.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "The date and time when the spending limit was last modified, in ISO 8601 format.", + "markdownDescription": "The date and time when the spending limit was last modified, in ISO 8601 format.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cases-caserule.json b/server/schema/resources/aws-cases-caserule.json new file mode 100644 index 00000000..3bb082d5 --- /dev/null +++ b/server/schema/resources/aws-cases-caserule.json @@ -0,0 +1,424 @@ +{ + "typeName": "AWS::Cases::CaseRule", + "description": "A case rule. In the Amazon Connect admin website, case rules are known as case field conditions. Case rules are used to define the situations under which fields should have certain effects (such as required).", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "BooleanCondition": { + "description": "A boolean condition for a rule.", + "oneOf": [ + { + "type": "object", + "title": "EqualTo", + "properties": { + "EqualTo": { + "$ref": "#/definitions/BooleanOperands" + } + }, + "required": [ + "EqualTo" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "NotEqualTo", + "properties": { + "NotEqualTo": { + "$ref": "#/definitions/BooleanOperands" + } + }, + "required": [ + "NotEqualTo" + ], + "additionalProperties": false + } + ], + "markdownDescription": "A boolean condition for a rule.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "BooleanOperands": { + "type": "object", + "description": "Boolean operands for a condition.", + "properties": { + "OperandOne": { + "$ref": "#/definitions/OperandOne" + }, + "OperandTwo": { + "$ref": "#/definitions/OperandTwo" + }, + "Result": { + "type": "boolean", + "description": "The value of the outer rule if the condition evaluates to true.", + "markdownDescription": "The value of the outer rule if the condition evaluates to true.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OperandOne", + "OperandTwo", + "Result" + ], + "additionalProperties": false, + "markdownDescription": "Boolean operands for a condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CaseRuleDetails": { + "description": "Defines the rule behavior and conditions. Specifies the rule type and the conditions under which it applies. In the Amazon Connect admin website, this corresponds to case field conditions.", + "oneOf": [ + { + "type": "object", + "title": "Required", + "properties": { + "Required": { + "$ref": "#/definitions/RequiredCaseRule" + } + }, + "required": [ + "Required" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Hidden", + "properties": { + "Hidden": { + "$ref": "#/definitions/HiddenCaseRule" + } + }, + "required": [ + "Hidden" + ], + "additionalProperties": false + } + ], + "markdownDescription": "Defines the rule behavior and conditions. Specifies the rule type and the conditions under which it applies. In the Amazon Connect admin website, this corresponds to case field conditions.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "EmptyOperandValue": { + "type": "object", + "description": "An empty operand value.", + "additionalProperties": false, + "markdownDescription": "An empty operand value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OperandOne": { + "description": "The left hand operand in the condition.", + "oneOf": [ + { + "type": "object", + "title": "FieldId", + "properties": { + "FieldId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The field ID this operand should take the value of." + } + }, + "required": [ + "FieldId" + ], + "additionalProperties": false + } + ], + "markdownDescription": "The left hand operand in the condition.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "OperandTwo": { + "description": "The right hand operand in the condition.", + "oneOf": [ + { + "type": "object", + "title": "StringValue", + "properties": { + "StringValue": { + "type": "string", + "maxLength": 1500, + "minLength": 1, + "description": "A string value to compare against the field value in the condition evaluation." + } + }, + "required": [ + "StringValue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "BooleanValue", + "properties": { + "BooleanValue": { + "type": "boolean", + "description": "A boolean value to compare against the field value in the condition evaluation." + } + }, + "required": [ + "BooleanValue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "DoubleValue", + "properties": { + "DoubleValue": { + "type": "number", + "description": "A numeric value to compare against the field value in the condition evaluation." + } + }, + "required": [ + "DoubleValue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "EmptyValue", + "properties": { + "EmptyValue": { + "$ref": "#/definitions/EmptyOperandValue" + } + }, + "required": [ + "EmptyValue" + ], + "additionalProperties": false + } + ], + "markdownDescription": "The right hand operand in the condition.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "RequiredCaseRule": { + "type": "object", + "description": "A required rule type, used to indicate whether a field is required.", + "properties": { + "DefaultValue": { + "type": "boolean", + "description": "The default required state for the field when none of the specified conditions are met. If true, the field is required by default; if false, the field is optional by default.", + "markdownDescription": "The default required state for the field when none of the specified conditions are met. If true, the field is required by default; if false, the field is optional by default.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/BooleanCondition" + }, + "maxItems": 100, + "description": "An ordered list of boolean conditions that determine when the field should be required. Conditions are evaluated in order, and the first condition that evaluates to true determines whether the field is required, overriding the default value.", + "markdownDescription": "An ordered list of boolean conditions that determine when the field should be required. Conditions are evaluated in order, and the first condition that evaluates to true determines whether the field is required, overriding the default value.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Conditions", + "DefaultValue" + ], + "additionalProperties": false, + "markdownDescription": "A required rule type, used to indicate whether a field is required.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HiddenCaseRule": { + "type": "object", + "description": "Hidden rule type, used to indicate whether a field is hidden", + "properties": { + "DefaultValue": { + "type": "boolean", + "description": "The value of the rule (i.e. whether the field is hidden) should none of the conditions evaluate to true", + "markdownDescription": "The value of the rule (i.e. whether the field is hidden) should none of the conditions evaluate to true\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/BooleanCondition" + }, + "maxItems": 100, + "description": "List of conditions for the hidden rule; the first condition to evaluate to true dictates the value of the rule", + "markdownDescription": "List of conditions for the hidden rule; the first condition to evaluate to true dictates the value of the rule\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Conditions", + "DefaultValue" + ], + "additionalProperties": false, + "markdownDescription": "Hidden rule type, used to indicate whether a field is hidden\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "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 -.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "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 -.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "CaseRuleArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of a case rule.", + "markdownDescription": "The Amazon Resource Name (ARN) of a case rule.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CaseRuleId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a case rule.", + "markdownDescription": "The unique identifier of a case rule.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "type": "string", + "maxLength": 255, + "description": "A description explaining the purpose and behavior of this case rule. Helps administrators understand when and why this rule applies to case fields.", + "markdownDescription": "A description explaining the purpose and behavior of this case rule. Helps administrators understand when and why this rule applies to case fields.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "DomainId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the Cases domain.", + "markdownDescription": "The unique identifier of the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: Replacement\n" + }, + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "A descriptive name for the case rule. Must be unique within the domain and should clearly indicate the rule's purpose (e.g., 'Priority Field Required for Urgent Cases').", + "markdownDescription": "A descriptive name for the case rule. Must be unique within the domain and should clearly indicate the rule's purpose (e.g., 'Priority Field Required for Urgent Cases').\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^.*[\\S]$ \nUpdate requires: No interruption\n" + }, + "Rule": { + "$ref": "#/definitions/CaseRuleDetails" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the case rule was created.", + "format": "date-time", + "markdownDescription": "The time at which the case rule was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the case rule was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the case rule was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "The tags that you attach to this case rule.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you attach to this case rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Rule" + ], + "readOnlyProperties": [ + "/properties/CaseRuleId", + "/properties/CreatedTime", + "/properties/LastModifiedTime", + "/properties/CaseRuleArn" + ], + "createOnlyProperties": [ + "/properties/DomainId" + ], + "primaryIdentifier": [ + "/properties/CaseRuleArn" + ], + "handlers": { + "create": { + "permissions": [ + "cases:CreateCaseRule", + "cases:BatchGetCaseRule", + "cases:TagResource" + ] + }, + "update": { + "permissions": [ + "cases:UpdateCaseRule", + "cases:BatchGetCaseRule", + "cases:TagResource", + "cases:UntagResource" + ] + }, + "delete": { + "permissions": [ + "cases:DeleteCaseRule", + "cases:UntagResource" + ] + }, + "list": { + "permissions": [ + "cases:ListCaseRules" + ], + "handlerSchema": { + "properties": { + "DomainId": { + "$ref": "resource-schema.json#/properties/DomainId" + } + }, + "required": [ + "DomainId" + ] + } + }, + "read": { + "permissions": [ + "cases:BatchGetCaseRule" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": false, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cases:BatchGetCaseRule", + "cases:TagResource", + "cases:UntagResource" + ] + }, + "attributes": { + "CaseRuleArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of a case rule.", + "markdownDescription": "The Amazon Resource Name (ARN) of a case rule.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CaseRuleId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a case rule.", + "markdownDescription": "The unique identifier of a case rule.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the case rule was created.", + "format": "date-time", + "markdownDescription": "The time at which the case rule was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the case rule was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the case rule was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cases-domain.json b/server/schema/resources/aws-cases-domain.json new file mode 100644 index 00000000..1b3ed3e2 --- /dev/null +++ b/server/schema/resources/aws-cases-domain.json @@ -0,0 +1,168 @@ +{ + "typeName": "AWS::Cases::Domain", + "description": "A domain, which is a container for all case data, such as cases, fields, templates and layouts. Each Amazon Connect instance can be associated with only one Cases domain.", + "definitions": { + "DomainStatus": { + "type": "string", + "description": "The current status of the Cases domain. Indicates whether the domain is Active, CreationInProgress, or CreationFailed.", + "enum": [ + "Active", + "CreationInProgress", + "CreationFailed" + ], + "markdownDescription": "The current status of the Cases domain. Indicates whether the domain is Active, CreationInProgress, or CreationFailed.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Active | CreationInProgress | CreationFailed \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "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 -.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "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 -.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "CreatedTime": { + "type": "string", + "description": "The time at which the domain was created.", + "format": "date-time", + "markdownDescription": "The time at which the domain was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) for the Cases domain.", + "markdownDescription": "The Amazon Resource Name (ARN) for the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the Cases domain.", + "markdownDescription": "The unique identifier of the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainStatus": { + "$ref": "#/definitions/DomainStatus" + }, + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "The name for your Cases domain. It must be unique for your AWS account.", + "markdownDescription": "The name for your Cases domain. It must be unique for your AWS account.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^.*[\\S]$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "description": "The tags that you attach to this domain.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you attach to this domain.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/CreatedTime", + "/properties/DomainArn", + "/properties/DomainId", + "/properties/DomainStatus" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/DomainArn" + ], + "handlers": { + "create": { + "permissions": [ + "cases:CreateDomain", + "cases:GetDomain", + "cases:TagResource" + ] + }, + "read": { + "permissions": [ + "cases:GetDomain" + ] + }, + "delete": { + "permissions": [ + "cases:DeleteDomain", + "cases:UntagResource" + ] + }, + "list": { + "permissions": [ + "cases:ListDomains" + ] + }, + "update": { + "permissions": [ + "cases:TagResource", + "cases:UntagResource", + "cases:GetDomain" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": false, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cases:GetDomain", + "cases:TagResource", + "cases:UntagResource" + ] + }, + "attributes": { + "CreatedTime": { + "type": "string", + "description": "The time at which the domain was created.", + "format": "date-time", + "markdownDescription": "The time at which the domain was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) for the Cases domain.", + "markdownDescription": "The Amazon Resource Name (ARN) for the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the Cases domain.", + "markdownDescription": "The unique identifier of the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainStatus": { + "$ref": "#/definitions/DomainStatus" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cases-field.json b/server/schema/resources/aws-cases-field.json new file mode 100644 index 00000000..bf41bc5f --- /dev/null +++ b/server/schema/resources/aws-cases-field.json @@ -0,0 +1,267 @@ +{ + "typeName": "AWS::Cases::Field", + "description": "A field in the Cases domain. This field is used to define the case object model (that is, defines what data can be captured on cases) in a Cases domain.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "FieldType": { + "type": "string", + "description": "The data type of the field, which determines validation rules, input constraints, and display format. Each type has specific constraints: Text (string input), Number (numeric values), Boolean (true/false), DateTime (date/time picker), SingleSelect (dropdown options), Url (URL validation), User (Amazon Connect user selection).", + "enum": [ + "Text", + "Number", + "Boolean", + "DateTime", + "SingleSelect", + "Url", + "User" + ], + "markdownDescription": "The data type of the field, which determines validation rules, input constraints, and display format. Each type has specific constraints: Text (string input), Number (numeric values), Boolean (true/false), DateTime (date/time picker), SingleSelect (dropdown options), Url (URL validation), User (Amazon Connect user selection).\n\n---\n\nRequired: No \nType: String \nAllowed Values: Text | Number | Boolean | DateTime | SingleSelect | Url | User \nUpdate requires: No interruption\n" + }, + "TextAttributes": { + "type": "object", + "description": "Field attributes for Text field type", + "additionalProperties": false, + "properties": { + "IsMultiline": { + "type": "boolean", + "description": "Attribute that defines rendering component and validation", + "markdownDescription": "Attribute that defines rendering component and validation\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IsMultiline" + ], + "markdownDescription": "Field attributes for Text field type\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FieldAttributes": { + "type": "object", + "description": "Union of field attributes", + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextAttributes" + } + }, + "markdownDescription": "Union of field attributes\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "description": "The tags that you attach to this field.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you attach to this field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "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 -.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "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 -.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Description": { + "type": "string", + "maxLength": 255, + "description": "A description explaining the purpose and usage of this field in cases. Helps agents and administrators understand what information should be captured in this field.", + "markdownDescription": "A description explaining the purpose and usage of this field in cases. Helps agents and administrators understand what information should be captured in this field.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "DomainId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the Cases domain.", + "markdownDescription": "The unique identifier of the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: Replacement\n" + }, + "FieldArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the field.", + "markdownDescription": "The Amazon Resource Name (ARN) of the field.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FieldId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a field.", + "markdownDescription": "The unique identifier of a field.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "The display name of the field as it appears to agents in the case interface. Should be descriptive and user-friendly (e.g., 'Customer Priority Level', 'Issue Category').", + "markdownDescription": "The display name of the field as it appears to agents in the case interface. Should be descriptive and user-friendly (e.g., 'Customer Priority Level', 'Issue Category').\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^.*[\\S]$ \nUpdate requires: No interruption\n" + }, + "Namespace": { + "type": "string", + "description": "Indicates whether this is a System field (predefined by AWS) or a Custom field (created by your organization). System fields cannot be modified or deleted.", + "enum": [ + "System", + "Custom" + ], + "markdownDescription": "Indicates whether this is a System field (predefined by AWS) or a Custom field (created by your organization). System fields cannot be modified or deleted.\n\n---\n\nRequired: No \nType: String \nAllowed Values: System | Custom \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the field was created.", + "format": "date-time", + "markdownDescription": "The time at which the field was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the field was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the field was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "Type": { + "$ref": "#/definitions/FieldType" + }, + "Attributes": { + "$ref": "#/definitions/FieldAttributes", + "description": "Field-type specific attributes that control rendering and validation behavior", + "markdownDescription": "Field-type specific attributes that control rendering and validation behavior\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Type" + ], + "readOnlyProperties": [ + "/properties/FieldArn", + "/properties/FieldId", + "/properties/Namespace", + "/properties/CreatedTime", + "/properties/LastModifiedTime" + ], + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/Type" + ], + "primaryIdentifier": [ + "/properties/FieldArn" + ], + "handlers": { + "create": { + "permissions": [ + "cases:CreateField", + "cases:BatchGetField", + "cases:TagResource" + ] + }, + "update": { + "permissions": [ + "cases:UpdateField", + "cases:TagResource", + "cases:UntagResource", + "cases:BatchGetField" + ] + }, + "delete": { + "permissions": [ + "cases:DeleteField", + "cases:UntagResource" + ] + }, + "list": { + "permissions": [ + "cases:ListFields" + ], + "handlerSchema": { + "properties": { + "DomainId": { + "$ref": "resource-schema.json#/properties/DomainId" + } + }, + "required": [ + "DomainId" + ] + } + }, + "read": { + "permissions": [ + "cases:BatchGetField" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "cases:BatchGetField", + "cases:TagResource", + "cases:UntagResource" + ], + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "additionalIdentifiers": [ + [ + "/properties/DomainId" + ] + ], + "additionalProperties": false, + "attributes": { + "FieldArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the field.", + "markdownDescription": "The Amazon Resource Name (ARN) of the field.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FieldId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a field.", + "markdownDescription": "The unique identifier of a field.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Namespace": { + "type": "string", + "description": "Indicates whether this is a System field (predefined by AWS) or a Custom field (created by your organization). System fields cannot be modified or deleted.", + "enum": [ + "System", + "Custom" + ], + "markdownDescription": "Indicates whether this is a System field (predefined by AWS) or a Custom field (created by your organization). System fields cannot be modified or deleted.\n\n---\n\nRequired: No \nType: String \nAllowed Values: System | Custom \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the field was created.", + "format": "date-time", + "markdownDescription": "The time at which the field was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the field was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the field was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cases-layout.json b/server/schema/resources/aws-cases-layout.json new file mode 100644 index 00000000..7cdcf66f --- /dev/null +++ b/server/schema/resources/aws-cases-layout.json @@ -0,0 +1,303 @@ +{ + "typeName": "AWS::Cases::Layout", + "description": "A layout in the Cases domain. Layouts define the following configuration in the top section and More Info tab of the Cases user interface: Fields to display to the users and Field ordering.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "BasicLayout": { + "type": "object", + "description": "Defines the field layout for the agent's case interface. Configures which fields appear in the top panel (immediately visible) and More Info tab (expandable section) of the case view, allowing customization of the agent experience.", + "properties": { + "TopPanel": { + "$ref": "#/definitions/LayoutSections" + }, + "MoreInfo": { + "$ref": "#/definitions/LayoutSections" + } + }, + "additionalProperties": false, + "markdownDescription": "Defines the field layout for the agent's case interface. Configures which fields appear in the top panel (immediately visible) and More Info tab (expandable section) of the case view, allowing customization of the agent experience.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FieldGroup": { + "type": "object", + "description": "Consists of a group of fields and associated properties.", + "properties": { + "Name": { + "type": "string", + "maxLength": 100, + "description": "A descriptive name for the field group. Helps organize related fields together in the layout interface.", + "markdownDescription": "A descriptive name for the field group. Helps organize related fields together in the layout interface.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 100 \nUpdate requires: No interruption\n" + }, + "Fields": { + "type": "array", + "items": { + "$ref": "#/definitions/FieldItem" + }, + "maxItems": 220, + "description": "An ordered list of fields to display in this group. The order determines the sequence in which fields appear in the agent interface. Each field is referenced by its unique field ID.", + "markdownDescription": "An ordered list of fields to display in this group. The order determines the sequence in which fields appear in the agent interface. Each field is referenced by its unique field ID.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Fields" + ], + "additionalProperties": false, + "markdownDescription": "Consists of a group of fields and associated properties.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FieldItem": { + "type": "object", + "description": "Field specific properties.", + "properties": { + "Id": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a field.", + "markdownDescription": "The unique identifier of a field.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Id" + ], + "additionalProperties": false, + "markdownDescription": "Field specific properties.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LayoutContent": { + "description": "Defines the layout structure and field organization for the case interface. Specifies which fields appear in the top panel and More Info tab, and their display order.", + "oneOf": [ + { + "type": "object", + "title": "Basic", + "properties": { + "Basic": { + "$ref": "#/definitions/BasicLayout" + } + }, + "required": [ + "Basic" + ], + "additionalProperties": false + } + ], + "markdownDescription": "Defines the layout structure and field organization for the case interface. Specifies which fields appear in the top panel and More Info tab, and their display order.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LayoutSections": { + "type": "object", + "description": "Sections within a panel or tab of the page layout.", + "properties": { + "Sections": { + "type": "array", + "items": { + "$ref": "#/definitions/Section" + }, + "maxItems": 1, + "description": "Defines the sections within a panel or tab. Contains field groups that organize related fields together.", + "markdownDescription": "Defines the sections within a panel or tab. Contains field groups that organize related fields together.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Sections within a panel or tab of the page layout.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Section": { + "description": "A section can be a grouped list of fields.", + "oneOf": [ + { + "type": "object", + "title": "FieldGroup", + "properties": { + "FieldGroup": { + "$ref": "#/definitions/FieldGroup" + } + }, + "required": [ + "FieldGroup" + ], + "additionalProperties": false + } + ], + "markdownDescription": "A section can be a grouped list of fields.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "description": "The tags that you attach to this layout.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you attach to this layout.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "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 -.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "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 -.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Content": { + "$ref": "#/definitions/LayoutContent" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the layout was created.", + "format": "date-time", + "markdownDescription": "The time at which the layout was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the Cases domain.", + "markdownDescription": "The unique identifier of the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: Replacement\n" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the layout was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the layout was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LayoutArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the layout.", + "markdownDescription": "The Amazon Resource Name (ARN) of the layout.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LayoutId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the layout.", + "markdownDescription": "The unique identifier of the layout.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "A descriptive name for the layout. Must be unique within the Cases domain and should clearly indicate the layout's purpose and field organization.", + "markdownDescription": "A descriptive name for the layout. Must be unique within the Cases domain and should clearly indicate the layout's purpose and field organization.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^.*[\\S]$ \nUpdate requires: No interruption\n" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "required": [ + "Content", + "Name" + ], + "createOnlyProperties": [ + "/properties/DomainId" + ], + "readOnlyProperties": [ + "/properties/CreatedTime", + "/properties/LastModifiedTime", + "/properties/LayoutArn", + "/properties/LayoutId" + ], + "primaryIdentifier": [ + "/properties/LayoutArn" + ], + "handlers": { + "create": { + "permissions": [ + "cases:CreateLayout", + "cases:GetLayout", + "cases:TagResource" + ] + }, + "read": { + "permissions": [ + "cases:GetLayout" + ] + }, + "update": { + "permissions": [ + "cases:UpdateLayout", + "cases:TagResource", + "cases:UntagResource", + "cases:GetLayout" + ] + }, + "delete": { + "permissions": [ + "cases:DeleteLayout", + "cases:UntagResource" + ] + }, + "list": { + "permissions": [ + "cases:ListLayouts" + ], + "handlerSchema": { + "properties": { + "DomainId": { + "$ref": "resource-schema.json#/properties/DomainId" + } + }, + "required": [ + "DomainId" + ] + } + } + }, + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "cases:GetLayout", + "cases:TagResource", + "cases:UntagResource" + ], + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "additionalProperties": false, + "attributes": { + "CreatedTime": { + "type": "string", + "description": "The time at which the layout was created.", + "format": "date-time", + "markdownDescription": "The time at which the layout was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the layout was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the layout was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LayoutArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the layout.", + "markdownDescription": "The Amazon Resource Name (ARN) of the layout.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LayoutId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the layout.", + "markdownDescription": "The unique identifier of the layout.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cases-template.json b/server/schema/resources/aws-cases-template.json new file mode 100644 index 00000000..ae45734d --- /dev/null +++ b/server/schema/resources/aws-cases-template.json @@ -0,0 +1,280 @@ +{ + "typeName": "AWS::Cases::Template", + "description": "A template in the Cases domain. This template is used to define the case object model (that is, to define what data can be captured on cases) in a Cases domain. A template must have a unique name within a domain, and it must reference existing field IDs and layout IDs.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "LayoutConfiguration": { + "type": "object", + "description": "Specifies the default layout to use when displaying cases created from this template. The layout determines which fields are visible and their arrangement in the agent interface.", + "properties": { + "DefaultLayout": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a layout.", + "markdownDescription": "The unique identifier of a layout.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Specifies the default layout to use when displaying cases created from this template. The layout determines which fields are visible and their arrangement in the agent interface.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RequiredField": { + "type": "object", + "description": "Wrapper object containing a field identifier", + "properties": { + "FieldId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a field.", + "markdownDescription": "The unique identifier of a field.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FieldId" + ], + "additionalProperties": false, + "markdownDescription": "Wrapper object containing a field identifier\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "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 -.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "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 -.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TemplateRule": { + "type": "object", + "description": "Links a case rule to a specific field within this template. When specified, the rule's conditions will be evaluated for the associated field, controlling behavior like required status, visibility, or available options.", + "properties": { + "CaseRuleId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a case rule.", + "markdownDescription": "The unique identifier of a case rule.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\n" + }, + "FieldId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The ID of the field that this rule applies to.", + "markdownDescription": "The ID of the field that this rule applies to.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CaseRuleId" + ], + "additionalProperties": false, + "markdownDescription": "Links a case rule to a specific field within this template. When specified, the rule's conditions will be evaluated for the associated field, controlling behavior like required status, visibility, or available options.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TemplateStatus": { + "type": "string", + "description": "The current status of the template. Active templates can be used to create new cases, while Inactive templates are disabled but preserved for existing cases.", + "enum": [ + "Active", + "Inactive" + ], + "markdownDescription": "The current status of the template. Active templates can be used to create new cases, while Inactive templates are disabled but preserved for existing cases.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Active | Inactive \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DomainId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of the Cases domain.", + "markdownDescription": "The unique identifier of the Cases domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: Replacement\n" + }, + "TemplateArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the template.", + "markdownDescription": "The Amazon Resource Name (ARN) of the template.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TemplateId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a template.", + "markdownDescription": "The unique identifier of a template.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "A name for the template. It must be unique per domain.", + "markdownDescription": "A name for the template. It must be unique per domain.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^.*[\\S]$ \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "maxLength": 255, + "description": "A description explaining the purpose and use case for this template. Should indicate what types of cases this template is designed for and any specific workflow it supports.", + "markdownDescription": "A description explaining the purpose and use case for this template. Should indicate what types of cases this template is designed for and any specific workflow it supports.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "LayoutConfiguration": { + "$ref": "#/definitions/LayoutConfiguration" + }, + "RequiredFields": { + "type": "array", + "items": { + "$ref": "#/definitions/RequiredField" + }, + "maxItems": 100, + "description": "A list of fields that must contain a value for a case to be successfully created with this template.", + "markdownDescription": "A list of fields that must contain a value for a case to be successfully created with this template.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Rules": { + "type": "array", + "items": { + "$ref": "#/definitions/TemplateRule" + }, + "maxItems": 50, + "description": "A list of case rules (also known as case field conditions) on a template.", + "markdownDescription": "A list of case rules (also known as case field conditions) on a template.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/TemplateStatus" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the template was created.", + "format": "date-time", + "markdownDescription": "The time at which the template was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the template was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the template was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "The tags that you attach to this template.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you attach to this template.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/CreatedTime", + "/properties/LastModifiedTime", + "/properties/TemplateArn", + "/properties/TemplateId" + ], + "createOnlyProperties": [ + "/properties/DomainId" + ], + "primaryIdentifier": [ + "/properties/TemplateArn" + ], + "handlers": { + "create": { + "permissions": [ + "cases:GetTemplate", + "cases:CreateTemplate", + "cases:TagResource" + ] + }, + "read": { + "permissions": [ + "cases:GetTemplate" + ] + }, + "update": { + "permissions": [ + "cases:GetTemplate", + "cases:UpdateTemplate", + "cases:TagResource", + "cases:UntagResource" + ] + }, + "delete": { + "permissions": [ + "cases:DeleteTemplate", + "cases:UntagResource" + ] + }, + "list": { + "permissions": [ + "cases:ListTemplates" + ], + "handlerSchema": { + "properties": { + "DomainId": { + "$ref": "resource-schema.json#/properties/DomainId" + } + }, + "required": [ + "DomainId" + ] + } + } + }, + "additionalProperties": false, + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "cases:GetTemplate", + "cases:TagResource", + "cases:UntagResource" + ], + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "attributes": { + "TemplateArn": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the template.", + "markdownDescription": "The Amazon Resource Name (ARN) of the template.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TemplateId": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "The unique identifier of a template.", + "markdownDescription": "The unique identifier of a template.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "description": "The time at which the template was created.", + "format": "date-time", + "markdownDescription": "The time at which the template was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "The time at which the template was created or last modified.", + "format": "date-time", + "markdownDescription": "The time at which the template was created or last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cassandra-keyspace.json b/server/schema/resources/aws-cassandra-keyspace.json index 9c030485..48e30cc7 100644 --- a/server/schema/resources/aws-cassandra-keyspace.json +++ b/server/schema/resources/aws-cassandra-keyspace.json @@ -88,6 +88,7 @@ "type": "string", "enum": [ "af-south-1", + "ap-east-1", "ap-northeast-1", "ap-northeast-2", "ap-south-1", @@ -99,18 +100,20 @@ "eu-west-1", "eu-west-2", "eu-west-3", + "me-central-1", + "me-south-1", "sa-east-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: af-south-1 | ap-northeast-1 | ap-northeast-2 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ca-central-1 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | eu-west-3 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2 \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ca-central-1 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-central-1 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2 \nUpdate requires: No interruption\n" }, "uniqueItems": true, "insertionOrder": false, "minItems": 2, - "maxItems": 17, + "maxItems": 20, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, diff --git a/server/schema/resources/aws-cassandra-table.json b/server/schema/resources/aws-cassandra-table.json index 664d3634..ec6bd9de 100644 --- a/server/schema/resources/aws-cassandra-table.json +++ b/server/schema/resources/aws-cassandra-table.json @@ -300,6 +300,24 @@ ], "default": "NEW_AND_OLD_IMAGES", "markdownDescription": "Specifies what data should be captured in the change data stream\n\n---\n\nRequired: No \nType: String \nAllowed Values: NEW_IMAGE | OLD_IMAGE | KEYS_ONLY | NEW_AND_OLD_IMAGES \nUpdate requires: No interruption\n" + }, + "WarmThroughput": { + "description": "Warm throughput configuration for the table", + "type": "object", + "properties": { + "ReadUnitsPerSecond": { + "type": "integer", + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "WriteUnitsPerSecond": { + "type": "integer", + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Warm throughput configuration for the table\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -392,6 +410,9 @@ "$ref": "#/definitions/ReplicaSpecification" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "WarmThroughput": { + "$ref": "#/definitions/WarmThroughput" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-ce-anomalymonitor.json b/server/schema/resources/aws-ce-anomalymonitor.json index 5f2dc95a..01456542 100644 --- a/server/schema/resources/aws-ce-anomalymonitor.json +++ b/server/schema/resources/aws-ce-anomalymonitor.json @@ -79,9 +79,12 @@ "description": "The dimensions to evaluate", "type": "string", "enum": [ - "SERVICE" + "SERVICE", + "LINKED_ACCOUNT", + "TAG", + "COST_CATEGORY" ], - "markdownDescription": "The dimensions to evaluate\n\n---\n\nRequired: No \nType: String \nAllowed Values: SERVICE \nUpdate requires: Replacement\n" + "markdownDescription": "The dimensions to evaluate\n\n---\n\nRequired: No \nType: String \nAllowed Values: SERVICE | LINKED_ACCOUNT | TAG | COST_CATEGORY \nUpdate requires: Replacement\n" }, "MonitorSpecification": { "type": "string", diff --git a/server/schema/resources/aws-chatbot-microsoftteamschannelconfiguration.json b/server/schema/resources/aws-chatbot-microsoftteamschannelconfiguration.json index 9974fd28..ed6162ed 100644 --- a/server/schema/resources/aws-chatbot-microsoftteamschannelconfiguration.json +++ b/server/schema/resources/aws-chatbot-microsoftteamschannelconfiguration.json @@ -159,7 +159,8 @@ "read": { "permissions": [ "chatbot:GetMicrosoftTeamsChannelConfiguration", - "chatbot:ListAssociations" + "chatbot:ListAssociations", + "chatbot:ListTagsForResource" ] }, "update": { diff --git a/server/schema/resources/aws-chime-appinstance.json b/server/schema/resources/aws-chime-appinstance.json new file mode 100644 index 00000000..9b246e5f --- /dev/null +++ b/server/schema/resources/aws-chime-appinstance.json @@ -0,0 +1,154 @@ +{ + "typeName": "AWS::Chime::AppInstance", + "description": "Resource Type definition for AWS::Chime::AppInstance", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A tag object containing a key-value pair.", + "type": "object", + "properties": { + "Key": { + "description": "The key in a tag.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key in a tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The value in a tag.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The value in a tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A tag object containing a key-value pair.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AppInstanceArn": { + "description": "The Amazon Resource Number (ARN) of the AppInstance.", + "type": "string", + "minLength": 5, + "maxLength": 1600, + "markdownDescription": "The Amazon Resource Number (ARN) of the AppInstance.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 1600 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the AppInstance.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The name of the AppInstance.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Metadata": { + "description": "The metadata of the AppInstance. Limited to a 1KB string in UTF-8.", + "type": "string", + "minLength": 0, + "maxLength": 1024, + "markdownDescription": "The metadata of the AppInstance. Limited to a 1KB string in UTF-8.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "description": "The time at which an AppInstance was created. In epoch milliseconds.", + "type": "number", + "markdownDescription": "The time at which an AppInstance was created. In epoch milliseconds.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTimestamp": { + "description": "The time an AppInstance was last updated. In epoch milliseconds.", + "type": "number", + "markdownDescription": "The time an AppInstance was last updated. In epoch milliseconds.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "Tags assigned to the AppInstance.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags assigned to the AppInstance.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/AppInstanceArn", + "/properties/CreatedTimestamp", + "/properties/LastUpdatedTimestamp" + ], + "primaryIdentifier": [ + "/properties/AppInstanceArn" + ], + "handlers": { + "create": { + "permissions": [ + "chime:CreateAppInstance", + "chime:DescribeAppInstance", + "chime:TagResource", + "chime:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "chime:DescribeAppInstance", + "chime:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "chime:UpdateAppInstance", + "chime:DescribeAppInstance", + "chime:TagResource", + "chime:UntagResource", + "chime:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "chime:DeleteAppInstance", + "chime:DescribeAppInstance" + ] + }, + "list": { + "permissions": [ + "chime:ListAppInstances" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "chime:TagResource", + "chime:UntagResource", + "chime:ListTagsForResource" + ] + }, + "attributes": { + "AppInstanceArn": { + "description": "The Amazon Resource Number (ARN) of the AppInstance.", + "type": "string", + "minLength": 5, + "maxLength": 1600, + "markdownDescription": "The Amazon Resource Number (ARN) of the AppInstance.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 1600 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTimestamp": { + "description": "The time at which an AppInstance was created. In epoch milliseconds.", + "type": "number", + "markdownDescription": "The time at which an AppInstance was created. In epoch milliseconds.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTimestamp": { + "description": "The time an AppInstance was last updated. In epoch milliseconds.", + "type": "number", + "markdownDescription": "The time an AppInstance was last updated. In epoch milliseconds.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cleanrooms-analysistemplate.json b/server/schema/resources/aws-cleanrooms-analysistemplate.json index a2b2527f..faf49ed4 100644 --- a/server/schema/resources/aws-cleanrooms-analysistemplate.json +++ b/server/schema/resources/aws-cleanrooms-analysistemplate.json @@ -9,8 +9,8 @@ "DefaultValue": { "type": "string", "minLength": 0, - "maxLength": 250, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 250 \nUpdate requires: No interruption\n" + "maxLength": 1000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1000 \nUpdate requires: No interruption\n" }, "Name": { "type": "string", @@ -270,6 +270,99 @@ ], "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SyntheticDataParameters": { + "oneOf": [ + { + "type": "object", + "title": "MlSyntheticDataParameters", + "properties": { + "MlSyntheticDataParameters": { + "$ref": "#/definitions/MLSyntheticDataParameters" + } + }, + "required": [ + "MlSyntheticDataParameters" + ], + "additionalProperties": false + } + ] + }, + "MLSyntheticDataParameters": { + "type": "object", + "properties": { + "Epsilon": { + "type": "number", + "minimum": 0.0001, + "maximum": 10, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "MaxMembershipInferenceAttackScore": { + "type": "number", + "minimum": 0.5, + "maximum": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "ColumnClassification": { + "$ref": "#/definitions/ColumnClassificationDetails" + } + }, + "required": [ + "Epsilon", + "MaxMembershipInferenceAttackScore", + "ColumnClassification" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ColumnClassificationDetails": { + "type": "object", + "properties": { + "ColumnMapping": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SyntheticDataColumnProperties" + }, + "minItems": 5, + "maxItems": 1000, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ColumnMapping" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SyntheticDataColumnProperties": { + "type": "object", + "properties": { + "ColumnName": { + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^[a-z0-9_](([a-z0-9_]+-)*([a-z0-9_]+))?$ \nUpdate requires: No interruption\n" + }, + "ColumnType": { + "type": "string", + "enum": [ + "CATEGORICAL", + "NUMERICAL" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CATEGORICAL | NUMERICAL \nUpdate requires: No interruption\n" + }, + "IsPredictiveValue": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ColumnName", + "ColumnType", + "IsPredictiveValue" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -306,7 +399,7 @@ }, "type": "array", "minItems": 0, - "maxItems": 10, + "maxItems": 50, "markdownDescription": "The member who can query can provide this placeholder for a literal data value in an analysis template\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, "AnalysisTemplateIdentifier": { @@ -355,6 +448,9 @@ }, "ErrorMessageConfiguration": { "$ref": "#/definitions/ErrorMessageConfiguration" + }, + "SyntheticDataParameters": { + "$ref": "#/definitions/SyntheticDataParameters" } }, "required": [ @@ -377,7 +473,8 @@ "/properties/Format", "/properties/AnalysisParameters", "/properties/Schema", - "/properties/ErrorMessageConfiguration" + "/properties/ErrorMessageConfiguration", + "/properties/SyntheticDataParameters" ], "primaryIdentifier": [ "/properties/AnalysisTemplateIdentifier", diff --git a/server/schema/resources/aws-cleanrooms-collaboration.json b/server/schema/resources/aws-cleanrooms-collaboration.json index 4d7f8c5e..8964761b 100644 --- a/server/schema/resources/aws-cleanrooms-collaboration.json +++ b/server/schema/resources/aws-cleanrooms-collaboration.json @@ -14,9 +14,11 @@ "AutoApprovedChangeType": { "type": "string", "enum": [ - "ADD_MEMBER" + "ADD_MEMBER", + "GRANT_RECEIVE_RESULTS_ABILITY", + "REVOKE_RECEIVE_RESULTS_ABILITY" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ADD_MEMBER \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ADD_MEMBER | GRANT_RECEIVE_RESULTS_ABILITY | REVOKE_RECEIVE_RESULTS_ABILITY \nUpdate requires: No interruption\n" }, "AutoApprovedChangeTypeList": { "type": "array", @@ -35,6 +37,54 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" }, + "SupportedS3Region": { + "type": "string", + "enum": [ + "us-west-1", + "us-west-2", + "us-east-1", + "us-east-2", + "af-south-1", + "ap-east-1", + "ap-east-2", + "ap-south-2", + "ap-southeast-1", + "ap-southeast-2", + "ap-southeast-3", + "ap-southeast-5", + "ap-southeast-4", + "ap-southeast-7", + "ap-south-1", + "ap-northeast-3", + "ap-northeast-1", + "ap-northeast-2", + "ca-central-1", + "ca-west-1", + "eu-south-1", + "eu-west-3", + "eu-south-2", + "eu-central-2", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "me-south-1", + "me-central-1", + "il-central-1", + "sa-east-1", + "mx-central-1" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: us-west-1 | us-west-2 | us-east-1 | us-east-2 | af-south-1 | ap-east-1 | ap-east-2 | ap-south-2 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ap-southeast-5 | ap-southeast-4 | ap-southeast-7 | ap-south-1 | ap-northeast-3 | ap-northeast-1 | ap-northeast-2 | ca-central-1 | ca-west-1 | eu-south-1 | eu-west-3 | eu-south-2 | eu-central-2 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | me-south-1 | me-central-1 | il-central-1 | sa-east-1 | mx-central-1 \nUpdate requires: No interruption\n" + }, + "AllowedResultRegions": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SupportedS3Region" + }, + "uniqueItems": true, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "CollaborationQueryLogStatus": { "type": "string", "enum": [ @@ -244,6 +294,9 @@ }, "ModelInference": { "$ref": "#/definitions/ModelInferencePaymentConfig" + }, + "SyntheticDataGeneration": { + "$ref": "#/definitions/SyntheticDataGenerationPaymentConfig" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -275,6 +328,20 @@ "IsResponsible" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SyntheticDataGenerationPaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IsResponsible" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -347,6 +414,13 @@ }, "AutoApprovedChangeTypes": { "$ref": "#/definitions/AutoApprovedChangeTypeList" + }, + "AllowedResultRegions": { + "$ref": "#/definitions/AllowedResultRegions" + }, + "IsMetricsEnabled": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "required": [ @@ -368,7 +442,8 @@ "/properties/QueryLogStatus", "/properties/Members", "/properties/CreatorPaymentConfiguration", - "/properties/AutoApprovedChangeTypes" + "/properties/AutoApprovedChangeTypes", + "/properties/AllowedResultRegions" ], "primaryIdentifier": [ "/properties/CollaborationIdentifier" diff --git a/server/schema/resources/aws-cleanrooms-configuredtable.json b/server/schema/resources/aws-cleanrooms-configuredtable.json index 22a0c2e6..7d1531ac 100644 --- a/server/schema/resources/aws-cleanrooms-configuredtable.json +++ b/server/schema/resources/aws-cleanrooms-configuredtable.json @@ -426,6 +426,44 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: AGGREGATION | LIST | CUSTOM \nUpdate requires: No interruption\n" }, + "CommercialRegion": { + "type": "string", + "enum": [ + "us-west-1", + "us-west-2", + "us-east-1", + "us-east-2", + "af-south-1", + "ap-east-1", + "ap-south-2", + "ap-southeast-1", + "ap-southeast-2", + "ap-southeast-5", + "ap-southeast-4", + "ap-southeast-7", + "ap-south-1", + "ap-northeast-3", + "ap-northeast-1", + "ap-northeast-2", + "ca-central-1", + "ca-west-1", + "eu-south-1", + "eu-west-3", + "eu-south-2", + "eu-central-2", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "me-south-1", + "me-central-1", + "il-central-1", + "sa-east-1", + "mx-central-1", + "ap-east-2" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: us-west-1 | us-west-2 | us-east-1 | us-east-2 | af-south-1 | ap-east-1 | ap-south-2 | ap-southeast-1 | ap-southeast-2 | ap-southeast-5 | ap-southeast-4 | ap-southeast-7 | ap-south-1 | ap-northeast-3 | ap-northeast-1 | ap-northeast-2 | ca-central-1 | ca-west-1 | eu-south-1 | eu-west-3 | eu-south-2 | eu-central-2 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | me-south-1 | me-central-1 | il-central-1 | sa-east-1 | mx-central-1 | ap-east-2 \nUpdate requires: No interruption\n" + }, "GlueTableReference": { "type": "object", "properties": { @@ -438,6 +476,9 @@ "type": "string", "maxLength": 128, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$ \nUpdate requires: No interruption\n" + }, + "Region": { + "$ref": "#/definitions/CommercialRegion" } }, "required": [ @@ -562,6 +603,15 @@ "type": "string", "maxLength": 128, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Region": { + "$ref": "#/definitions/CommercialRegion" + }, + "CatalogName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-cleanrooms-membership.json b/server/schema/resources/aws-cleanrooms-membership.json index e796e635..ae03a88c 100644 --- a/server/schema/resources/aws-cleanrooms-membership.json +++ b/server/schema/resources/aws-cleanrooms-membership.json @@ -213,6 +213,9 @@ }, "ModelInference": { "$ref": "#/definitions/MembershipModelInferencePaymentConfig" + }, + "SyntheticDataGeneration": { + "$ref": "#/definitions/MembershipSyntheticDataGenerationPaymentConfig" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -245,6 +248,20 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "MembershipSyntheticDataGenerationPaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IsResponsible" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "MembershipJobComputePaymentConfig": { "type": "object", "additionalProperties": false, @@ -313,6 +330,10 @@ }, "PaymentConfiguration": { "$ref": "#/definitions/MembershipPaymentConfiguration" + }, + "IsMetricsEnabled": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-cleanrooms-privacybudgettemplate.json b/server/schema/resources/aws-cleanrooms-privacybudgettemplate.json index a25491e8..37cb03db 100644 --- a/server/schema/resources/aws-cleanrooms-privacybudgettemplate.json +++ b/server/schema/resources/aws-cleanrooms-privacybudgettemplate.json @@ -24,6 +24,40 @@ "Key" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BudgetParameter": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "type": "string", + "enum": [ + "CALENDAR_DAY", + "CALENDAR_MONTH", + "CALENDAR_WEEK", + "LIFETIME" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CALENDAR_DAY | CALENDAR_MONTH | CALENDAR_WEEK | LIFETIME \nUpdate requires: No interruption\n" + }, + "Budget": { + "type": "integer", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "AutoRefresh": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type", + "Budget" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -69,9 +103,10 @@ "PrivacyBudgetType": { "type": "string", "enum": [ - "DIFFERENTIAL_PRIVACY" + "DIFFERENTIAL_PRIVACY", + "ACCESS_BUDGET" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DIFFERENTIAL_PRIVACY \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DIFFERENTIAL_PRIVACY | ACCESS_BUDGET \nUpdate requires: Replacement\n" }, "Parameters": { "type": "object", @@ -81,19 +116,30 @@ "type": "integer", "minimum": 1, "maximum": 20, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "UsersNoisePerQuery": { "type": "integer", "minimum": 10, "maximum": 100, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "BudgetParameters": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BudgetParameter" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ResourceArn": { + "type": "string", + "maxLength": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 200 \nUpdate requires: No interruption\n" } }, - "required": [ - "Epsilon", - "UsersNoisePerQuery" - ], "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" }, "MembershipArn": { @@ -124,7 +170,8 @@ "createOnlyProperties": [ "/properties/MembershipIdentifier", "/properties/PrivacyBudgetType", - "/properties/AutoRefresh" + "/properties/AutoRefresh", + "/properties/Parameters/ResourceArn" ], "primaryIdentifier": [ "/properties/PrivacyBudgetTemplateIdentifier", diff --git a/server/schema/resources/aws-cleanroomsml-configuredmodelalgorithm.json b/server/schema/resources/aws-cleanroomsml-configuredmodelalgorithm.json new file mode 100644 index 00000000..7a42ca03 --- /dev/null +++ b/server/schema/resources/aws-cleanroomsml-configuredmodelalgorithm.json @@ -0,0 +1,236 @@ +{ + "typeName": "AWS::CleanRoomsML::ConfiguredModelAlgorithm", + "description": "Definition of AWS::CleanRoomsML::ConfiguredModelAlgorithm Resource Type", + "definitions": { + "ContainerConfig": { + "type": "object", + "properties": { + "ImageUri": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^.*$ \nUpdate requires: No interruption\n" + }, + "Entrypoint": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^.*$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Arguments": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^.*$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MetricDefinitions": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDefinition" + }, + "minItems": 0, + "maxItems": 40, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ImageUri" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InferenceContainerConfig": { + "type": "object", + "properties": { + "ImageUri": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^.*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ImageUri" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MetricDefinition": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^.+$ \nUpdate requires: No interruption\n" + }, + "Regex": { + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^.+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Regex" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ConfiguredModelAlgorithmArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:configured-model-algorithm/[-a-zA-Z0-9_/.]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "maxLength": 63, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$ \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nPattern: ^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$ \nUpdate requires: Replacement\n" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: Replacement\n" + }, + "TrainingContainerConfig": { + "$ref": "#/definitions/ContainerConfig" + }, + "InferenceContainerConfig": { + "$ref": "#/definitions/InferenceContainerConfig" + }, + "KmsKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:kms:[-a-z0-9]+:[0-9]{12}:key/.+$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml configured model algorithm.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "uniqueItems": true, + "type": "array", + "markdownDescription": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml configured model algorithm.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "RoleArn" + ], + "readOnlyProperties": [ + "/properties/ConfiguredModelAlgorithmArn" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description", + "/properties/RoleArn", + "/properties/TrainingContainerConfig", + "/properties/InferenceContainerConfig", + "/properties/KmsKeyArn" + ], + "primaryIdentifier": [ + "/properties/ConfiguredModelAlgorithmArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateConfiguredModelAlgorithm", + "cleanrooms-ml:GetConfiguredModelAlgorithm", + "cleanrooms-ml:TagResource", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetConfiguredModelAlgorithm" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteConfiguredModelAlgorithm" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListConfiguredModelAlgorithms" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "additionalProperties": false, + "attributes": { + "ConfiguredModelAlgorithmArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:configured-model-algorithm/[-a-zA-Z0-9_/.]+$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cleanroomsml-configuredmodelalgorithmassociation.json b/server/schema/resources/aws-cleanroomsml-configuredmodelalgorithmassociation.json new file mode 100644 index 00000000..435cdedf --- /dev/null +++ b/server/schema/resources/aws-cleanroomsml-configuredmodelalgorithmassociation.json @@ -0,0 +1,470 @@ +{ + "typeName": "AWS::CleanRoomsML::ConfiguredModelAlgorithmAssociation", + "description": "Definition of AWS::CleanRoomsML::ConfiguredModelAlgorithmAssociation Resource Type", + "definitions": { + "PrivacyConfiguration": { + "type": "object", + "properties": { + "Policies": { + "$ref": "#/definitions/PrivacyConfigurationPolicies" + } + }, + "required": [ + "Policies" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PrivacyConfigurationPolicies": { + "type": "object", + "properties": { + "TrainedModels": { + "$ref": "#/definitions/TrainedModelsConfigurationPolicy" + }, + "TrainedModelExports": { + "$ref": "#/definitions/TrainedModelExportsConfigurationPolicy" + }, + "TrainedModelInferenceJobs": { + "$ref": "#/definitions/TrainedModelInferenceJobsConfigurationPolicy" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainedModelsConfigurationPolicy": { + "type": "object", + "properties": { + "ContainerLogs": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LogsConfigurationPolicy" + }, + "uniqueItems": true, + "minItems": 1, + "maxItems": 5, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ContainerMetrics": { + "$ref": "#/definitions/MetricsConfigurationPolicy" + }, + "MaxArtifactSize": { + "$ref": "#/definitions/TrainedModelArtifactMaxSize" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainedModelExportsConfigurationPolicy": { + "type": "object", + "properties": { + "MaxSize": { + "$ref": "#/definitions/TrainedModelExportsMaxSize" + }, + "FilesToExport": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TrainedModelExportFileType" + }, + "uniqueItems": true, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "MaxSize", + "FilesToExport" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainedModelInferenceJobsConfigurationPolicy": { + "type": "object", + "properties": { + "ContainerLogs": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LogsConfigurationPolicy" + }, + "uniqueItems": true, + "minItems": 1, + "maxItems": 5, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MaxOutputSize": { + "$ref": "#/definitions/TrainedModelInferenceMaxOutputSize" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogsConfigurationPolicy": { + "type": "object", + "properties": { + "AllowedAccountIds": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "FilterPattern": { + "type": "string", + "minLength": 0, + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "LogType": { + "$ref": "#/definitions/LogType" + }, + "LogRedactionConfiguration": { + "$ref": "#/definitions/LogRedactionConfiguration" + } + }, + "required": [ + "AllowedAccountIds" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogType": { + "type": "string", + "enum": [ + "ALL", + "ERROR_SUMMARY" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALL | ERROR_SUMMARY \nUpdate requires: No interruption\n" + }, + "LogRedactionConfiguration": { + "type": "object", + "properties": { + "EntitiesToRedact": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EntityType" + }, + "uniqueItems": true, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomEntityConfig": { + "$ref": "#/definitions/CustomEntityConfig" + } + }, + "required": [ + "EntitiesToRedact" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EntityType": { + "type": "string", + "enum": [ + "ALL_PERSONALLY_IDENTIFIABLE_INFORMATION", + "NUMBERS", + "CUSTOM" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALL_PERSONALLY_IDENTIFIABLE_INFORMATION | NUMBERS | CUSTOM \nUpdate requires: No interruption\n" + }, + "CustomEntityConfig": { + "type": "object", + "properties": { + "CustomDataIdentifiers": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nPattern: ^[a-zA-Z0-9\\_\\#\\=\\@\\/\\;\\,\\-\\ \\^\\$\\?\\[\\]\\{\\}\\|\\\\\\*\\+\\.\\(\\)]+$ \nUpdate requires: No interruption\n" + }, + "uniqueItems": true, + "minItems": 1, + "maxItems": 10, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CustomDataIdentifiers" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MetricsConfigurationPolicy": { + "type": "object", + "properties": { + "NoiseLevel": { + "$ref": "#/definitions/NoiseLevelType" + } + }, + "required": [ + "NoiseLevel" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NoiseLevelType": { + "type": "string", + "enum": [ + "HIGH", + "MEDIUM", + "LOW", + "NONE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: HIGH | MEDIUM | LOW | NONE \nUpdate requires: No interruption\n" + }, + "TrainedModelInferenceMaxOutputSize": { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/definitions/TrainedModelInferenceMaxOutputSizeUnitType" + }, + "Value": { + "type": "number", + "minimum": 0.01, + "maximum": 50.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Unit", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainedModelInferenceMaxOutputSizeUnitType": { + "type": "string", + "enum": [ + "GB" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GB \nUpdate requires: No interruption\n" + }, + "TrainedModelExportsMaxSize": { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/definitions/TrainedModelExportsMaxSizeUnitType" + }, + "Value": { + "type": "number", + "minimum": 0.01, + "maximum": 10.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Unit", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainedModelExportsMaxSizeUnitType": { + "type": "string", + "enum": [ + "GB" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GB \nUpdate requires: No interruption\n" + }, + "TrainedModelArtifactMaxSize": { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/definitions/TrainedModelArtifactMaxSizeUnitType" + }, + "Value": { + "type": "number", + "minimum": 0.01, + "maximum": 10.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Unit", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainedModelArtifactMaxSizeUnitType": { + "type": "string", + "enum": [ + "GB" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GB \nUpdate requires: No interruption\n" + }, + "TrainedModelExportFileType": { + "type": "string", + "enum": [ + "MODEL", + "OUTPUT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MODEL | OUTPUT \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ConfiguredModelAlgorithmAssociationArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/configured-model-algorithm-association/[-a-zA-Z0-9_/.]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "MembershipIdentifier": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 36 \nMaximum Length: 36 \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: Replacement\n" + }, + "CollaborationIdentifier": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 36 \nMaximum Length: 36 \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConfiguredModelAlgorithmArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:configured-model-algorithm/[-a-zA-Z0-9_/.]+$ \nUpdate requires: Replacement\n" + }, + "Name": { + "type": "string", + "maxLength": 63, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$ \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nPattern: ^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$ \nUpdate requires: Replacement\n" + }, + "PrivacyConfiguration": { + "$ref": "#/definitions/PrivacyConfiguration" + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml configured model algorithm association.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "uniqueItems": true, + "type": "array", + "markdownDescription": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml configured model algorithm association.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "MembershipIdentifier", + "ConfiguredModelAlgorithmArn", + "Name" + ], + "readOnlyProperties": [ + "/properties/ConfiguredModelAlgorithmAssociationArn", + "/properties/CollaborationIdentifier" + ], + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/ConfiguredModelAlgorithmArn", + "/properties/Name", + "/properties/Description", + "/properties/PrivacyConfiguration" + ], + "primaryIdentifier": [ + "/properties/ConfiguredModelAlgorithmAssociationArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateConfiguredModelAlgorithmAssociation", + "cleanrooms-ml:GetConfiguredModelAlgorithmAssociation", + "cleanrooms-ml:TagResource", + "cleanrooms:GetMembership", + "cleanrooms:PassMembership", + "cleanrooms:ListMembers", + "cleanrooms:GetCollaboration" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetConfiguredModelAlgorithmAssociation", + "cleanrooms:GetMembership", + "cleanrooms:PassMembership" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteConfiguredModelAlgorithmAssociation", + "cleanrooms:GetMembership", + "cleanrooms:PassMembership" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListConfiguredModelAlgorithmAssociations", + "cleanrooms:GetMembership", + "cleanrooms:PassMembership" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "additionalProperties": false, + "attributes": { + "ConfiguredModelAlgorithmAssociationArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:membership/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/configured-model-algorithm-association/[-a-zA-Z0-9_/.]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CollaborationIdentifier": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 36 \nMaximum Length: 36 \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cloudformation-guardhook.json b/server/schema/resources/aws-cloudformation-guardhook.json index 7d8441d2..07dacc45 100644 --- a/server/schema/resources/aws-cloudformation-guardhook.json +++ b/server/schema/resources/aws-cloudformation-guardhook.json @@ -318,7 +318,19 @@ "Options": { "properties": { "InputParams": { - "$ref": "#/definitions/S3Location" + "oneOf": [ + { + "$ref": "#/definitions/S3Location" + }, + { + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/S3Location" + } + } + ] } }, "required": [], diff --git a/server/schema/resources/aws-cloudformation-stackset.json b/server/schema/resources/aws-cloudformation-stackset.json index 79393d22..4d55a649 100644 --- a/server/schema/resources/aws-cloudformation-stackset.json +++ b/server/schema/resources/aws-cloudformation-stackset.json @@ -47,11 +47,26 @@ "description": "If set to true, stack resources are retained when an account is removed from a target organization or OU. If set to false, stack resources are deleted. Specify only if Enabled is set to True.", "type": "boolean", "markdownDescription": "If set to true, stack resources are retained when an account is removed from a target organization or OU. If set to false, stack resources are deleted. Specify only if Enabled is set to True.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "DependsOn": { + "description": "A list of StackSet ARNs that this StackSet depends on for auto-deployment operations. When auto-deployment is triggered, operations will be sequenced to ensure all dependencies complete successfully before this StackSet's operation begins.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/StackSetArn" + }, + "markdownDescription": "A list of StackSet ARNs that this StackSet depends on for auto-deployment operations. When auto-deployment is triggered, operations will be sequenced to ensure all dependencies complete successfully before this StackSet's operation begins.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "StackSetArn": { + "description": "The Amazon Resource Number (ARN) of a stack set.", + "type": "string", + "markdownDescription": "The Amazon Resource Number (ARN) of a stack set.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Account": { "description": "AWS account that you want to create stack instances in the specified Region(s) for.", "type": "string", @@ -470,10 +485,7 @@ }, "list": { "permissions": [ - "cloudformation:ListStackSets", - "cloudformation:DescribeStackSet", - "cloudformation:ListStackInstances", - "cloudformation:DescribeStackInstance" + "cloudformation:ListStackSets" ] } }, diff --git a/server/schema/resources/aws-cloudfront-anycastiplist.json b/server/schema/resources/aws-cloudfront-anycastiplist.json index 9020603e..3177c458 100644 --- a/server/schema/resources/aws-cloudfront-anycastiplist.json +++ b/server/schema/resources/aws-cloudfront-anycastiplist.json @@ -1,10 +1,5 @@ { "additionalProperties": false, - "createOnlyProperties": [ - "/properties/IpCount", - "/properties/Name", - "/properties/Tags" - ], "definitions": { "AnycastIpList": { "additionalProperties": false, @@ -33,6 +28,16 @@ "description": "The number of IP addresses in the Anycast static IP list.", "markdownDescription": "The number of IP addresses in the Anycast static IP list.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType", + "description": "The IP address type for the Anycast static IP list.", + "markdownDescription": "The IP address type for the Anycast static IP list.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "IpamCidrConfigResults": { + "$ref": "#/definitions/IpamCidrConfigResults", + "description": "The results for the IPAM CIDRs that defines a specific IP address range, IPAM pool, and associated Anycast IP address.", + "markdownDescription": "The results for the IPAM CIDRs that defines a specific IP address range, IPAM pool, and associated Anycast IP address.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "LastModifiedTime": { "format": "date-time", "type": "string", @@ -105,6 +110,82 @@ "type": "object", "description": "A complex type that contains zero or more ``Tag`` elements.", "markdownDescription": "A complex type that contains zero or more ``Tag`` elements.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpAddressType": { + "enum": [ + "ipv4", + "dualstack" + ], + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | dualstack \nUpdate requires: No interruption\n" + }, + "IpamCidrConfigResult": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string", + "description": "The CIDR that specifies the IP address range for this IPAM configuration.", + "markdownDescription": "The CIDR that specifies the IP address range for this IPAM configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IpamPoolArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the IPAM pool that the CIDR block is assigned to.", + "markdownDescription": "The Amazon Resource Name (ARN) of the IPAM pool that the CIDR block is assigned to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AnycastIp": { + "type": "string", + "description": "The specified Anycast IP address allocated from the IPAM pool for this CIDR configuration.", + "markdownDescription": "The specified Anycast IP address allocated from the IPAM pool for this CIDR configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "description": "The current status of the IPAM CIDR configuration.", + "markdownDescription": "The current status of the IPAM CIDR configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "type": "object", + "description": "The result for the IPAM CIDR that defines a specific IP address range, IPAM pool, and associated Anycast IP address.", + "markdownDescription": "The result for the IPAM CIDR that defines a specific IP address range, IPAM pool, and associated Anycast IP address.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpamCidrConfigResults": { + "additionalProperties": false, + "items": { + "$ref": "#/definitions/IpamCidrConfigResult" + }, + "type": "array", + "uniqueItems": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IpamCidrConfig": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string", + "description": "The CIDR that specifies the IP address range for this IPAM configuration.", + "markdownDescription": "The CIDR that specifies the IP address range for this IPAM configuration.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "IpamPoolArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the IPAM pool that the CIDR block is assigned to.", + "markdownDescription": "The Amazon Resource Name (ARN) of the IPAM pool that the CIDR block is assigned to.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Cidr", + "IpamPoolArn" + ], + "type": "object", + "description": "Configuration for an IPAM CIDR that defines a specific IP address range, IPAM pool, and associated Anycast IP address.", + "markdownDescription": "Configuration for an IPAM CIDR that defines a specific IP address range, IPAM pool, and associated Anycast IP address.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpamCidrConfigs": { + "additionalProperties": false, + "items": { + "$ref": "#/definitions/IpamCidrConfig" + }, + "type": "array", + "uniqueItems": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "description": "An Anycast static IP list. For more information, see [Request Anycast static IPs to use for allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) in the *Amazon CloudFront Developer Guide*.", @@ -121,6 +202,15 @@ "cloudfront:GetAnycastIpList" ] }, + "update": { + "permissions": [ + "cloudfront:UpdateAnycastIpList", + "cloudfront:GetAnycastIpList", + "cloudfront:ListTagsForResource", + "cloudfront:TagResource", + "cloudfront:UntagResource" + ] + }, "list": { "permissions": [ "cloudfront:ListAnycastIpLists" @@ -157,6 +247,21 @@ "description": "The number of IP addresses in the Anycast static IP list.", "markdownDescription": "The number of IP addresses in the Anycast static IP list.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType", + "description": "The IP address type for the Anycast static IP list.", + "markdownDescription": "The IP address type for the Anycast static IP list.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "IpamCidrConfigs": { + "$ref": "#/definitions/IpamCidrConfigs", + "description": "A list of IPAM CIDR configurations that define the IP address ranges, IPAM pools, and associated Anycast IP addresses.", + "markdownDescription": "A list of IPAM CIDR configurations that define the IP address ranges, IPAM pools, and associated Anycast IP addresses.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "IpamCidrConfigResults": { + "$ref": "#/definitions/IpamCidrConfigResults", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, "Name": { "maxLength": 64, "minLength": 1, @@ -170,10 +275,19 @@ "markdownDescription": "A complex type that contains zero or more ``Tag`` elements.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" } }, + "createOnlyProperties": [ + "/properties/IpCount", + "/properties/Name", + "/properties/Tags" + ], "readOnlyProperties": [ "/properties/AnycastIpList", "/properties/ETag", - "/properties/Id" + "/properties/Id", + "/properties/IpamCidrConfigResults" + ], + "writeOnlyProperties": [ + "/properties/IpamCidrConfigs" ], "required": [ "IpCount", @@ -183,11 +297,12 @@ "cloudFormationSystemTags": false, "permissions": [ "cloudfront:TagResource", + "cloudfront:UntagResource", "cloudfront:ListTagsForResource" ], "tagOnCreate": true, "tagProperty": "/properties/Tags", - "tagUpdatable": false, + "tagUpdatable": true, "taggable": true }, "typeName": "AWS::CloudFront::AnycastIpList", @@ -206,6 +321,11 @@ "type": "string", "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamCidrConfigResults": { + "$ref": "#/definitions/IpamCidrConfigResults", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-cloudfront-connectionfunction.json b/server/schema/resources/aws-cloudfront-connectionfunction.json new file mode 100644 index 00000000..15d45643 --- /dev/null +++ b/server/schema/resources/aws-cloudfront-connectionfunction.json @@ -0,0 +1,293 @@ +{ + "typeName": "AWS::CloudFront::ConnectionFunction", + "additionalProperties": false, + "definitions": { + "ConnectionFunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string", + "description": "A comment to describe the function.", + "markdownDescription": "A comment to describe the function.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Runtime": { + "type": "string", + "enum": [ + "cloudfront-js-2.0" + ], + "description": "The function's runtime environment version.", + "markdownDescription": "The function's runtime environment version.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: cloudfront-js-2.0 \nUpdate requires: No interruption\n" + }, + "KeyValueStoreAssociations": { + "type": "array", + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "uniqueItems": true, + "description": "The configuration for the key value store associations.", + "markdownDescription": "The configuration for the key value store associations.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object", + "description": "Contains configuration information about a CloudFront function.", + "markdownDescription": "Contains configuration information about a CloudFront function.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the key value store association.", + "markdownDescription": "The Amazon Resource Name (ARN) of the key value store association.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object", + "description": "The key value store association.", + "markdownDescription": "The key value store association.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "description": "A string that contains ``Tag`` key.\n The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.", + "markdownDescription": "A string that contains ``Tag`` key.\n The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "description": "A string that contains an optional ``Tag`` value.\n The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.", + "markdownDescription": "A string that contains an optional ``Tag`` value.\n The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object", + "description": "A complex type that contains ``Tag`` key and ``Tag`` value.", + "markdownDescription": "A complex type that contains ``Tag`` key and ``Tag`` value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "description": "A connection function.", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateConnectionFunction", + "cloudfront:DescribeConnectionFunction", + "cloudfront:PublishConnectionFunction", + "cloudfront:TagResource" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeConnectionFunction", + "cloudfront:GetConnectionFunction", + "cloudfront:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateConnectionFunction", + "cloudfront:DescribeConnectionFunction", + "cloudfront:PublishConnectionFunction", + "cloudfront:TagResource", + "cloudfront:UntagResource" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteConnectionFunction", + "cloudfront:DescribeConnectionFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListConnectionFunctions" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "additionalIdentifiers": [ + [ + "/properties/ConnectionFunctionArn" + ], + [ + "/properties/Name" + ] + ], + "properties": { + "Id": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "The connection function name.", + "markdownDescription": "The connection function name.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "ConnectionFunctionArn": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectionFunctionCode": { + "type": "string", + "description": "The code for the connection function.", + "markdownDescription": "The code for the connection function.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ConnectionFunctionConfig": { + "$ref": "#/definitions/ConnectionFunctionConfig", + "description": "Contains configuration information about a CloudFront function.", + "markdownDescription": "Contains configuration information about a CloudFront function.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "AutoPublish": { + "type": "boolean", + "default": false, + "description": "A flag that determines whether to automatically publish the function to the ``LIVE`` stage when it\u2019s created. To automatically publish to the ``LIVE`` stage, set this property to ``true``.", + "markdownDescription": "A flag that determines whether to automatically publish the function to the ``LIVE`` stage when it\u2019s created. To automatically publish to the ``LIVE`` stage, set this property to ``true``.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Stage": { + "type": "string", + "enum": [ + "DEVELOPMENT", + "LIVE" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEVELOPMENT | LIVE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "UNPUBLISHED", + "DEPLOYED", + "UNASSOCIATED", + "PUBLISHING", + "IN_PROGRESS" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: UNPUBLISHED | DEPLOYED | UNASSOCIATED | PUBLISHING | IN_PROGRESS \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ETag": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "A complex type that contains zero or more ``Tag`` elements.", + "markdownDescription": "A complex type that contains zero or more ``Tag`` elements.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ConnectionFunctionConfig/Runtime" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/ConnectionFunctionArn", + "/properties/Stage", + "/properties/Status", + "/properties/ETag", + "/properties/CreatedTime", + "/properties/LastModifiedTime" + ], + "writeOnlyProperties": [ + "/properties/AutoPublish" + ], + "required": [ + "Name", + "ConnectionFunctionCode", + "ConnectionFunctionConfig" + ], + "tagging": { + "cloudFormationSystemTags": false, + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cloudfront:TagResource", + "cloudfront:UntagResource", + "cloudfront:ListTagsForResource" + ] + }, + "attributes": { + "Id": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectionFunctionArn": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Stage": { + "type": "string", + "enum": [ + "DEVELOPMENT", + "LIVE" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEVELOPMENT | LIVE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "UNPUBLISHED", + "DEPLOYED", + "UNASSOCIATED", + "PUBLISHING", + "IN_PROGRESS" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: UNPUBLISHED | DEPLOYED | UNASSOCIATED | PUBLISHING | IN_PROGRESS \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ETag": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cloudfront-distribution.json b/server/schema/resources/aws-cloudfront-distribution.json index 59c2acd2..d0e7dbb1 100644 --- a/server/schema/resources/aws-cloudfront-distribution.json +++ b/server/schema/resources/aws-cloudfront-distribution.json @@ -280,8 +280,13 @@ "ipv6", "dualstack" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 | dualstack \nUpdate requires: No interruption\n" + "description": "Specifies which IP protocol CloudFront uses when connecting to your origin. If your origin uses both IPv4 and IPv6 protocols, you can choose ``dualstack`` to help optimize reliability.", + "markdownDescription": "Specifies which IP protocol CloudFront uses when connecting to your origin. If your origin uses both IPv4 and IPv6 protocols, you can choose ``dualstack`` to help optimize reliability.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 | dualstack \nUpdate requires: No interruption\n" + }, + "OriginMtlsConfig": { + "$ref": "#/definitions/OriginMtlsConfig", + "description": "Configures mutual TLS authentication between CloudFront and your origin server.", + "markdownDescription": "Configures mutual TLS authentication between CloudFront and your origin server.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -497,6 +502,11 @@ "description": "This field specifies whether the connection mode is through a standard distribution (direct) or a multi-tenant distribution with distribution tenants (tenant-only).", "markdownDescription": "This field specifies whether the connection mode is through a standard distribution (direct) or a multi-tenant distribution with distribution tenants (tenant-only).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "ConnectionFunctionAssociation": { + "$ref": "#/definitions/ConnectionFunctionAssociation", + "description": "The distribution's connection function association.", + "markdownDescription": "The distribution's connection function association.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "ContinuousDeploymentPolicyId": { "type": "string", "description": "This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see [Unsupported features for SaaS Manager for Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) in the *Amazon CloudFront Developer Guide*.\n The identifier of a continuous deployment policy. For more information, see ``CreateContinuousDeploymentPolicy``.", @@ -604,6 +614,16 @@ "description": "This field only supports multi-tenant distributions. You can't specify this field for standard distributions. For more information, see [Unsupported features for SaaS Manager for Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) in the *Amazon CloudFront Developer Guide*.\n A distribution tenant configuration.", "markdownDescription": "This field only supports multi-tenant distributions. You can't specify this field for standard distributions. For more information, see [Unsupported features for SaaS Manager for Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) in the *Amazon CloudFront Developer Guide*.\n A distribution tenant configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CacheTagConfig": { + "$ref": "#/definitions/CacheTagConfig", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ViewerMtlsConfig": { + "$ref": "#/definitions/ViewerMtlsConfig", + "description": "The distribution's viewer mTLS configuration.", + "markdownDescription": "The distribution's viewer mTLS configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "ViewerCertificate": { "$ref": "#/definitions/ViewerCertificate", "default": { @@ -1069,6 +1089,22 @@ "description": "A complex data type for the origin groups specified for a distribution.", "markdownDescription": "A complex data type for the origin groups specified for a distribution.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "OriginMtlsConfig": { + "additionalProperties": false, + "properties": { + "ClientCertificateArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the client certificate stored in AWS Certificate Manager (ACM) that CloudFront uses to authenticate with your origin using Mutual TLS.", + "markdownDescription": "The Amazon Resource Name (ARN) of the client certificate stored in AWS Certificate Manager (ACM) that CloudFront uses to authenticate with your origin using Mutual TLS.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientCertificateArn" + ], + "type": "object", + "description": "Configures mutual TLS authentication between CloudFront and your origin server.", + "markdownDescription": "Configures mutual TLS authentication between CloudFront and your origin server.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "OriginShield": { "additionalProperties": false, "properties": { @@ -1219,6 +1255,48 @@ "description": "A complex type that contains ``Tag`` key and ``Tag`` value.", "markdownDescription": "A complex type that contains ``Tag`` key and ``Tag`` value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ConnectionFunctionAssociation": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string", + "description": "The association's ID.", + "markdownDescription": "The association's ID.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Id" + ], + "type": "object", + "description": "A connection function association.", + "markdownDescription": "A connection function association.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrustStoreConfig": { + "additionalProperties": false, + "properties": { + "TrustStoreId": { + "type": "string", + "description": "The trust store ID.", + "markdownDescription": "The trust store ID.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AdvertiseTrustStoreCaNames": { + "type": "boolean", + "description": "The configuration to use to advertise trust store CA names.", + "markdownDescription": "The configuration to use to advertise trust store CA names.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "IgnoreCertificateExpiry": { + "type": "boolean", + "description": "The configuration to use to ignore certificate expiration.", + "markdownDescription": "The configuration to use to ignore certificate expiration.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TrustStoreId" + ], + "type": "object", + "description": "A trust store configuration.", + "markdownDescription": "A trust store configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ViewerCertificate": { "additionalProperties": false, "properties": { @@ -1252,6 +1330,48 @@ "description": "A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.\n If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)\u2014that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``\u2014set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:\n + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI.\n + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n \n + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*.\n + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both):\n + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.)\n + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.)\n \n \n All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``.\n For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*.", "markdownDescription": "A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.\n If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)\u2014that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``\u2014set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:\n + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI.\n + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n \n + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*.\n + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both):\n + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.)\n + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.)\n \n \n All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``.\n For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CacheTagConfig": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "HeaderName" + ], + "type": "object", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ViewerMtlsConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ViewerMtlsMode", + "default": "required", + "description": "The viewer mTLS mode.", + "markdownDescription": "The viewer mTLS mode.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "TrustStoreConfig": { + "$ref": "#/definitions/TrustStoreConfig", + "description": "The trust store configuration associated with the viewer mTLS configuration.", + "markdownDescription": "The trust store configuration associated with the viewer mTLS configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "type": "object", + "description": "A viewer mTLS configuration.", + "markdownDescription": "A viewer mTLS configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ViewerMtlsMode": { + "enum": [ + "required", + "optional" + ], + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: required | optional \nUpdate requires: No interruption\n" + }, "VpcOriginConfig": { "additionalProperties": false, "properties": { @@ -1267,6 +1387,11 @@ "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", "markdownDescription": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "OwnerAccountId": { + "type": "string", + "description": "The account ID of the AWS-account that owns the VPC origin.", + "markdownDescription": "The account ID of the AWS-account that owns the VPC origin.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "VpcOriginId": { "type": "string", "description": "The VPC origin ID.", @@ -1295,6 +1420,7 @@ "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", + "cloudfront:GetVpcOrigin", "cloudfront:TagResource" ], "timeoutInMinutes": 60 @@ -1324,6 +1450,7 @@ "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", + "cloudfront:GetVpcOrigin", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionWithStagingConfig", "cloudfront:ListTagsForResource", @@ -1333,6 +1460,9 @@ "timeoutInMinutes": 60 } }, + "propertyTransform": { + "/properties/DistributionConfig/CacheTagConfig/HeaderName": "$lowercase(HeaderName)" + }, "primaryIdentifier": [ "/properties/Id" ], diff --git a/server/schema/resources/aws-cloudfront-function.json b/server/schema/resources/aws-cloudfront-function.json index 2afc7b7f..5dbce667 100644 --- a/server/schema/resources/aws-cloudfront-function.json +++ b/server/schema/resources/aws-cloudfront-function.json @@ -60,6 +60,30 @@ "type": "object", "description": "The key value store association.", "markdownDescription": "The key value store association.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "description": "Creates a CF function.\n To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function, and the function\u2019s stage.\n By default, when you create a function, it\u2019s in the ``DEVELOPMENT`` stage. In this stage, you can [test the function](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/test-function.html) in the CF console (or with ``TestFunction`` in the CF API).\n When you\u2019re ready to use your function with a CF distribution, publish the function to the ``LIVE`` stage. You can do this in the CF console, with ``PublishFunction`` in the CF API, or by updating the ``AWS::CloudFront::Function`` resource with the ``AutoPublish`` property set to ``true``. When the function is published to the ``LIVE`` stage, you can attach it to a distribution\u2019s cache behavior, using the function\u2019s ARN.\n To automatically publish the function to the ``LIVE`` stage when it\u2019s created, set the ``AutoPublish`` property to ``true``.", @@ -68,7 +92,8 @@ "permissions": [ "cloudfront:CreateFunction", "cloudfront:PublishFunction", - "cloudfront:DescribeFunction" + "cloudfront:DescribeFunction", + "cloudfront:TagResource" ] }, "delete": { @@ -85,14 +110,17 @@ "read": { "permissions": [ "cloudfront:DescribeFunction", - "cloudfront:GetFunction" + "cloudfront:GetFunction", + "cloudfront:ListTagsForResource" ] }, "update": { "permissions": [ "cloudfront:UpdateFunction", "cloudfront:PublishFunction", - "cloudfront:DescribeFunction" + "cloudfront:DescribeFunction", + "cloudfront:TagResource", + "cloudfront:UntagResource" ] } }, @@ -134,6 +162,15 @@ "type": "string", "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "createOnlyProperties": [ @@ -151,9 +188,15 @@ ], "tagging": { "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cloudfront:TagResource", + "cloudfront:UntagResource", + "cloudfront:ListTagsForResource" + ] }, "typeName": "AWS::CloudFront::Function", "writeOnlyProperties": [ diff --git a/server/schema/resources/aws-cloudfront-keyvaluestore.json b/server/schema/resources/aws-cloudfront-keyvaluestore.json index 38d9662c..8a2cc400 100644 --- a/server/schema/resources/aws-cloudfront-keyvaluestore.json +++ b/server/schema/resources/aws-cloudfront-keyvaluestore.json @@ -22,6 +22,30 @@ "type": "object", "description": "The import source for the key value store.", "markdownDescription": "The import source for the key value store.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "description": "The key value store. Use this to separate data from function code, allowing you to update data without having to publish a new version of a function. The key value store holds keys and their corresponding values.", @@ -30,6 +54,7 @@ "permissions": [ "cloudfront:CreateKeyValueStore", "cloudfront:DescribeKeyValueStore", + "cloudfront:TagResource", "s3:GetObject", "s3:HeadObject", "s3:GetBucketLocation" @@ -48,13 +73,16 @@ }, "read": { "permissions": [ - "cloudfront:DescribeKeyValueStore" + "cloudfront:DescribeKeyValueStore", + "cloudfront:ListTagsForResource" ] }, "update": { "permissions": [ "cloudfront:UpdateKeyValueStore", - "cloudfront:DescribeKeyValueStore" + "cloudfront:DescribeKeyValueStore", + "cloudfront:TagResource", + "cloudfront:UntagResource" ] } }, @@ -88,6 +116,15 @@ "$ref": "#/definitions/ImportSource", "description": "The import source for the key value store.", "markdownDescription": "The import source for the key value store.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "primaryIdentifier": [ @@ -109,9 +146,15 @@ ], "tagging": { "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cloudfront:TagResource", + "cloudfront:UntagResource", + "cloudfront:ListTagsForResource" + ] }, "typeName": "AWS::CloudFront::KeyValueStore", "attributes": { diff --git a/server/schema/resources/aws-cloudfront-publickey.json b/server/schema/resources/aws-cloudfront-publickey.json index 68ec0749..7c9afaf3 100644 --- a/server/schema/resources/aws-cloudfront-publickey.json +++ b/server/schema/resources/aws-cloudfront-publickey.json @@ -31,11 +31,11 @@ "EncodedKey" ], "type": "object", - "description": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).", - "markdownDescription": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.", + "markdownDescription": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "description": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).", + "description": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.", "handlers": { "create": { "permissions": [ diff --git a/server/schema/resources/aws-cloudfront-truststore.json b/server/schema/resources/aws-cloudfront-truststore.json new file mode 100644 index 00000000..429b10d6 --- /dev/null +++ b/server/schema/resources/aws-cloudfront-truststore.json @@ -0,0 +1,255 @@ +{ + "typeName": "AWS::CloudFront::TrustStore", + "additionalProperties": false, + "definitions": { + "CaCertificatesBundleSource": { + "additionalProperties": false, + "properties": { + "CaCertificatesBundleS3Location": { + "$ref": "#/definitions/CaCertificatesBundleS3Location", + "description": "The CA certificates bundle location in Amazon S3.", + "markdownDescription": "The CA certificates bundle location in Amazon S3.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CaCertificatesBundleS3Location" + ], + "type": "object", + "description": "A CA certificates bundle source.", + "markdownDescription": "A CA certificates bundle source.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CaCertificatesBundleS3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string", + "description": "The S3 bucket.", + "markdownDescription": "The S3 bucket.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "description": "The location's key.", + "markdownDescription": "The location's key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Region": { + "type": "string", + "description": "The location's Region.", + "markdownDescription": "The location's Region.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Version": { + "type": "string", + "description": "The location's version.", + "markdownDescription": "The location's version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Bucket", + "Key", + "Region" + ], + "type": "object", + "description": "The CA certificates bundle location in Amazon S3.", + "markdownDescription": "The CA certificates bundle location in Amazon S3.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string", + "description": "A string that contains ``Tag`` key.\n The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.", + "markdownDescription": "A string that contains ``Tag`` key.\n The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "description": "A string that contains an optional ``Tag`` value.\n The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.", + "markdownDescription": "A string that contains an optional ``Tag`` value.\n The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object", + "description": "A complex type that contains ``Tag`` key and ``Tag`` value.", + "markdownDescription": "A complex type that contains ``Tag`` key and ``Tag`` value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "description": "A trust store.", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateTrustStore", + "cloudfront:GetTrustStore", + "cloudfront:TagResource", + "cloudfront:ListTagsForResource", + "s3:GetObjectVersion", + "s3:GetObject", + "s3:ListBucket" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetTrustStore", + "cloudfront:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cloudfront:GetTrustStore", + "cloudfront:UpdateTrustStore", + "cloudfront:TagResource", + "cloudfront:UntagResource", + "cloudfront:ListTagsForResource", + "s3:GetObjectVersion", + "s3:GetObject", + "s3:ListBucket" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteTrustStore", + "cloudfront:GetTrustStore" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListTrustStores", + "cloudfront:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "properties": { + "Id": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "The trust store's name.", + "markdownDescription": "The trust store's name.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Arn": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:cloudfront::[0-9]{12}:trust-store/[A-Za-z0-9_]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CaCertificatesBundleSource": { + "$ref": "#/definitions/CaCertificatesBundleSource", + "description": "A CA certificates bundle source.", + "markdownDescription": "A CA certificates bundle source.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "PENDING", + "ACTIVE", + "FAILED" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | ACTIVE | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ETag": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NumberOfCaCertificates": { + "type": "integer", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "A complex type that contains zero or more ``Tag`` elements.", + "markdownDescription": "A complex type that contains zero or more ``Tag`` elements.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "createOnlyProperties": [ + "/properties/Name" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/Status", + "/properties/ETag", + "/properties/LastModifiedTime", + "/properties/NumberOfCaCertificates" + ], + "writeOnlyProperties": [ + "/properties/CaCertificatesBundleSource" + ], + "required": [ + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "cloudfront:TagResource", + "cloudfront:UntagResource", + "cloudfront:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "attributes": { + "Id": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:cloudfront::[0-9]{12}:trust-store/[A-Za-z0-9_]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "PENDING", + "ACTIVE", + "FAILED" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | ACTIVE | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ETag": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NumberOfCaCertificates": { + "type": "integer", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cloudfront-vpcorigin.json b/server/schema/resources/aws-cloudfront-vpcorigin.json index 82f6adc4..b59373c1 100644 --- a/server/schema/resources/aws-cloudfront-vpcorigin.json +++ b/server/schema/resources/aws-cloudfront-vpcorigin.json @@ -140,6 +140,11 @@ "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "AccountId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedTime": { "type": "string", "description": "", @@ -178,6 +183,7 @@ "readOnlyProperties": [ "/properties/Id", "/properties/Arn", + "/properties/AccountId", "/properties/Status", "/properties/CreatedTime", "/properties/LastModifiedTime" @@ -204,6 +210,11 @@ "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "AccountId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedTime": { "type": "string", "description": "", diff --git a/server/schema/resources/aws-cloudtrail-eventdatastore.json b/server/schema/resources/aws-cloudtrail-eventdatastore.json index fc4f3932..9b63dc0d 100644 --- a/server/schema/resources/aws-cloudtrail-eventdatastore.json +++ b/server/schema/resources/aws-cloudtrail-eventdatastore.json @@ -341,8 +341,7 @@ "/properties/EventDataStoreArn", "/properties/CreatedTimestamp", "/properties/UpdatedTimestamp", - "/properties/Status", - "/properties/FederationStatus" + "/properties/Status" ], "primaryIdentifier": [ "/properties/EventDataStoreArn" diff --git a/server/schema/resources/aws-cloudtrail-trail.json b/server/schema/resources/aws-cloudtrail-trail.json index 2c2822b6..f8a67d28 100644 --- a/server/schema/resources/aws-cloudtrail-trail.json +++ b/server/schema/resources/aws-cloudtrail-trail.json @@ -39,6 +39,7 @@ "CloudTrail:ListTags", "CloudTrail:GetEventSelectors", "CloudTrail:GetInsightSelectors", + "CloudTrail:GetEventConfiguration", "CloudTrail:DescribeTrails" ] }, @@ -49,6 +50,7 @@ "CloudTrail:AddTags", "CloudTrail:PutEventSelectors", "CloudTrail:PutInsightSelectors", + "CloudTrail:PutEventConfiguration", "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole", @@ -65,6 +67,7 @@ "CloudTrail:RemoveTags", "CloudTrail:PutEventSelectors", "CloudTrail:PutInsightSelectors", + "CloudTrail:PutEventConfiguration", "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole", @@ -94,7 +97,7 @@ "additionalProperties": false, "definitions": { "AdvancedEventSelector": { - "description": "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record \ufb01elds. They help you control costs by logging only those events that are important to you.", + "description": "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you.", "additionalProperties": false, "type": "object", "properties": { @@ -120,7 +123,16 @@ "required": [ "FieldSelectors" ], - "markdownDescription": "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record \ufb01elds. They help you control costs by logging only those events that are important to you.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceEventCategory": { + "description": "Event category for an insight selector.", + "type": "string", + "enum": [ + "Management", + "Data" + ], + "markdownDescription": "Event category for an insight selector.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Management | Data \nUpdate requires: No interruption\n" }, "InsightSelector": { "description": "A string that contains insight types that are logged on a trail.", @@ -131,10 +143,52 @@ "description": "The type of insight to log on a trail.", "type": "string", "markdownDescription": "The type of insight to log on a trail.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EventCategories": { + "uniqueItems": true, + "description": "The categories of events for which to log insights. By default, insights are logged for management events only.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/SourceEventCategory" + }, + "markdownDescription": "The categories of events for which to log insights. By default, insights are logged for management events only.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "A string that contains insight types that are logged on a trail.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "AggregationConfiguration": { + "description": "Configure to add aggregation rules to aggregate CloudTrail Events.", + "additionalProperties": false, + "type": "object", + "properties": { + "EventCategory": { + "description": "The category of events to be aggregated.", + "type": "string", + "enum": [ + "Data" + ], + "markdownDescription": "The category of events to be aggregated.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Data \nUpdate requires: No interruption\n" + }, + "Templates": { + "minItems": 1, + "maxItems": 50, + "uniqueItems": true, + "description": "Contains all templates in an aggregation configuration.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Template" + }, + "markdownDescription": "Contains all templates in an aggregation configuration.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EventCategory", + "Templates" + ], + "markdownDescription": "Configure to add aggregation rules to aggregate CloudTrail Events.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "EventSelector": { "description": "The type of email sending events to publish to the event destination.", "additionalProperties": false, @@ -328,6 +382,16 @@ "Field" ], "markdownDescription": "A single selector statement in an advanced event selector.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Template": { + "description": "A template used to configure aggregation rules.", + "type": "string", + "enum": [ + "API_ACTIVITY", + "RESOURCE_ACCESS", + "USER_ACTIONS" + ], + "markdownDescription": "A template used to configure aggregation rules.\n\n---\n\nRequired: No \nType: String \nAllowed Values: API_ACTIVITY | RESOURCE_ACCESS | USER_ACTIONS \nUpdate requires: No interruption\n" } }, "properties": { @@ -352,6 +416,17 @@ "type": "string", "markdownDescription": "Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by 'alias/', a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "AggregationConfigurations": { + "maxItems": 1, + "uniqueItems": true, + "description": "Specifies the aggregation configuration to aggregate CloudTrail Events. A maximum of 1 aggregation configuration is allowed.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/AggregationConfiguration" + }, + "markdownDescription": "Specifies the aggregation configuration to aggregate CloudTrail Events. A maximum of 1 aggregation configuration is allowed.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "CloudWatchLogsRoleArn": { "description": "Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.", "type": "string", diff --git a/server/schema/resources/aws-cloudwatch-alarm.json b/server/schema/resources/aws-cloudwatch-alarm.json index 04d79a12..3b05b3c8 100644 --- a/server/schema/resources/aws-cloudwatch-alarm.json +++ b/server/schema/resources/aws-cloudwatch-alarm.json @@ -22,7 +22,7 @@ "ComparisonOperator": { "description": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand.", "type": "string", - "markdownDescription": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TreatMissingData": { "description": "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used.", @@ -47,7 +47,7 @@ "EvaluationPeriods": { "description": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.", "type": "integer", - "markdownDescription": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Unit": { "description": "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None.", @@ -148,9 +148,53 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm. To be able to associate tags with the alarm when you create the alarm, you must have the ``cloudwatch:TagResource`` permission.\n Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EvaluationCriteria": { + "description": "", + "$ref": "#/definitions/EvaluationCriteria", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "EvaluationInterval": { + "description": "", + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "definitions": { + "EvaluationCriteria": { + "description": "", + "type": "object", + "additionalProperties": false, + "properties": { + "PromQLCriteria": { + "$ref": "#/definitions/AlarmPromQLCriteria" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AlarmPromQLCriteria": { + "description": "", + "type": "object", + "additionalProperties": false, + "properties": { + "Query": { + "description": "The PromQL query string.", + "type": "string", + "markdownDescription": "The PromQL query string.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PendingPeriod": { + "description": "The pending period for the alarm.", + "type": "integer", + "markdownDescription": "The pending period for the alarm.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "RecoveryPeriod": { + "description": "The recovery period for the alarm.", + "type": "integer", + "markdownDescription": "The recovery period for the alarm.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "MetricStat": { "description": "This structure defines the metric to be returned, along with the statistics, period, and units.\n ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type.", "type": "object", @@ -307,10 +351,6 @@ "markdownDescription": "One of the key-value pairs associated with the alarm. Tags can help you organize and categorize your resources.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "ComparisonOperator", - "EvaluationPeriods" - ], "handlers": { "create": { "permissions": [ diff --git a/server/schema/resources/aws-cloudwatch-alarmmuterule.json b/server/schema/resources/aws-cloudwatch-alarmmuterule.json new file mode 100644 index 00000000..9437b91c --- /dev/null +++ b/server/schema/resources/aws-cloudwatch-alarmmuterule.json @@ -0,0 +1,260 @@ +{ + "typeName": "AWS::CloudWatch::AlarmMuteRule", + "description": "Resource Type definition for AWS::CloudWatch::AlarmMuteRule that allows defining a rule and targeting alarms to mute their actions during the specified window.", + "additionalProperties": false, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cloudwatch.git", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cloudwatch:TagResource", + "cloudwatch:UntagResource", + "cloudwatch:ListTagsForResource" + ] + }, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AlarmName": { + "type": "string", + "description": "Name of an alarm", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "Name of an alarm\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the AlarmMuteRule", + "minLength": 1, + "maxLength": 1600, + "markdownDescription": "Amazon Resource Name (ARN) of the AlarmMuteRule\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1600 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the AlarmMuteRule", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The name of the AlarmMuteRule\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "description": "The description of the AlarmMuteRule", + "minLength": 0, + "maxLength": 1024, + "markdownDescription": "The description of the AlarmMuteRule\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "Rule": { + "type": "object", + "description": "The rule for the mute", + "properties": { + "Schedule": { + "type": "object", + "description": "Schedule for the mute to be active", + "properties": { + "Expression": { + "type": "string", + "description": "The expression of the schedule", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The expression of the schedule\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Duration": { + "type": "string", + "description": "The duration of the schedule when it triggers", + "minLength": 1, + "maxLength": 50, + "markdownDescription": "The duration of the schedule when it triggers\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, + "Timezone": { + "type": "string", + "description": "The timezone of the schedule", + "minLength": 1, + "maxLength": 50, + "markdownDescription": "The timezone of the schedule\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Duration", + "Expression" + ], + "additionalProperties": false, + "markdownDescription": "Schedule for the mute to be active\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Schedule" + ], + "additionalProperties": false, + "markdownDescription": "The rule for the mute\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + }, + "MuteTargets": { + "type": "object", + "description": "Targets to be muted", + "properties": { + "AlarmNames": { + "type": "array", + "description": "The alarm names to be mute by the AlarmMuteRule", + "uniqueItems": true, + "insertionOrder": false, + "maxItems": 500, + "items": { + "$ref": "#/definitions/AlarmName" + }, + "markdownDescription": "The alarm names to be mute by the AlarmMuteRule\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AlarmNames" + ], + "additionalProperties": false, + "markdownDescription": "Targets to be muted\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StartDate": { + "type": "string", + "description": "The date, with the same timezone offset as \"ScheduleTimezone\", after which the alarm mute rule will become active.", + "markdownDescription": "The date, with the same timezone offset as \"ScheduleTimezone\", after which the alarm mute rule will become active.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ExpireDate": { + "type": "string", + "description": "The date, with the same timezone offset as \"ScheduleTimezone\" after which the alarm mute rule will be expired.", + "markdownDescription": "The date, with the same timezone offset as \"ScheduleTimezone\" after which the alarm mute rule will be expired.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "description": "The current status of the AlarmMuteRule", + "enum": [ + "SCHEDULED", + "ACTIVE", + "EXPIRED" + ], + "markdownDescription": "The current status of the AlarmMuteRule\n\n---\n\nRequired: No \nType: String \nAllowed Values: SCHEDULED | ACTIVE | EXPIRED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTimestamp": { + "type": "string", + "description": "The last update timestamp of the alarm mute schedule", + "markdownDescription": "The last update timestamp of the alarm mute schedule\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "MuteType": { + "type": "string", + "description": "The mute type of the alarm mute ", + "markdownDescription": "The mute type of the alarm mute \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Rule" + ], + "readOnlyProperties": [ + "/properties/Status", + "/properties/LastUpdatedTimestamp", + "/properties/MuteType", + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "cloudwatch:PutAlarmMuteRule", + "cloudwatch:GetAlarmMuteRule", + "cloudwatch:TagResource" + ] + }, + "read": { + "permissions": [ + "cloudwatch:GetAlarmMuteRule", + "cloudwatch:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cloudwatch:GetAlarmMuteRule", + "cloudwatch:PutAlarmMuteRule", + "cloudwatch:TagResource", + "cloudwatch:UntagResource" + ] + }, + "delete": { + "permissions": [ + "cloudwatch:GetAlarmMuteRule", + "cloudwatch:DeleteAlarmMuteRule" + ] + }, + "list": { + "permissions": [ + "cloudwatch:ListAlarmMuteRules" + ] + } + }, + "attributes": { + "Arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the AlarmMuteRule", + "minLength": 1, + "maxLength": 1600, + "markdownDescription": "Amazon Resource Name (ARN) of the AlarmMuteRule\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1600 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "description": "The current status of the AlarmMuteRule", + "enum": [ + "SCHEDULED", + "ACTIVE", + "EXPIRED" + ], + "markdownDescription": "The current status of the AlarmMuteRule\n\n---\n\nRequired: No \nType: String \nAllowed Values: SCHEDULED | ACTIVE | EXPIRED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTimestamp": { + "type": "string", + "description": "The last update timestamp of the alarm mute schedule", + "markdownDescription": "The last update timestamp of the alarm mute schedule\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "MuteType": { + "type": "string", + "description": "The mute type of the alarm mute ", + "markdownDescription": "The mute type of the alarm mute \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cloudwatch-insightrule.json b/server/schema/resources/aws-cloudwatch-insightrule.json index 471f7b0d..fb29c616 100644 --- a/server/schema/resources/aws-cloudwatch-insightrule.json +++ b/server/schema/resources/aws-cloudwatch-insightrule.json @@ -28,13 +28,32 @@ "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "Tags": { - "$ref": "#/definitions/Tags" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "definitions": { - "Tags": { + "Tag": { "type": "object", "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, diff --git a/server/schema/resources/aws-cloudwatch-otelenrichment.json b/server/schema/resources/aws-cloudwatch-otelenrichment.json new file mode 100644 index 00000000..b0cd00bd --- /dev/null +++ b/server/schema/resources/aws-cloudwatch-otelenrichment.json @@ -0,0 +1,78 @@ +{ + "typeName": "AWS::CloudWatch::OTelEnrichment", + "description": "AWS::CloudWatch::OTelEnrichment enables OTel metric enrichment in CloudWatch, allowing CloudWatch vended metrics to be available for PromQL querying enriched with AWS resource tags and metadata.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Status": { + "description": "Current status of OTel enrichment (RUNNING or STOPPED).", + "type": "string", + "enum": [ + "RUNNING", + "STOPPED" + ], + "markdownDescription": "Current status of OTel enrichment (RUNNING or STOPPED).\n\n---\n\nRequired: No \nType: String \nAllowed Values: RUNNING | STOPPED \nUpdate requires: No interruption\n" + } + }, + "tagging": { + "taggable": false + }, + "properties": { + "AccountId": { + "description": "The AWS account ID. This is the primary identifier for this singleton resource.", + "type": "string", + "markdownDescription": "The AWS account ID. This is the primary identifier for this singleton resource.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/Status" + } + }, + "additionalProperties": false, + "required": [], + "readOnlyProperties": [ + "/properties/AccountId", + "/properties/Status" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "handlers": { + "create": { + "permissions": [ + "cloudwatch:StartOTelEnrichment", + "cloudwatch:GetOTelEnrichment" + ] + }, + "read": { + "permissions": [ + "cloudwatch:GetOTelEnrichment" + ] + }, + "update": { + "permissions": [ + "cloudwatch:StartOTelEnrichment", + "cloudwatch:GetOTelEnrichment" + ] + }, + "delete": { + "permissions": [ + "cloudwatch:StopOTelEnrichment", + "cloudwatch:GetOTelEnrichment" + ] + }, + "list": { + "permissions": [ + "cloudwatch:GetOTelEnrichment" + ] + } + }, + "attributes": { + "AccountId": { + "description": "The AWS account ID. This is the primary identifier for this singleton resource.", + "type": "string", + "markdownDescription": "The AWS account ID. This is the primary identifier for this singleton resource.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/Status" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-codebuild-fleet.json b/server/schema/resources/aws-codebuild-fleet.json index b9bc4b5a..dfd930fd 100644 --- a/server/schema/resources/aws-codebuild-fleet.json +++ b/server/schema/resources/aws-codebuild-fleet.json @@ -11,7 +11,7 @@ }, "BaseCapacity": { "type": "integer", - "minimum": 1, + "minimum": 0, "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "EnvironmentType": { @@ -75,7 +75,7 @@ }, "ImageId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^((aws/codebuild/([A-Za-z0-9._-]+|ami/[A-Za-z0-9._-]+):[A-Za-z0-9._-]+)|ami-[a-z0-9]{1,1020})$ \nUpdate requires: No interruption\n" }, "ScalingConfiguration": { "$ref": "#/definitions/ScalingConfigurationInput" diff --git a/server/schema/resources/aws-codedeploy-deploymentgroup.json b/server/schema/resources/aws-codedeploy-deploymentgroup.json index 45b949d8..54abfd3f 100644 --- a/server/schema/resources/aws-codedeploy-deploymentgroup.json +++ b/server/schema/resources/aws-codedeploy-deploymentgroup.json @@ -1,353 +1,299 @@ { "typeName": "AWS::CodeDeploy::DeploymentGroup", - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "additionalProperties": false, - "properties": { - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "ApplicationName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ServiceRoleArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "AutoScalingGroups": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "TriggerConfigurations": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "Ec2TagFilters": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "TerminationHookEnabled": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "ECSServices": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/ECSService" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "DeploymentGroupName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "OnPremisesInstanceTagFilters": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, + "description": "Resource type definition for AWS::CodeDeploy::DeploymentGroup", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "OnPremisesTagSet": { "type": "object", + "description": "Specifies a list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.", "additionalProperties": false, "properties": { "OnPremisesTagSetList": { "type": "array", + "description": "A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.", "uniqueItems": true, "items": { "$ref": "#/definitions/OnPremisesTagSetListObject" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies a list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "DeploymentStyle": { "type": "object", + "description": "Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.", "additionalProperties": false, "properties": { "DeploymentOption": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "Indicates whether to route deployment traffic behind a load balancer.", + "markdownDescription": "Indicates whether to route deployment traffic behind a load balancer.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "DeploymentType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "Indicates whether to run an in-place or blue/green deployment.", + "markdownDescription": "Indicates whether to run an in-place or blue/green deployment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "BlueGreenDeploymentConfiguration": { "type": "object", + "description": "Information about blue/green deployment options for a deployment group.", "additionalProperties": false, "properties": { "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" + "$ref": "#/definitions/GreenFleetProvisioningOption", + "description": "Information about how instances are provisioned for a replacement environment in a blue/green deployment.", + "markdownDescription": "Information about how instances are provisioned for a replacement environment in a blue/green deployment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" + "$ref": "#/definitions/DeploymentReadyOption", + "description": "Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.", + "markdownDescription": "Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" + "$ref": "#/definitions/BlueInstanceTerminationOption", + "description": "Information about whether to terminate instances in the original fleet during a blue/green deployment.", + "markdownDescription": "Information about whether to terminate instances in the original fleet during a blue/green deployment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about blue/green deployment options for a deployment group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "TagFilter": { "type": "object", + "description": "Specifies which on-premises instances to associate with the deployment group.", "additionalProperties": false, "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The on-premises instance tag filter value.", + "markdownDescription": "The on-premises instance tag filter value.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Type": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The on-premises instance tag filter type", + "markdownDescription": "The on-premises instance tag filter type\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The on-premises instance tag filter key.", + "markdownDescription": "The on-premises instance tag filter key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies which on-premises instances to associate with the deployment group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "TriggerConfig": { "type": "object", + "description": "Information about notification triggers for the deployment group.", "additionalProperties": false, "properties": { "TriggerTargetArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent.", + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TriggerName": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the notification trigger.", + "markdownDescription": "The name of the notification trigger.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TriggerEvents": { "type": "array", + "description": "The event type or types that trigger notifications.", "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The event type or types that trigger notifications.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about notification triggers for the deployment group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "GitHubLocation": { "type": "object", + "description": "Specifies the location of an application revision that is stored in GitHub.", "additionalProperties": false, "properties": { "Repository": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The GitHub account and repository pair that stores the application revision to be deployed.", + "markdownDescription": "The GitHub account and repository pair that stores the application revision to be deployed.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "CommitId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.", + "markdownDescription": "The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Repository", "CommitId" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the location of an application revision that is stored in GitHub.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Deployment": { "type": "object", + "description": "Specifies an AWS CodeDeploy application revision to be deployed to instances in the deployment group. If you specify an application revision, your target revision is deployed as soon as the provisioning process is complete.", "additionalProperties": false, "properties": { "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "A description of the deployment.", + "markdownDescription": "A description of the deployment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Revision": { - "$ref": "#/definitions/RevisionLocation" + "$ref": "#/definitions/RevisionLocation", + "description": "Information about the location of stored application artifacts and the service from which to retrieve them.", + "markdownDescription": "Information about the location of stored application artifacts and the service from which to retrieve them.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, "IgnoreApplicationStopFailures": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.", + "markdownDescription": "If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "required": [ "Revision" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies an AWS CodeDeploy application revision to be deployed to instances in the deployment group. If you specify an application revision, your target revision is deployed as soon as the provisioning process is complete.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ELBInfo": { "type": "object", + "description": "The ELBInfo property type specifies information about the Elastic Load Balancing load balancer used for an CodeDeploy deployment group. If you specify the ELBInfo property, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for AWS CodeDeploy to route your traffic using the specified load balancers.", "additionalProperties": false, "properties": { "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment is complete.", + "markdownDescription": "For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment is complete.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The ELBInfo property type specifies information about the Elastic Load Balancing load balancer used for an CodeDeploy deployment group. If you specify the ELBInfo property, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for AWS CodeDeploy to route your traffic using the specified load balancers.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EC2TagSetListObject": { "type": "object", + "description": "The EC2TagSet property type specifies information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same template as EC2TagFilters.", "additionalProperties": false, "properties": { "Ec2TagGroup": { "type": "array", + "description": "A list that contains other lists of Amazon EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.", "uniqueItems": true, "items": { "$ref": "#/definitions/EC2TagFilter" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list that contains other lists of Amazon EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The EC2TagSet property type specifies information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same template as EC2TagFilters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "S3Location": { "type": "object", + "description": "Information about the location of application artifacts stored in Amazon S3.", "additionalProperties": false, "properties": { "BundleType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The file type of the application revision.", + "markdownDescription": "The file type of the application revision.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Bucket": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the Amazon S3 bucket where the application revision is stored.", + "markdownDescription": "The name of the Amazon S3 bucket where the application revision is stored.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "ETag": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped.", + "markdownDescription": "The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Version": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default.", + "markdownDescription": "A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the Amazon S3 object that represents the bundled artifacts for the application revision.", + "markdownDescription": "The name of the Amazon S3 object that represents the bundled artifacts for the application revision.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Bucket", "Key" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the location of application artifacts stored in Amazon S3.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AutoRollbackConfiguration": { "type": "object", + "description": "Configures automatic rollback for an AWS CodeDeploy deployment group when a deployment is not completed successfully.", "additionalProperties": false, "properties": { "Events": { "type": "array", + "description": "The event type or types that trigger a rollback.", "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The event type or types that trigger a rollback.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Enabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether a defined automatic rollback configuration is currently enabled.", + "markdownDescription": "Indicates whether a defined automatic rollback configuration is currently enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Configures automatic rollback for an AWS CodeDeploy deployment group when a deployment is not completed successfully.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "DeploymentReadyOption": { "type": "object", + "description": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment.", "additionalProperties": false, "properties": { "WaitTimeInMinutes": { "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually. Applies only to the STOP_DEPLOYMENT option for actionOnTimeout.", + "markdownDescription": "The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually. Applies only to the STOP_DEPLOYMENT option for actionOnTimeout.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "ActionOnTimeout": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment. CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment. STOP_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using ContinueDeployment . If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped.", + "markdownDescription": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment. CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment. STOP_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using ContinueDeployment . If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EC2TagFilter": { "type": "object", + "description": "Information about an Amazon EC2 tag filter.", "additionalProperties": false, "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The tag filter value.", + "markdownDescription": "The tag filter value.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Type": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The tag filter type.", + "markdownDescription": "The tag filter type.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The tag filter key.", + "markdownDescription": "The tag filter key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about an Amazon EC2 tag filter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "RevisionLocation": { "type": "object", + "description": "Defines the location of the CodeDeploy application revision to deploy.", "additionalProperties": false, "properties": { "S3Location": { @@ -358,237 +304,476 @@ }, "RevisionType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The type of application revision.", + "markdownDescription": "The type of application revision.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Defines the location of the CodeDeploy application revision to deploy.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "GreenFleetProvisioningOption": { "type": "object", + "description": "Information about the instances that belong to the replacement environment in a blue/green deployment.", "additionalProperties": false, "properties": { "Action": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The method used to add instances to a replacement environment.", + "markdownDescription": "The method used to add instances to a replacement environment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the instances that belong to the replacement environment in a blue/green deployment.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "LoadBalancerInfo": { "type": "object", + "description": "Specifies information about the load balancer or target group used for an AWS CodeDeploy deployment group. For AWS CloudFormation to use the properties specified in LoadBalancerInfo, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL.", "additionalProperties": false, "properties": { "TargetGroupInfoList": { "type": "array", + "description": "An array that contains information about the target groups to use for load balancing in a deployment. If you're using Application Load Balancers and Network Load Balancers, specify their associated target groups in this array.", "uniqueItems": true, "items": { "$ref": "#/definitions/TargetGroupInfo" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "An array that contains information about the target groups to use for load balancing in a deployment. If you're using Application Load Balancers and Network Load Balancers, specify their associated target groups in this array.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "ElbInfoList": { "type": "array", + "description": "An array that contains information about the load balancers to use for load balancing in a deployment. If you're using Classic Load Balancers, specify those load balancers in this array.", "uniqueItems": true, "items": { "$ref": "#/definitions/ELBInfo" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "An array that contains information about the load balancers to use for load balancing in a deployment. If you're using Classic Load Balancers, specify those load balancers in this array.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "TargetGroupPairInfoList": { "type": "array", + "description": "The target group pair information. This is an array of TargeGroupPairInfo objects with a maximum size of one.", "uniqueItems": true, "items": { "$ref": "#/definitions/TargetGroupPairInfo" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The target group pair information. This is an array of TargeGroupPairInfo objects with a maximum size of one.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies information about the load balancer or target group used for an AWS CodeDeploy deployment group. For AWS CloudFormation to use the properties specified in LoadBalancerInfo, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AlarmConfiguration": { "type": "object", + "description": "Configures CloudWatch alarms for an AWS CodeDeploy deployment group.", "additionalProperties": false, "properties": { "Alarms": { "type": "array", + "description": "A list of alarms configured for the deployment or deployment group. A maximum of 10 alarms can be added.", "uniqueItems": true, "items": { "$ref": "#/definitions/Alarm" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of alarms configured for the deployment or deployment group. A maximum of 10 alarms can be added.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "IgnorePollAlarmFailure": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false.", + "markdownDescription": "Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Enabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether the alarm configuration is enabled.", + "markdownDescription": "Indicates whether the alarm configuration is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Configures CloudWatch alarms for an AWS CodeDeploy deployment group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EC2TagSet": { "type": "object", + "description": "Specifies information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same template as EC2TagFilters.", "additionalProperties": false, "properties": { "Ec2TagSetList": { "type": "array", + "description": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group.", "uniqueItems": true, "items": { "$ref": "#/definitions/EC2TagSetListObject" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same template as EC2TagFilters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "TrafficRoute": { "type": "object", + "description": "Information about a listener. The listener contains the path used to route traffic that is received from the load balancer to a target group.", "additionalProperties": false, "properties": { "ListenerArns": { "type": "array", + "description": "The Amazon Resource Name (ARN) of one listener. The listener identifies the route between a target group and a load balancer. This is an array of strings with a maximum size of one.", "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of one listener. The listener identifies the route between a target group and a load balancer. This is an array of strings with a maximum size of one.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about a listener. The listener contains the path used to route traffic that is received from the load balancer to a target group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ECSService": { "type": "object", + "description": "Contains the service and cluster names used to identify an Amazon ECS deployment's target.", "additionalProperties": false, "properties": { "ServiceName": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the target Amazon ECS service.", + "markdownDescription": "The name of the target Amazon ECS service.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "ClusterName": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the cluster that the Amazon ECS service is associated with.", + "markdownDescription": "The name of the cluster that the Amazon ECS service is associated with.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "ServiceName", "ClusterName" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Contains the service and cluster names used to identify an Amazon ECS deployment's target.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "TargetGroupPairInfo": { "type": "object", + "description": "The TargetGroupInfo property type specifies information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group. The DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for CodeDeploy to route your traffic using the specified target groups.", "additionalProperties": false, "properties": { "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" + "$ref": "#/definitions/TrafficRoute", + "description": "The path used by a load balancer to route production traffic when an Amazon ECS deployment is complete.", + "markdownDescription": "The path used by a load balancer to route production traffic when an Amazon ECS deployment is complete.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" + "$ref": "#/definitions/TrafficRoute", + "description": "An optional path used by a load balancer to route test traffic after an Amazon ECS deployment. Validation can occur while test traffic is served during a deployment.", + "markdownDescription": "An optional path used by a load balancer to route test traffic after an Amazon ECS deployment. Validation can occur while test traffic is served during a deployment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "TargetGroups": { "type": "array", + "description": "One pair of target groups. One is associated with the original task set. The second is associated with the task set that serves traffic after the deployment is complete.", "uniqueItems": true, "items": { "$ref": "#/definitions/TargetGroupInfo" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "One pair of target groups. One is associated with the original task set. The second is associated with the task set that serves traffic after the deployment is complete.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The TargetGroupInfo property type specifies information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group. The DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for CodeDeploy to route your traffic using the specified target groups.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Alarm": { "type": "object", + "description": "Specifies a CloudWatch alarm to use for an AWS CodeDeploy deployment group.", "additionalProperties": false, "properties": { "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms.", + "markdownDescription": "The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies a CloudWatch alarm to use for an AWS CodeDeploy deployment group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "TargetGroupInfo": { "type": "object", + "description": "Specifies information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group. The DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for CodeDeploy to route your traffic using the specified target groups.", "additionalProperties": false, "properties": { "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. No duplicates allowed.", + "markdownDescription": "For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. No duplicates allowed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group. The DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for CodeDeploy to route your traffic using the specified target groups.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "OnPremisesTagSetListObject": { "type": "object", + "description": "Specifies lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.", "additionalProperties": false, "properties": { "OnPremisesTagGroup": { "type": "array", + "description": "Information about groups of on-premises instance tags.", "uniqueItems": true, "items": { "$ref": "#/definitions/TagFilter" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Information about groups of on-premises instance tags.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { "type": "object", + "description": "Information about a tag.", "additionalProperties": false, "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The tag's value.", + "markdownDescription": "The tag's value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The tag's key.", + "markdownDescription": "The tag's key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Value", "Key" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about a tag.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "BlueInstanceTerminationOption": { "type": "object", + "description": "Information about whether instances in the original environment are terminated when a blue/green deployment is successful. BlueInstanceTerminationOption does not apply to Lambda deployments.", "additionalProperties": false, "properties": { "TerminationWaitTimeInMinutes": { "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. For an Amazon ECS deployment, the number of minutes before deleting the original (blue) task set. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original (blue) task set to a replacement (green) task set. The maximum setting is 2880 minutes (2 days).", + "markdownDescription": "For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. For an Amazon ECS deployment, the number of minutes before deleting the original (blue) task set. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original (blue) task set to a replacement (green) task set. The maximum setting is 2880 minutes (2 days).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Action": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The action to take on instances in the original environment after a successful blue/green deployment.", + "markdownDescription": "The action to take on instances in the original environment after a successful blue/green deployment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about whether instances in the original environment are terminated when a blue/green deployment is successful. BlueInstanceTerminationOption does not apply to Lambda deployments.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet", + "description": "Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all the tag groups. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.", + "markdownDescription": "Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all the tag groups. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ApplicationName": { + "type": "string", + "description": "The name of an existing CodeDeploy application to associate this deployment group with.", + "markdownDescription": "The name of an existing CodeDeploy application to associate this deployment group with.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle", + "description": "Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer. If you specify this property with a blue/green deployment type, don't specify the AutoScalingGroups, LoadBalancerInfo, or Deployment properties.", + "markdownDescription": "Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer. If you specify this property with a blue/green deployment type, don't specify the AutoScalingGroups, LoadBalancerInfo, or Deployment properties.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ServiceRoleArn": { + "type": "string", + "description": "A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see 'Create a Service Role for AWS CodeDeploy' in the AWS CodeDeploy User Guide.", + "markdownDescription": "A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see 'Create a Service Role for AWS CodeDeploy' in the AWS CodeDeploy User Guide.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration", + "description": "Information about blue/green deployment options for a deployment group.", + "markdownDescription": "Information about blue/green deployment options for a deployment group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AutoScalingGroups": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "description": "A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created. Duplicates are not allowed.", + "markdownDescription": "A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created. Duplicates are not allowed.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet", + "description": "Information about groups of tags applied to Amazon EC2 instances. Use when the deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilter.", + "markdownDescription": "Information about groups of tags applied to Amazon EC2 instances. Use when the deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilter.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "OutdatedInstancesStrategy": { + "type": "string", + "description": "Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances. If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.", + "markdownDescription": "Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances. If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TriggerConfigurations": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "description": "Information about triggers associated with the deployment group. Duplicates are not allowed.", + "markdownDescription": "Information about triggers associated with the deployment group. Duplicates are not allowed.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Deployment": { + "$ref": "#/definitions/Deployment", + "description": "The application revision to deploy to this deployment group. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete. If you specify this property, don't specify the AutoRollbackConfiguration property.", + "markdownDescription": "The application revision to deploy to this deployment group. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete. If you specify this property, don't specify the AutoRollbackConfiguration property.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "DeploymentConfigName": { + "type": "string", + "description": "A deployment configuration name or a predefined configuration name. With predefined configurations, you can deploy application revisions to one instance at a time (CodeDeployDefault.OneAtATime), half of the instances at a time (CodeDeployDefault.HalfAtATime), or all the instances at once (CodeDeployDefault.AllAtOnce).", + "markdownDescription": "A deployment configuration name or a predefined configuration name. With predefined configurations, you can deploy application revisions to one instance at a time (CodeDeployDefault.OneAtATime), half of the instances at a time (CodeDeployDefault.HalfAtATime), or all the instances at once (CodeDeployDefault.AllAtOnce).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration", + "description": "Information about the Amazon CloudWatch alarms that are associated with the deployment group.", + "markdownDescription": "Information about the Amazon CloudWatch alarms that are associated with the deployment group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Ec2TagFilters": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "description": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify EC2TagFilters or Ec2TagSet, but not both.", + "markdownDescription": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify EC2TagFilters or Ec2TagSet, but not both.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TerminationHookEnabled": { + "type": "boolean", + "description": "Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.", + "markdownDescription": "Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ECSServices": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/ECSService" + }, + "description": "The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format :.", + "markdownDescription": "The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format :.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration", + "description": "Information about the automatic rollback configuration that is associated with the deployment group. If you specify this property, don't specify the Deployment property.", + "markdownDescription": "Information about the automatic rollback configuration that is associated with the deployment group. If you specify this property, don't specify the Deployment property.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo", + "description": "Information about the load balancer to use in a deployment.", + "markdownDescription": "Information about the load balancer to use in a deployment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "DeploymentGroupName": { + "type": "string", + "description": "A name for the deployment group. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name.", + "markdownDescription": "A name for the deployment group. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define.", + "markdownDescription": "The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "OnPremisesInstanceTagFilters": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/TagFilter" + }, + "description": "The on-premises instance tags already applied to on-premises instances that you want to include in the deployment group. CodeDeploy includes all on-premises instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.", + "markdownDescription": "The on-premises instance tags already applied to on-premises instances that you want to include in the deployment group. CodeDeploy includes all on-premises instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "codedeploy:TagResource", + "codedeploy:UntagResource", + "codedeploy:ListTagsForResource" + ] + }, "required": [ "ApplicationName", "ServiceRoleArn" ], + "propertyTransform": { + "/properties/Deployment/Description": "$join([\"[[]CFN-[0-9A-Z]{8}[]] \", Description])" + }, "createOnlyProperties": [ "/properties/DeploymentGroupName", "/properties/ApplicationName" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/ApplicationName", + "/properties/DeploymentGroupName" ], - "readOnlyProperties": [ - "/properties/Id" - ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "handlers": { + "create": { + "permissions": [ + "codedeploy:CreateDeploymentGroup", + "codedeploy:CreateDeployment", + "codedeploy:GetDeployment", + "codedeploy:GetDeploymentConfig", + "codedeploy:GetDeploymentGroup", + "codedeploy:GetApplicationRevision", + "codedeploy:ListDeployments", + "codedeploy:RegisterApplicationRevision", + "codedeploy:RegisterOnPremisesInstance", + "codedeploy:TagResource", + "codedeploy:UntagResource", + "iam:PassRole" + ], + "timeoutInMinutes": 510 + }, + "read": { + "permissions": [ + "codedeploy:GetDeploymentGroup", + "codedeploy:ListTagsForResource", + "codedeploy:ListDeployments", + "codedeploy:GetDeployment" + ] + }, + "update": { + "permissions": [ + "codedeploy:UpdateDeploymentGroup", + "codedeploy:TagResource", + "codedeploy:UntagResource", + "codedeploy:GetDeployment", + "codedeploy:CreateDeployment", + "codedeploy:GetDeploymentConfig", + "codedeploy:GetApplicationRevision", + "codedeploy:StopDeployment", + "codedeploy:ListDeployments", + "codedeploy:RegisterApplicationRevision", + "codedeploy:RegisterOnPremisesInstance", + "iam:PassRole" + ], + "timeoutInMinutes": 990 + }, + "delete": { + "permissions": [ + "codedeploy:DeleteDeploymentGroup", + "codedeploy:GetDeploymentGroup" + ] + }, + "list": { + "permissions": [ + "codedeploy:ListDeploymentGroups" + ], + "handlerSchema": { + "properties": { + "ApplicationName": { + "type": "string", + "description": "The name of the CodeDeploy application this deployment group is associated with.", + "markdownDescription": "The name of the CodeDeploy application this deployment group is associated with.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApplicationName" + ] + } } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-codegurureviewer-repositoryassociation.json b/server/schema/resources/aws-codegurureviewer-repositoryassociation.json index e01b9dfa..ec42be55 100644 --- a/server/schema/resources/aws-codegurureviewer-repositoryassociation.json +++ b/server/schema/resources/aws-codegurureviewer-repositoryassociation.json @@ -88,6 +88,17 @@ "markdownDescription": "The tags associated with a repository association.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "codeguru-reviewer:TagResource", + "codeguru-reviewer:UntagResource" + ] + }, "additionalProperties": false, "required": [ "Name", diff --git a/server/schema/resources/aws-codepipeline-customactiontype.json b/server/schema/resources/aws-codepipeline-customactiontype.json index 04ca9350..e029ee14 100644 --- a/server/schema/resources/aws-codepipeline-customactiontype.json +++ b/server/schema/resources/aws-codepipeline-customactiontype.json @@ -218,6 +218,9 @@ "/properties/Provider", "/properties/Version" ], + "deprecatedProperties": [ + "/properties/Id" + ], "handlers": { "create": { "permissions": [ diff --git a/server/schema/resources/aws-codestarconnections-repositorylink.json b/server/schema/resources/aws-codestarconnections-repositorylink.json index 68c71999..a956d455 100644 --- a/server/schema/resources/aws-codestarconnections-repositorylink.json +++ b/server/schema/resources/aws-codestarconnections-repositorylink.json @@ -152,7 +152,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "codestar-connections:UntagResource", diff --git a/server/schema/resources/aws-cognito-managedloginbranding.json b/server/schema/resources/aws-cognito-managedloginbranding.json index 9abb1457..22c96dd8 100644 --- a/server/schema/resources/aws-cognito-managedloginbranding.json +++ b/server/schema/resources/aws-cognito-managedloginbranding.json @@ -150,7 +150,8 @@ "handlers": { "create": { "permissions": [ - "cognito-idp:CreateManagedLoginBranding" + "cognito-idp:CreateManagedLoginBranding", + "cognito-idp:DescribeManagedLoginBrandingByClient" ], "timeoutInMinutes": 2 }, diff --git a/server/schema/resources/aws-cognito-terms.json b/server/schema/resources/aws-cognito-terms.json new file mode 100644 index 00000000..2d4a0c1a --- /dev/null +++ b/server/schema/resources/aws-cognito-terms.json @@ -0,0 +1,144 @@ +{ + "typeName": "AWS::Cognito::Terms", + "description": "Resource Type definition for AWS::Cognito::Terms", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "definitions": { + "TermsIdType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[4][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\n" + }, + "TermsNameType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(terms-of-use|privacy-policy)$ \nUpdate requires: No interruption\n" + }, + "TermsSourceType": { + "type": "string", + "enum": [ + "LINK" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: LINK \nUpdate requires: No interruption\n" + }, + "TermsEnforcementType": { + "type": "string", + "enum": [ + "NONE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE \nUpdate requires: No interruption\n" + }, + "LinksType": { + "type": "object", + "patternProperties": { + "^cognito:(default|english|french|spanish|german|bahasa-indonesia|italian|japanese|korean|portuguese-brazil|chinese-(simplified|traditional))$": { + "type": "string", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+$ \nUpdate requires: No interruption\n" + } + }, + "minProperties": 1, + "maxProperties": 12, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "UserPoolId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "ClientId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "TermsId": { + "$ref": "#/definitions/TermsIdType" + }, + "TermsName": { + "$ref": "#/definitions/TermsNameType" + }, + "TermsSource": { + "$ref": "#/definitions/TermsSourceType" + }, + "Enforcement": { + "$ref": "#/definitions/TermsEnforcementType" + }, + "Links": { + "$ref": "#/definitions/LinksType" + } + }, + "additionalProperties": false, + "required": [ + "UserPoolId", + "TermsName", + "TermsSource", + "Enforcement", + "Links" + ], + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "readOnlyProperties": [ + "/properties/TermsId" + ], + "writeOnlyProperties": [ + "/properties/ClientId" + ], + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/TermsId" + ], + "handlers": { + "create": { + "permissions": [ + "cognito-idp:CreateTerms" + ], + "timeoutInMinutes": 2 + }, + "read": { + "permissions": [ + "cognito-idp:DescribeTerms" + ], + "timeoutInMinutes": 2 + }, + "update": { + "permissions": [ + "cognito-idp:UpdateTerms" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:DeleteTerms" + ], + "timeoutInMinutes": 2 + }, + "list": { + "permissions": [ + "cognito-idp:ListTerms" + ], + "timeoutInMinutes": 2, + "handlerSchema": { + "properties": { + "UserPoolId": { + "$ref": "resource-schema.json#/properties/UserPoolId" + } + }, + "required": [ + "UserPoolId" + ] + } + } + }, + "attributes": { + "TermsId": { + "$ref": "#/definitions/TermsIdType" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-cognito-userpool.json b/server/schema/resources/aws-cognito-userpool.json index 07e6a8d7..20a75ae1 100644 --- a/server/schema/resources/aws-cognito-userpool.json +++ b/server/schema/resources/aws-cognito-userpool.json @@ -231,6 +231,21 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "InboundFederation": { + "type": "object", + "properties": { + "LambdaVersion": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LambdaArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "LambdaConfig": { "type": "object", "properties": { @@ -286,6 +301,9 @@ }, "PreTokenGenerationConfig": { "$ref": "#/definitions/PreTokenGenerationConfig" + }, + "InboundFederation": { + "$ref": "#/definitions/InboundFederation" } }, "additionalProperties": false, @@ -575,6 +593,14 @@ "maxLength": 9, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 9 \nUpdate requires: No interruption\n" }, + "WebAuthnFactorConfiguration": { + "type": "string", + "enum": [ + "SINGLE_FACTOR", + "MULTI_FACTOR_WITH_USER_VERIFICATION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SINGLE_FACTOR | MULTI_FACTOR_WITH_USER_VERIFICATION \nUpdate requires: No interruption\n" + }, "Schema": { "type": "array", "items": { diff --git a/server/schema/resources/aws-cognito-userpoolresourceserver.json b/server/schema/resources/aws-cognito-userpoolresourceserver.json index 3110aa49..dfc1c6dc 100644 --- a/server/schema/resources/aws-cognito-userpoolresourceserver.json +++ b/server/schema/resources/aws-cognito-userpoolresourceserver.json @@ -67,7 +67,8 @@ "handlers": { "create": { "permissions": [ - "cognito-idp:CreateResourceServer" + "cognito-idp:CreateResourceServer", + "cognito-idp:DescribeResourceServer" ], "timeoutInMinutes": 2 }, diff --git a/server/schema/resources/aws-computeoptimizer-automationrule.json b/server/schema/resources/aws-computeoptimizer-automationrule.json new file mode 100644 index 00000000..f5ec0777 --- /dev/null +++ b/server/schema/resources/aws-computeoptimizer-automationrule.json @@ -0,0 +1,498 @@ +{ + "typeName": "AWS::ComputeOptimizer::AutomationRule", + "description": "Creates an AWS Compute Optimizer automation rule that automatically implements recommended actions based on your defined criteria and schedule. Automation rules are global resources that manage automated actions across all AWS Regions where Compute Optimizer Automation is available. Organization-level rules can only be created by the management account or delegated administrator.", + "additionalProperties": false, + "properties": { + "RuleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the automation rule.", + "markdownDescription": "The Amazon Resource Name (ARN) of the automation rule.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "RuleId": { + "type": "string", + "description": "The unique identifier of the automation rule.", + "markdownDescription": "The unique identifier of the automation rule.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9A-Za-z]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "The name of the automation rule.", + "minLength": 0, + "maxLength": 128, + "markdownDescription": "The name of the automation rule.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9_-]*$ \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "description": "The description of the automation rule.", + "minLength": 0, + "maxLength": 1024, + "markdownDescription": "The description of the automation rule.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^[a-zA-Z0-9_\\-\\s@\\.]*$ \nUpdate requires: No interruption\n" + }, + "RuleType": { + "type": "string", + "description": "The type of automation rule.", + "enum": [ + "AccountRule", + "OrganizationRule" + ], + "markdownDescription": "The type of automation rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AccountRule | OrganizationRule \nUpdate requires: No interruption\n" + }, + "RuleRevision": { + "type": "string", + "description": "The revision number of the automation rule.", + "markdownDescription": "The revision number of the automation rule.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OrganizationConfiguration": { + "description": "Organization configuration for organization rules, including rule apply order and account scope.", + "$ref": "#/definitions/OrganizationConfiguration", + "markdownDescription": "Organization configuration for organization rules, including rule apply order and account scope.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "RecommendedActionTypes": { + "type": "array", + "description": "The types of recommended actions this rule will implement.", + "items": { + "type": "string", + "enum": [ + "SnapshotAndDeleteUnattachedEbsVolume", + "UpgradeEbsVolumeType" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SnapshotAndDeleteUnattachedEbsVolume | UpgradeEbsVolumeType \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "insertionOrder": false, + "markdownDescription": "The types of recommended actions this rule will implement.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "AccountId": { + "type": "string", + "description": "The AWS account ID that owns the automation rule.", + "markdownDescription": "The AWS account ID that owns the automation rule.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Priority": { + "type": "string", + "description": "Rule priority within its group", + "markdownDescription": "Rule priority within its group\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Schedule": { + "description": "The schedule configuration for when the rule runs.", + "$ref": "#/definitions/Schedule", + "markdownDescription": "The schedule configuration for when the rule runs.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Criteria": { + "description": "Filter criteria that specify which recommended actions qualify for implementation.", + "$ref": "#/definitions/Criteria", + "markdownDescription": "Filter criteria that specify which recommended actions qualify for implementation.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "description": "The status of the automation rule.", + "enum": [ + "Active", + "Inactive" + ], + "markdownDescription": "The status of the automation rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Active | Inactive \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the automation rule was created.", + "markdownDescription": "The timestamp when the automation rule was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTimestamp": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the automation rule was last updated.", + "markdownDescription": "The timestamp when the automation rule was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "Tags associated with the automation rule.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "insertionOrder": false, + "markdownDescription": "Tags associated with the automation rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\w\\s\\.\\-\\:\\/\\=\\+\\@]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^[\\w\\s\\.\\-\\:\\/\\=\\+\\@]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OrganizationConfiguration": { + "type": "object", + "properties": { + "RuleApplyOrder": { + "type": "string", + "enum": [ + "BeforeAccountRules", + "AfterAccountRules" + ], + "description": "When the rule should be applied relative to account rules", + "markdownDescription": "When the rule should be applied relative to account rules\n\n---\n\nRequired: No \nType: String \nAllowed Values: BeforeAccountRules | AfterAccountRules \nUpdate requires: No interruption\n" + }, + "AccountIds": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 50, + "description": "List of account IDs where the organization rule applies", + "insertionOrder": false, + "markdownDescription": "List of account IDs where the organization rule applies\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Schedule": { + "type": "object", + "properties": { + "ScheduleExpression": { + "type": "string", + "description": "Schedule expression (e.g., cron or rate expression)", + "markdownDescription": "Schedule expression (e.g., cron or rate expression)\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ScheduleExpressionTimezone": { + "type": "string", + "description": "IANA timezone identifier", + "markdownDescription": "IANA timezone identifier\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ExecutionWindowInMinutes": { + "type": "integer", + "minimum": 60, + "maximum": 1440, + "description": "Execution window duration in minutes", + "markdownDescription": "Execution window duration in minutes\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Criteria": { + "type": "object", + "properties": { + "Region": { + "$ref": "#/definitions/StringCriteriaConditionList" + }, + "ResourceArn": { + "$ref": "#/definitions/StringCriteriaConditionList" + }, + "EbsVolumeType": { + "$ref": "#/definitions/StringCriteriaConditionList" + }, + "EbsVolumeSizeInGib": { + "$ref": "#/definitions/IntegerCriteriaConditionList" + }, + "EstimatedMonthlySavings": { + "$ref": "#/definitions/DoubleCriteriaConditionList" + }, + "ResourceTag": { + "$ref": "#/definitions/ResourceTagsCriteriaConditionList" + }, + "LookBackPeriodInDays": { + "$ref": "#/definitions/IntegerCriteriaConditionList" + }, + "RestartNeeded": { + "$ref": "#/definitions/StringCriteriaConditionList" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StringCriteriaConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/StringCriteriaCondition" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "StringCriteriaCondition": { + "type": "object", + "properties": { + "Comparison": { + "type": "string", + "enum": [ + "StringEquals", + "StringNotEquals", + "StringEqualsIgnoreCase", + "StringNotEqualsIgnoreCase", + "StringLike", + "StringNotLike", + "NumericEquals", + "NumericNotEquals", + "NumericLessThan", + "NumericLessThanEquals", + "NumericGreaterThan", + "NumericGreaterThanEquals" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals \nUpdate requires: No interruption\n" + }, + "Values": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[\\w\\s\\.\\-\\:\\/\\=\\+\\@\\*\\?]+$ \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IntegerCriteriaConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/IntegerCriteriaCondition" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IntegerCriteriaCondition": { + "type": "object", + "properties": { + "Comparison": { + "type": "string", + "enum": [ + "StringEquals", + "StringNotEquals", + "StringEqualsIgnoreCase", + "StringNotEqualsIgnoreCase", + "StringLike", + "StringNotLike", + "NumericEquals", + "NumericNotEquals", + "NumericLessThan", + "NumericLessThanEquals", + "NumericGreaterThan", + "NumericGreaterThanEquals" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals \nUpdate requires: No interruption\n" + }, + "Values": { + "type": "array", + "items": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DoubleCriteriaConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/DoubleCriteriaCondition" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "DoubleCriteriaCondition": { + "type": "object", + "properties": { + "Comparison": { + "type": "string", + "enum": [ + "StringEquals", + "StringNotEquals", + "StringEqualsIgnoreCase", + "StringNotEqualsIgnoreCase", + "StringLike", + "StringNotLike", + "NumericEquals", + "NumericNotEquals", + "NumericLessThan", + "NumericLessThanEquals", + "NumericGreaterThan", + "NumericGreaterThanEquals" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals \nUpdate requires: No interruption\n" + }, + "Values": { + "type": "array", + "items": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceTagsCriteriaConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceTagsCriteriaCondition" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ResourceTagsCriteriaCondition": { + "type": "object", + "properties": { + "Comparison": { + "type": "string", + "enum": [ + "StringEquals", + "StringNotEquals", + "StringEqualsIgnoreCase", + "StringNotEqualsIgnoreCase", + "StringLike", + "StringNotLike", + "NumericEquals", + "NumericNotEquals", + "NumericLessThan", + "NumericLessThanEquals", + "NumericGreaterThan", + "NumericGreaterThanEquals" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[\\w\\s\\.\\-\\:\\/\\=\\+\\@\\*\\?]+$ \nUpdate requires: No interruption\n" + }, + "Values": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[\\w\\s\\.\\-\\:\\/\\=\\+\\@\\*\\?]+$ \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "RuleType", + "RecommendedActionTypes", + "Schedule", + "Status" + ], + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/RuleId", + "/properties/RuleRevision", + "/properties/AccountId", + "/properties/CreatedTimestamp", + "/properties/LastUpdatedTimestamp" + ], + "handlers": { + "create": { + "permissions": [ + "aco-automation:CreateAutomationRule", + "aco-automation:GetAutomationRule", + "aco-automation:TagResource" + ] + }, + "read": { + "permissions": [ + "aco-automation:GetAutomationRule" + ] + }, + "update": { + "permissions": [ + "aco-automation:UpdateAutomationRule", + "aco-automation:GetAutomationRule", + "aco-automation:TagResource", + "aco-automation:UntagResource" + ] + }, + "delete": { + "permissions": [ + "aco-automation:DeleteAutomationRule", + "aco-automation:GetAutomationRule" + ] + }, + "list": { + "permissions": [ + "aco-automation:ListAutomationRules" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aco-automation:TagResource", + "aco-automation:UntagResource", + "aco-automation:ListTagsForResource" + ] + }, + "attributes": { + "RuleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the automation rule.", + "markdownDescription": "The Amazon Resource Name (ARN) of the automation rule.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "RuleId": { + "type": "string", + "description": "The unique identifier of the automation rule.", + "markdownDescription": "The unique identifier of the automation rule.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9A-Za-z]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "RuleRevision": { + "type": "string", + "description": "The revision number of the automation rule.", + "markdownDescription": "The revision number of the automation rule.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccountId": { + "type": "string", + "description": "The AWS account ID that owns the automation rule.", + "markdownDescription": "The AWS account ID that owns the automation rule.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTimestamp": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the automation rule was created.", + "markdownDescription": "The timestamp when the automation rule was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTimestamp": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the automation rule was last updated.", + "markdownDescription": "The timestamp when the automation rule was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-config-organizationconformancepack.json b/server/schema/resources/aws-config-organizationconformancepack.json index accad7fc..f2c10e3e 100644 --- a/server/schema/resources/aws-config-organizationconformancepack.json +++ b/server/schema/resources/aws-config-organizationconformancepack.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Config::OrganizationConformancePack", - "description": "Resource schema for AWS::Config::OrganizationConformancePack.", + "description": "Resource Type definition for AWS::Config::OrganizationConformancePack.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-config.git", "documentationUrl": "https://docs.aws.amazon.com/config/latest/developerguide/conformance-pack-organization-apis.html", "definitions": { diff --git a/server/schema/resources/aws-config-remediationconfiguration.json b/server/schema/resources/aws-config-remediationconfiguration.json deleted file mode 100644 index 2d6a8f66..00000000 --- a/server/schema/resources/aws-config-remediationconfiguration.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "typeName": "AWS::Config::RemediationConfiguration", - "description": "Resource Type definition for AWS::Config::RemediationConfiguration", - "additionalProperties": false, - "properties": { - "TargetVersion": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ExecutionControls": { - "$ref": "#/definitions/ExecutionControls" - }, - "Parameters": { - "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TargetType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "ConfigRuleName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "ResourceType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "RetryAttemptSeconds": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaximumAutomaticAttempts": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "TargetId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Automatic": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - } - }, - "definitions": { - "ExecutionControls": { - "type": "object", - "additionalProperties": false, - "properties": { - "SsmControls": { - "$ref": "#/definitions/SsmControls" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "SsmControls": { - "type": "object", - "additionalProperties": false, - "properties": { - "ErrorPercentage": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "ConcurrentExecutionRatePercentage": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "required": [ - "TargetType", - "ConfigRuleName", - "TargetId" - ], - "createOnlyProperties": [ - "/properties/ConfigRuleName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - } - } -} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-contactflowmodule.json b/server/schema/resources/aws-connect-contactflowmodule.json index c009ebbd..a8d0435f 100644 --- a/server/schema/resources/aws-connect-contactflowmodule.json +++ b/server/schema/resources/aws-connect-contactflowmodule.json @@ -28,6 +28,11 @@ "Value" ], "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Enabled": { + "description": "Specifies whether the flow module resource is enabled for external invocation", + "type": "boolean", + "markdownDescription": "Specifies whether the flow module resource is enabled for external invocation\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "properties": { @@ -87,6 +92,26 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "One or more tags.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Settings": { + "description": "The schema of the settings for contact flow module in JSON Schema V4 format.", + "type": "string", + "maxLength": 256000, + "markdownDescription": "The schema of the settings for contact flow module in JSON Schema V4 format.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256000 \nUpdate requires: No interruption\n" + }, + "ExternalInvocationConfiguration": { + "description": "Defines the external invocation configuration of the flow module resource", + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "$ref": "#/definitions/Enabled" + } + }, + "required": [ + "Enabled" + ], + "markdownDescription": "Defines the external invocation configuration of the flow module resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-connect-contactflowmodulealias.json b/server/schema/resources/aws-connect-contactflowmodulealias.json new file mode 100644 index 00000000..7f10f3e9 --- /dev/null +++ b/server/schema/resources/aws-connect-contactflowmodulealias.json @@ -0,0 +1,126 @@ +{ + "typeName": "AWS::Connect::ContactFlowModuleAlias", + "description": "Resource Type definition for ContactFlowModuleAlias", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": {}, + "properties": { + "ContactFlowModuleAliasARN": { + "description": "The identifier of the contact flow module alias (ARN). This is constructed from the ContactFlowModuleArn and AliasId.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The identifier of the contact flow module alias (ARN). This is constructed from the ContactFlowModuleArn and AliasId.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]+:[0-9]{12}:instance/[-a-zA-Z0-9]+/flow-module/[-a-zA-Z0-9]+:[-a-zA-Z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AliasId": { + "description": "The unique identifier of the alias.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The unique identifier of the alias.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ContactFlowModuleId": { + "description": "The identifier of the contact flow module (ARN) this alias is tied to.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The identifier of the contact flow module (ARN) this alias is tied to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]+:[0-9]{12}:instance/[-a-zA-Z0-9]+/flow-module/[-a-zA-Z0-9]+$ \nUpdate requires: Replacement\n" + }, + "ContactFlowModuleVersion": { + "description": "The version number of the contact flow module this alias points to.", + "type": "integer", + "minimum": 1, + "markdownDescription": "The version number of the contact flow module this alias points to.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the alias.", + "type": "string", + "minLength": 1, + "maxLength": 127, + "markdownDescription": "The name of the alias.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nPattern: ^([$0-9a-zA-Z][_-]?)+$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the alias.", + "type": "string", + "minLength": 0, + "maxLength": 500, + "markdownDescription": "The description of the alias.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 500 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "required": [ + "ContactFlowModuleId", + "ContactFlowModuleVersion", + "Name" + ], + "primaryIdentifier": [ + "/properties/ContactFlowModuleAliasARN" + ], + "readOnlyProperties": [ + "/properties/ContactFlowModuleAliasARN", + "/properties/AliasId" + ], + "createOnlyProperties": [ + "/properties/ContactFlowModuleId" + ], + "handlers": { + "create": { + "permissions": [ + "connect:CreateContactFlowModuleAlias", + "connect:DescribeContactFlowModuleAlias" + ] + }, + "read": { + "permissions": [ + "connect:DescribeContactFlowModuleAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ContactFlowModuleId": { + "$ref": "resource-schema.json#/properties/ContactFlowModuleId" + } + }, + "required": [ + "ContactFlowModuleId" + ] + }, + "permissions": [ + "connect:ListContactFlowModuleAliases" + ] + }, + "update": { + "permissions": [ + "connect:UpdateContactFlowModuleAlias", + "connect:DescribeContactFlowModuleAlias" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteContactFlowModuleAlias" + ] + } + }, + "attributes": { + "ContactFlowModuleAliasARN": { + "description": "The identifier of the contact flow module alias (ARN). This is constructed from the ContactFlowModuleArn and AliasId.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The identifier of the contact flow module alias (ARN). This is constructed from the ContactFlowModuleArn and AliasId.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]+:[0-9]{12}:instance/[-a-zA-Z0-9]+/flow-module/[-a-zA-Z0-9]+:[-a-zA-Z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AliasId": { + "description": "The unique identifier of the alias.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The unique identifier of the alias.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-contactflowmoduleversion.json b/server/schema/resources/aws-connect-contactflowmoduleversion.json new file mode 100644 index 00000000..aadf7ba1 --- /dev/null +++ b/server/schema/resources/aws-connect-contactflowmoduleversion.json @@ -0,0 +1,121 @@ +{ + "typeName": "AWS::Connect::ContactFlowModuleVersion", + "description": "Resource Type definition for ContactFlowModuleVersion", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": {}, + "properties": { + "ContactFlowModuleVersionARN": { + "description": "The identifier of the contact flow module version (ARN).", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The identifier of the contact flow module version (ARN).\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]+:[0-9]{12}:instance/[-a-zA-Z0-9]+/flow-module/[-a-zA-Z0-9]+:[0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ContactFlowModuleId": { + "description": "The identifier of the contact flow module (ARN) this version is tied to.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The identifier of the contact flow module (ARN) this version is tied to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]+:[0-9]{12}:instance/[-a-zA-Z0-9]+/flow-module/[-a-zA-Z0-9]+$ \nUpdate requires: Replacement\n" + }, + "Version": { + "description": "The version number of this revision", + "type": "integer", + "markdownDescription": "The version number of this revision\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "description": "The description of the version.", + "type": "string", + "maxLength": 500, + "markdownDescription": "The description of the version.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 500 \nUpdate requires: Replacement\n" + }, + "FlowModuleContentSha256": { + "description": "Indicates the checksum value of the latest published flow module content", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "Indicates the checksum value of the latest published flow module content\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9]{64}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "required": [ + "ContactFlowModuleId" + ], + "primaryIdentifier": [ + "/properties/ContactFlowModuleVersionARN" + ], + "readOnlyProperties": [ + "/properties/ContactFlowModuleVersionARN", + "/properties/Version", + "/properties/FlowModuleContentSha256" + ], + "createOnlyProperties": [ + "/properties/ContactFlowModuleId", + "/properties/Description" + ], + "handlers": { + "create": { + "permissions": [ + "connect:CreateContactFlowModuleVersion", + "connect:DescribeContactFlowModule" + ] + }, + "read": { + "permissions": [ + "connect:DescribeContactFlowModule" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ContactFlowModuleId": { + "$ref": "resource-schema.json#/properties/ContactFlowModuleId" + } + }, + "required": [ + "ContactFlowModuleId" + ] + }, + "permissions": [ + "connect:ListContactFlowModuleVersions" + ] + }, + "update": { + "permissions": [ + "connect:DescribeContactFlowModule" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteContactFlowModuleVersion" + ] + } + }, + "attributes": { + "ContactFlowModuleVersionARN": { + "description": "The identifier of the contact flow module version (ARN).", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The identifier of the contact flow module version (ARN).\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]+:[0-9]{12}:instance/[-a-zA-Z0-9]+/flow-module/[-a-zA-Z0-9]+:[0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Version": { + "description": "The version number of this revision", + "type": "integer", + "markdownDescription": "The version number of this revision\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FlowModuleContentSha256": { + "description": "Indicates the checksum value of the latest published flow module content", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "Indicates the checksum value of the latest published flow module content\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9]{64}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-datatable.json b/server/schema/resources/aws-connect-datatable.json new file mode 100644 index 00000000..eff3aadb --- /dev/null +++ b/server/schema/resources/aws-connect-datatable.json @@ -0,0 +1,241 @@ +{ + "typeName": "AWS::Connect::DataTable", + "description": "Resource Type definition for AWS::Connect::DataTable", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "Description": { + "description": "The description of the Data Table.", + "type": "string", + "minLength": 0, + "maxLength": 250, + "markdownDescription": "The description of the Data Table.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 250 \nPattern: ^[\\P{C}\r\n\t]+$ \nUpdate requires: No interruption\n" + }, + "Timestamp": { + "description": "A epoch time stamp field used for data table operations.", + "type": "number", + "markdownDescription": "A epoch time stamp field used for data table operations.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "The identifier of the Amazon Connect instance.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: Replacement\n" + }, + "Name": { + "description": "The name of the Data Table", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The name of the Data Table\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\p{L}\\p{Z}\\p{N}\\-_.:=@'|]+$ \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "The arn of the Data Table", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The arn of the Data Table\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TimeZone": { + "description": "The time zone of the Data Table", + "type": "string", + "markdownDescription": "The time zone of the Data Table\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the Data Table.", + "$ref": "#/definitions/Description", + "markdownDescription": "The description of the Data Table.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ValueLockLevel": { + "description": "The value lock level of the Data Table", + "type": "string", + "enum": [ + "NONE", + "DATA_TABLE", + "PRIMARY_VALUE", + "ATTRIBUTE", + "VALUE" + ], + "markdownDescription": "The value lock level of the Data Table\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | DATA_TABLE | PRIMARY_VALUE | ATTRIBUTE | VALUE \nUpdate requires: No interruption\n" + }, + "LockVersion": { + "description": "The lock version of the Data Table", + "type": "object", + "properties": { + "DataTable": { + "type": "string", + "description": "The data table for the lock version", + "markdownDescription": "The data table for the lock version\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The lock version of the Data Table\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "description": "The status of the Data Table", + "type": "string", + "enum": [ + "PUBLISHED" + ], + "markdownDescription": "The status of the Data Table\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLISHED \nUpdate requires: Replacement\n" + }, + "CreatedTime": { + "description": "The creation time of the Data Table", + "$ref": "#/definitions/Timestamp", + "markdownDescription": "The creation time of the Data Table\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "description": "Last modified time.", + "$ref": "#/definitions/Timestamp", + "markdownDescription": "Last modified time.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedRegion": { + "description": "Last modified region.", + "type": "string", + "markdownDescription": "Last modified region.\n\n---\n\nRequired: No \nType: String \nPattern: [a-z]{2}(-[a-z]+){1,2}(-[0-9])? \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "One or more tags.", + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "connect:TagResource", + "connect:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateDataTable", + "connect:TagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeDataTable" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteDataTable", + "connect:UntagResource" + ] + }, + "update": { + "permissions": [ + "connect:UpdateDataTableMetadata", + "connect:TagResource", + "connect:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListDataTables" + ] + } + }, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/Status" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/LockVersion", + "/properties/CreatedTime", + "/properties/LastModifiedRegion", + "/properties/LastModifiedTime" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/Arn" + ], + "attributes": { + "Arn": { + "description": "The arn of the Data Table", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The arn of the Data Table\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LockVersion": { + "description": "The lock version of the Data Table", + "type": "object", + "properties": { + "DataTable": { + "type": "string", + "description": "The data table for the lock version", + "markdownDescription": "The data table for the lock version\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The lock version of the Data Table\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "description": "The creation time of the Data Table", + "$ref": "#/definitions/Timestamp", + "markdownDescription": "The creation time of the Data Table\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "description": "Last modified time.", + "$ref": "#/definitions/Timestamp", + "markdownDescription": "Last modified time.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedRegion": { + "description": "Last modified region.", + "type": "string", + "markdownDescription": "Last modified region.\n\n---\n\nRequired: No \nType: String \nPattern: [a-z]{2}(-[a-z]+){1,2}(-[0-9])? \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-datatableattribute.json b/server/schema/resources/aws-connect-datatableattribute.json new file mode 100644 index 00000000..12cebe92 --- /dev/null +++ b/server/schema/resources/aws-connect-datatableattribute.json @@ -0,0 +1,297 @@ +{ + "typeName": "AWS::Connect::DataTableAttribute", + "description": "Resource Type definition for AWS::Connect::DataTableAttribute", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "Description": { + "description": "", + "type": "string", + "minLength": 0, + "maxLength": 250, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 250 \nPattern: ^[\\P{C}\r\n\t]+$ \nUpdate requires: No interruption\n" + }, + "LengthBoundary": { + "description": "", + "type": "integer", + "minimum": 0, + "exclusiveMaximum": 1000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ValueBoundary": { + "description": "", + "type": "integer", + "minimum": 0, + "exclusiveMaximum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AttributeId": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "properties": { + "InstanceArn": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: Replacement\n" + }, + "DataTableArn": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: Replacement\n" + }, + "AttributeId": { + "description": "", + "$ref": "#/definitions/AttributeId", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\p{L}\\p{Z}\\p{N}\\-_.:=@'|]+$ \nUpdate requires: Some interruptions\n" + }, + "ValueType": { + "description": "", + "type": "string", + "enum": [ + "TEXT", + "NUMBER", + "BOOLEAN", + "TEXT_LIST", + "NUMBER_LIST" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TEXT | NUMBER | BOOLEAN | TEXT_LIST | NUMBER_LIST \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "", + "$ref": "#/definitions/Description", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Primary": { + "description": "", + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "LockVersion": { + "description": "", + "type": "object", + "properties": { + "DataTable": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Attribute": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Validation": { + "description": "", + "type": "object", + "properties": { + "MinLength": { + "description": "", + "$ref": "#/definitions/LengthBoundary", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "MaxLength": { + "description": "", + "$ref": "#/definitions/LengthBoundary", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "MinValues": { + "description": "", + "$ref": "#/definitions/ValueBoundary", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "MaxValues": { + "description": "", + "$ref": "#/definitions/ValueBoundary", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Minimum": { + "description": "", + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Maximum": { + "description": "", + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "ExclusiveMinimum": { + "description": "", + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "ExclusiveMaximum": { + "description": "", + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "MultipleOf": { + "description": "", + "type": "number", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Enum": { + "description": "", + "type": "object", + "properties": { + "Strict": { + "description": "", + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Values": { + "description": "", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LastModifiedTime": { + "description": "", + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedRegion": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: [a-z]{2}(-[a-z]+){1,2}(-[0-9])? \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateDataTableAttribute", + "connect:ListDataTableAttributes" + ] + }, + "read": { + "permissions": [ + "connect:ListDataTableAttributes" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteDataTableAttribute", + "connect:ListDataTableAttributes" + ] + }, + "update": { + "permissions": [ + "connect:UpdateDataTableAttribute" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + }, + "DataTableArn": { + "$ref": "resource-schema.json#/properties/DataTableArn" + } + }, + "required": [ + "InstanceArn", + "DataTableArn" + ] + }, + "permissions": [ + "connect:ListDataTableAttributes" + ] + } + }, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/DataTableArn" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Name" + ], + "readOnlyProperties": [ + "/properties/AttributeId", + "/properties/LockVersion", + "/properties/LastModifiedRegion", + "/properties/LastModifiedTime" + ], + "tagging": { + "taggable": false + }, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/DataTableArn", + "/properties/AttributeId" + ], + "additionalIdentifiers": [ + [ + "/properties/InstanceArn", + "/properties/DataTableArn", + "/properties/Name" + ] + ], + "additionalProperties": false, + "attributes": { + "AttributeId": { + "description": "", + "$ref": "#/definitions/AttributeId", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LockVersion": { + "description": "", + "type": "object", + "properties": { + "DataTable": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Attribute": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedTime": { + "description": "", + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModifiedRegion": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: [a-z]{2}(-[a-z]+){1,2}(-[0-9])? \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-datatablerecord.json b/server/schema/resources/aws-connect-datatablerecord.json new file mode 100644 index 00000000..e14f6542 --- /dev/null +++ b/server/schema/resources/aws-connect-datatablerecord.json @@ -0,0 +1,160 @@ +{ + "typeName": "AWS::Connect::DataTableRecord", + "description": "Resource Type definition for AWS::Connect::DataTableRecord", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "AttributeId": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "", + "type": "object", + "properties": { + "AttributeId": { + "description": "", + "$ref": "#/definitions/AttributeId", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AttributeValue": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "InstanceArn": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: Replacement\n" + }, + "DataTableArn": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: Replacement\n" + }, + "RecordId": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DataTableRecord": { + "description": "", + "type": "object", + "properties": { + "PrimaryValues": { + "description": "", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Value" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Values": { + "description": "", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Value" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Values" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "connect:ListDataTableAttributes", + "connect:BatchCreateDataTableValue" + ] + }, + "read": { + "permissions": [ + "connect:ListDataTableAttributes", + "connect:ListDataTableValues" + ] + }, + "delete": { + "permissions": [ + "connect:ListDataTableAttributes", + "connect:ListDataTableValues", + "connect:BatchDeleteDataTableValue" + ] + }, + "update": { + "permissions": [ + "connect:UpdateDataTablePrimaryValues", + "connect:BatchCreateDataTableValue", + "connect:BatchDeleteDataTableValue", + "connect:BatchUpdateDataTableValue", + "connect:ListDataTableAttributes", + "connect:ListDataTableValues" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + }, + "DataTableArn": { + "$ref": "resource-schema.json#/properties/DataTableArn" + } + }, + "required": [ + "InstanceArn", + "DataTableArn" + ] + }, + "permissions": [ + "connect:ListDataTableAttributes", + "connect:ListDataTablePrimaryValues" + ] + } + }, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/DataTableArn" + ], + "readOnlyProperties": [ + "/properties/RecordId" + ], + "tagging": { + "taggable": false + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/DataTableArn", + "/properties/RecordId" + ], + "attributes": { + "RecordId": { + "description": "", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-emailaddress.json b/server/schema/resources/aws-connect-emailaddress.json index 46e86cf1..48ebe768 100644 --- a/server/schema/resources/aws-connect-emailaddress.json +++ b/server/schema/resources/aws-connect-emailaddress.json @@ -27,6 +27,22 @@ ], "additionalProperties": false, "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AliasConfiguration": { + "description": "Configuration for an email address alias", + "type": "object", + "properties": { + "EmailAddressArn": { + "description": "The identifier of the email address alias", + "type": "string", + "markdownDescription": "The identifier of the email address alias\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0-9]{1,20}:instance/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/email-address/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EmailAddressArn" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for an email address alias\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -63,6 +79,16 @@ "maxLength": 256, "markdownDescription": "The display name for the email address.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: (^[\\S].*[\\S]$)|(^[\\S]$) \nUpdate requires: No interruption\n" }, + "AliasConfigurations": { + "description": "List of alias configurations for the email address", + "type": "array", + "items": { + "$ref": "#/definitions/AliasConfiguration" + }, + "maxItems": 1, + "insertionOrder": false, + "markdownDescription": "List of alias configurations for the email address\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Tags": { "type": "array", "maxItems": 50, @@ -104,6 +130,7 @@ "create": { "permissions": [ "connect:CreateEmailAddress", + "connect:AssociateEmailAddressAlias", "connect:TagResource", "connect:ListIntegrationAssociations", "ses:GetEmailIdentity", @@ -120,6 +147,8 @@ "update": { "permissions": [ "connect:UpdateEmailAddressMetadata", + "connect:AssociateEmailAddressAlias", + "connect:DisassociateEmailAddressAlias", "connect:TagResource", "connect:UntagResource" ] @@ -127,6 +156,7 @@ "delete": { "permissions": [ "connect:DeleteEmailAddress", + "connect:DisassociateEmailAddressAlias", "connect:UntagResource", "iam:PassRole", "ses:DescribeReceiptRule", diff --git a/server/schema/resources/aws-connect-evaluationform.json b/server/schema/resources/aws-connect-evaluationform.json index 436eb26c..e016e79d 100644 --- a/server/schema/resources/aws-connect-evaluationform.json +++ b/server/schema/resources/aws-connect-evaluationform.json @@ -1,67 +1,161 @@ { + "typeName": "AWS::Connect::EvaluationForm", + "description": "Creates an evaluation form for the specified CON instance.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "permissions": [ - "connect:ListTagsForResource", - "connect:UntagResource", - "connect:TagResource" - ], - "taggable": true, - "tagOnCreate": false, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "connect:DescribeEvaluationForm", - "connect:ListEvaluationFormVersions" - ] + "definitions": { + "RefId": { + "description": "The identifier to reference the item.", + "type": "string", + "markdownDescription": "The identifier to reference the item.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9._-]{1,40}$ \nUpdate requires: No interruption\n" }, - "create": { - "permissions": [ - "connect:CreateEvaluationForm", - "connect:ActivateEvaluationForm", - "connect:TagResource" - ] + "ReferenceIdList": { + "description": "The list of reference id.", + "type": "array", + "items": { + "$ref": "#/definitions/RefId" + }, + "markdownDescription": "The list of reference id.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "update": { - "permissions": [ - "connect:UpdateEvaluationForm", - "connect:ListEvaluationFormVersions", - "connect:ActivateEvaluationForm", - "connect:DeactivateEvaluationForm", - "connect:TagResource", - "connect:UntagResource" - ] + "Weight": { + "description": "The item weight used for scoring.", + "type": "number", + "minimum": 0, + "maximum": 100, + "markdownDescription": "The item weight used for scoring.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "list": { - "permissions": [ - "connect:ListEvaluationForms" - ] + "Score": { + "description": "The score of an answer option.", + "type": "integer", + "minimum": 0, + "maximum": 10, + "markdownDescription": "The score of an answer option.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AutomaticFailConfiguration": { + "description": "Information about automatic fail configuration for an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "TargetSection": { + "description": "The referenceId of the target section for auto failure.", + "type": "string", + "markdownDescription": "The referenceId of the target section for auto failure.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9._-]{1,40}$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about automatic fail configuration for an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormTargetConfiguration": { + "description": "Configuration that specifies the target for an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "ContactInteractionType": { + "description": "The contact interaction type for this evaluation form.", + "type": "string", + "enum": [ + "AGENT", + "AUTOMATED", + "CUSTOMER" + ], + "markdownDescription": "The contact interaction type for this evaluation form.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AGENT | AUTOMATED | CUSTOMER \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ContactInteractionType" + ], + "markdownDescription": "Configuration that specifies the target for an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormLanguageConfiguration": { + "description": "Language configuration for an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "FormLanguage": { + "description": "The language for the evaluation form.", + "type": "string", + "enum": [ + "de-DE", + "en-US", + "es-ES", + "fr-FR", + "it-IT", + "pt-BR", + "ja-JP", + "ko-KR", + "zh-CN" + ], + "markdownDescription": "The language for the evaluation form.\n\n---\n\nRequired: No \nType: String \nAllowed Values: de-DE | en-US | es-ES | fr-FR | it-IT | pt-BR | ja-JP | ko-KR | zh-CN \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Language configuration for an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationReviewNotificationRecipientValue": { + "description": "The value information for an evaluation review notification recipient.", + "type": "object", + "additionalProperties": false, + "properties": { + "UserId": { + "description": "The user identifier for the notification recipient.", + "type": "string", + "markdownDescription": "The user identifier for the notification recipient.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The value information for an evaluation review notification recipient.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationReviewNotificationRecipient": { + "description": "Information about a recipient who should be notified when an evaluation review is requested.", + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "description": "The type of notification recipient.", + "type": "string", + "enum": [ + "USER_ID" + ], + "markdownDescription": "The type of notification recipient.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: USER_ID \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The value associated with the notification recipient type.", + "$ref": "#/definitions/EvaluationReviewNotificationRecipientValue", + "markdownDescription": "The value associated with the notification recipient type.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type", + "Value" + ], + "markdownDescription": "Information about a recipient who should be notified when an evaluation review is requested.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationReviewConfiguration": { + "description": "Configuration settings for evaluation reviews.", + "type": "object", + "additionalProperties": false, + "properties": { + "ReviewNotificationRecipients": { + "description": "List of recipients who should be notified when a review is requested.", + "type": "array", + "items": { + "$ref": "#/definitions/EvaluationReviewNotificationRecipient" + }, + "markdownDescription": "List of recipients who should be notified when a review is requested.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "EligibilityDays": { + "description": "Number of days during which a request for review can be submitted for evaluations created from this form.", + "type": "integer", + "minimum": 1, + "maximum": 90, + "markdownDescription": "Number of days during which a request for review can be submitted for evaluations created from this form.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ReviewNotificationRecipients" + ], + "markdownDescription": "Configuration settings for evaluation reviews.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "connect:DeleteEvaluationForm", - "connect:UntagResource" - ] - } - }, - "typeName": "AWS::Connect::EvaluationForm", - "readOnlyProperties": [ - "/properties/EvaluationFormArn" - ], - "description": "Creates an evaluation form for the specified CON instance.", - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/EvaluationFormArn" - ], - "definitions": { "EvaluationFormBaseItem": { "description": "An item at the root level. All items must be sections.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Section": { "description": "A subsection or inner section of an item.", @@ -74,15 +168,33 @@ ], "markdownDescription": "An item at the root level. All items must be sections.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "EvaluationFormItem": { + "description": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.", + "type": "object", + "additionalProperties": false, + "properties": { + "Section": { + "description": "The information of the section.", + "$ref": "#/definitions/EvaluationFormSection", + "markdownDescription": "The information of the section.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Question": { + "description": "The information of the question.", + "$ref": "#/definitions/EvaluationFormQuestion", + "markdownDescription": "The information of the question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "EvaluationFormSection": { "description": "Information about a section from an evaluation form. A section can contain sections and/or questions. Evaluation forms can only contain sections and subsections (two level nesting).", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Title": { - "minLength": 1, "description": "The title of the section.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.", "type": "string", + "minLength": 1, "maxLength": 128, "markdownDescription": "The title of the section.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, @@ -92,22 +204,22 @@ "maxLength": 1024, "markdownDescription": "The instructions of the section.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "RefId": { + "description": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, "Items": { - "minItems": 1, - "maxItems": 200, "description": "The items of the section.\n *Minimum*: 1", - "insertionOrder": true, "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 200, "items": { "$ref": "#/definitions/EvaluationFormItem" }, "markdownDescription": "The items of the section.\n *Minimum*: 1\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "RefId": { - "description": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", - "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - }, "Weight": { "description": "The scoring weight of the section.\n *Minimum*: 0 \n *Maximum*: 100", "$ref": "#/definitions/Weight", @@ -120,164 +232,173 @@ ], "markdownDescription": "Information about a section from an evaluation form. A section can contain sections and/or questions. Evaluation forms can only contain sections and subsections (two level nesting).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormSingleSelectQuestionProperties": { - "description": "Information about the options in single select questions.", - "additionalProperties": false, + "EvaluationFormItemEnablementConfiguration": { + "description": "An item enablement configuration.", "type": "object", + "additionalProperties": false, "properties": { - "DisplayAs": { - "description": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``", + "Condition": { + "description": "A condition for item enablement configuration.", + "$ref": "#/definitions/EvaluationFormItemEnablementCondition", + "markdownDescription": "A condition for item enablement configuration.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Action": { + "description": "An enablement action that if condition is satisfied.", "type": "string", "enum": [ - "DROPDOWN", - "RADIO" + "DISABLE", + "ENABLE" ], - "markdownDescription": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``\n\n---\n\nRequired: No \nType: String \nAllowed Values: DROPDOWN | RADIO \nUpdate requires: No interruption\n" + "markdownDescription": "An enablement action that if condition is satisfied.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DISABLE | ENABLE \nUpdate requires: No interruption\n" }, - "Options": { - "minItems": 2, - "maxItems": 256, - "description": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256", - "insertionOrder": true, + "DefaultAction": { + "description": "An enablement action that if condition is not satisfied.", + "type": "string", + "enum": [ + "DISABLE", + "ENABLE" + ], + "markdownDescription": "An enablement action that if condition is not satisfied.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLE | ENABLE \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Condition", + "Action" + ], + "markdownDescription": "An item enablement configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormItemEnablementCondition": { + "description": "A condition for item enablement.", + "type": "object", + "additionalProperties": false, + "properties": { + "Operands": { + "description": "Operands of the enablement condition.", "type": "array", + "insertionOrder": true, + "minItems": 1, "items": { - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionOption" + "$ref": "#/definitions/EvaluationFormItemEnablementConditionOperand" }, - "markdownDescription": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Operands of the enablement condition.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "Automation": { - "description": "The display mode of the single select question.", - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomation", - "markdownDescription": "The display mode of the single select question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "Operator": { + "description": "The operator to be used to be applied to operands if more than one provided.", + "type": "string", + "enum": [ + "OR", + "AND" + ], + "markdownDescription": "The operator to be used to be applied to operands if more than one provided.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OR | AND \nUpdate requires: No interruption\n" } }, "required": [ - "Options" + "Operands" ], - "markdownDescription": "Information about the options in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A condition for item enablement.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormQuestion": { - "description": "Information about a question from an evaluation form.", + "EvaluationFormItemEnablementConditionOperand": { + "description": "An operand of the enablement condition.", + "type": "object", "additionalProperties": false, + "properties": { + "Expression": { + "description": "An expression of the enablement condition.", + "$ref": "#/definitions/EvaluationFormItemEnablementExpression", + "markdownDescription": "An expression of the enablement condition.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An operand of the enablement condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormItemEnablementExpression": { + "description": "An expression that defines a basic building block of conditional enablement.", "type": "object", + "additionalProperties": false, "properties": { - "NotApplicableEnabled": { - "description": "The flag to enable not applicable answers to the question.", - "type": "boolean", - "markdownDescription": "The flag to enable not applicable answers to the question.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "Source": { + "description": "A source item of enablement expression.", + "$ref": "#/definitions/EvaluationFormItemEnablementSource", + "markdownDescription": "A source item of enablement expression.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, - "Title": { - "minLength": 1, - "description": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.", - "type": "string", - "maxLength": 350, - "markdownDescription": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 350 \nUpdate requires: No interruption\n" + "Values": { + "description": "A list of values from source item.", + "type": "array", + "insertionOrder": true, + "minItems": 1, + "items": { + "$ref": "#/definitions/EvaluationFormItemEnablementSourceValue" + }, + "markdownDescription": "A list of values from source item.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "QuestionType": { - "description": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``", + "Comparator": { + "description": "A comparator to be used against list of values.", "type": "string", "enum": [ - "NUMERIC", - "SINGLESELECT", - "TEXT" + "IN", + "NOT_IN", + "ALL_IN", + "EXACT" ], - "markdownDescription": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NUMERIC | SINGLESELECT | TEXT \nUpdate requires: No interruption\n" - }, - "Instructions": { - "description": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.", + "markdownDescription": "A comparator to be used against list of values.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: IN | NOT_IN | ALL_IN | EXACT \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Source", + "Values", + "Comparator" + ], + "markdownDescription": "An expression that defines a basic building block of conditional enablement.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormItemEnablementSource": { + "description": "An enablement expression source item.", + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "description": "A type of source item.", "type": "string", - "maxLength": 1024, - "markdownDescription": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + "enum": [ + "QUESTION_REF_ID" + ], + "markdownDescription": "A type of source item.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: QUESTION_REF_ID \nUpdate requires: No interruption\n" }, "RefId": { - "description": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - }, - "QuestionTypeProperties": { - "description": "The properties of the type of question. Text questions do not have to define question type properties.", - "$ref": "#/definitions/EvaluationFormQuestionTypeProperties", - "markdownDescription": "The properties of the type of question. Text questions do not have to define question type properties.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Weight": { - "description": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100", - "$ref": "#/definitions/Weight", - "markdownDescription": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "A referenceId of the source item.", + "markdownDescription": "A referenceId of the source item.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ - "RefId", - "Title", - "QuestionType" + "Type" ], - "markdownDescription": "Information about a question from an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "An enablement expression source item.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormSingleSelectQuestionAutomation": { - "description": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.", - "additionalProperties": false, + "EvaluationFormItemEnablementSourceValue": { + "description": "An enablement expression source value.", "type": "object", + "additionalProperties": false, "properties": { - "Options": { - "minItems": 1, - "maxItems": 20, - "description": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomationOption" - }, - "markdownDescription": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "Type": { + "description": "A type of source item value.", + "type": "string", + "enum": [ + "OPTION_REF_ID" + ], + "markdownDescription": "A type of source item value.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPTION_REF_ID \nUpdate requires: No interruption\n" }, - "DefaultOptionRefId": { - "description": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "RefId": { + "description": "A referenceId of the source value.", "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Options" - ], - "markdownDescription": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "EvaluationFormSingleSelectQuestionAutomationOption": { - "description": "The automation options of the single select question.", - "additionalProperties": false, - "type": "object", - "properties": { - "RuleCategory": { - "description": "The automation option based on a rule category for the single select question.", - "$ref": "#/definitions/SingleSelectQuestionRuleCategoryAutomation", - "markdownDescription": "The automation option based on a rule category for the single select question.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - } - }, - "required": [ - "RuleCategory" - ], - "markdownDescription": "The automation options of the single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "EvaluationFormNumericQuestionAutomation": { - "description": "Information about the automation configuration in numeric questions.", - "additionalProperties": false, - "type": "object", - "properties": { - "PropertyValue": { - "description": "The property value of the automation.", - "$ref": "#/definitions/NumericQuestionPropertyValueAutomation", - "markdownDescription": "The property value of the automation.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "A referenceId of the source value.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information about the automation configuration in numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "An enablement expression source value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EvaluationFormNumericQuestionOption": { "description": "Information about the option range used for scoring in numeric questions.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "Score": { - "description": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10", - "$ref": "#/definitions/Score", - "markdownDescription": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, "MinValue": { "description": "The minimum answer value of the range option.", "type": "integer", @@ -288,10 +409,20 @@ "type": "integer", "markdownDescription": "The maximum answer value of the range option.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, + "Score": { + "description": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10", + "$ref": "#/definitions/Score", + "markdownDescription": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "AutomaticFail": { "description": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.", "type": "boolean", "markdownDescription": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AutomaticFailConfiguration": { + "description": "A configuration for automatic fail.", + "$ref": "#/definitions/AutomaticFailConfiguration", + "markdownDescription": "A configuration for automatic fail.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -300,95 +431,121 @@ ], "markdownDescription": "Information about the option range used for scoring in numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "RefId": { - "description": "The identifier to reference the item.", - "type": "string", - "markdownDescription": "The identifier to reference the item.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9._-]{1,40}$ \nUpdate requires: No interruption\n" - }, - "ScoringStrategy": { - "description": "A scoring strategy of the evaluation form.", - "additionalProperties": false, + "NumericQuestionPropertyValueAutomation": { + "description": "Information about the property value used in automation of a numeric questions.", "type": "object", + "additionalProperties": false, "properties": { - "Status": { - "description": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "markdownDescription": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" - }, - "Mode": { - "description": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``", + "Label": { + "description": "The property label of the automation.", "type": "string", "enum": [ - "QUESTION_ONLY", - "SECTION_ONLY" + "OVERALL_CUSTOMER_SENTIMENT_SCORE", + "OVERALL_AGENT_SENTIMENT_SCORE", + "NON_TALK_TIME", + "NON_TALK_TIME_PERCENTAGE", + "NUMBER_OF_INTERRUPTIONS", + "CONTACT_DURATION", + "AGENT_INTERACTION_DURATION", + "CUSTOMER_HOLD_TIME", + "LONGEST_HOLD_DURATION", + "NUMBER_OF_HOLDS", + "AGENT_INTERACTION_AND_HOLD_DURATION", + "CUSTOMER_SENTIMENT_SCORE_WITHOUT_AGENT", + "CUSTOMER_SENTIMENT_SCORE_WITH_AGENT" ], - "markdownDescription": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: QUESTION_ONLY | SECTION_ONLY \nUpdate requires: No interruption\n" + "markdownDescription": "The property label of the automation.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: OVERALL_CUSTOMER_SENTIMENT_SCORE | OVERALL_AGENT_SENTIMENT_SCORE | NON_TALK_TIME | NON_TALK_TIME_PERCENTAGE | NUMBER_OF_INTERRUPTIONS | CONTACT_DURATION | AGENT_INTERACTION_DURATION | CUSTOMER_HOLD_TIME | LONGEST_HOLD_DURATION | NUMBER_OF_HOLDS | AGENT_INTERACTION_AND_HOLD_DURATION | CUSTOMER_SENTIMENT_SCORE_WITHOUT_AGENT | CUSTOMER_SENTIMENT_SCORE_WITH_AGENT \nUpdate requires: No interruption\n" } }, "required": [ - "Mode", - "Status" + "Label" ], - "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the property value used in automation of a numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AutoEvaluationConfiguration": { - "description": "", - "additionalProperties": false, + "EvaluationFormNumericQuestionAutomation": { + "description": "Information about the automation configuration in numeric questions.", "type": "object", + "additionalProperties": false, "properties": { - "Enabled": { - "description": "", - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "PropertyValue": { + "description": "The property value of the automation.", + "$ref": "#/definitions/NumericQuestionPropertyValueAutomation", + "markdownDescription": "The property value of the automation.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AnswerSource": { + "description": "A source of automation answer for numeric question.", + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "A source of automation answer for numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the automation configuration in numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormQuestionTypeProperties": { - "description": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.", - "additionalProperties": false, + "EvaluationFormNumericQuestionProperties": { + "description": "Information about properties for a numeric question in an evaluation form.", "type": "object", + "additionalProperties": false, "properties": { - "Numeric": { - "description": "The properties of the numeric question.", - "$ref": "#/definitions/EvaluationFormNumericQuestionProperties", - "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "MinValue": { + "description": "The minimum answer value.", + "type": "integer", + "markdownDescription": "The minimum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, - "SingleSelect": { - "description": "The properties of the numeric question.", - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionProperties", - "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "MaxValue": { + "description": "The maximum answer value.", + "type": "integer", + "markdownDescription": "The maximum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Options": { + "description": "The scoring options of the numeric question.", + "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/EvaluationFormNumericQuestionOption" + }, + "markdownDescription": "The scoring options of the numeric question.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Automation": { + "description": "The automation properties of the numeric question.", + "$ref": "#/definitions/EvaluationFormNumericQuestionAutomation", + "markdownDescription": "The automation properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "MinValue", + "MaxValue" + ], + "markdownDescription": "Information about properties for a numeric question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormItem": { - "description": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.", - "additionalProperties": false, + "EvaluationFormSingleSelectQuestionAutomationOption": { + "description": "The automation options of the single select question.", "type": "object", + "additionalProperties": false, "properties": { - "Question": { - "description": "The information of the question.", - "$ref": "#/definitions/EvaluationFormQuestion", - "markdownDescription": "The information of the question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Section": { - "description": "The information of the section.", - "$ref": "#/definitions/EvaluationFormSection", - "markdownDescription": "The information of the section.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "RuleCategory": { + "description": "The automation option based on a rule category for the single select question.", + "$ref": "#/definitions/SingleSelectQuestionRuleCategoryAutomation", + "markdownDescription": "The automation option based on a rule category for the single select question.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "RuleCategory" + ], + "markdownDescription": "The automation options of the single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SingleSelectQuestionRuleCategoryAutomation": { "description": "Information about the automation option based on a rule category for a single select question.\n *Length Constraints*: Minimum length of 1. Maximum length of 50.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "Category": { + "description": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50", + "type": "string", + "minLength": 1, + "maxLength": 50, + "markdownDescription": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, "Condition": { "description": "The condition to apply for the automation option. If the condition is PRESENT, then the option is applied when the contact data includes the category. Similarly, if the condition is NOT_PRESENT, then the option is applied when the contact data does not include the category.\n *Allowed values*: ``PRESENT`` | ``NOT_PRESENT``\n *Maximum*: 50", "type": "string", @@ -398,13 +555,6 @@ ], "markdownDescription": "The condition to apply for the automation option. If the condition is PRESENT, then the option is applied when the contact data includes the category. Similarly, if the condition is NOT_PRESENT, then the option is applied when the contact data does not include the category.\n *Allowed values*: ``PRESENT`` | ``NOT_PRESENT``\n *Maximum*: 50\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: PRESENT | NOT_PRESENT \nUpdate requires: No interruption\n" }, - "Category": { - "minLength": 1, - "description": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50", - "type": "string", - "maxLength": 50, - "markdownDescription": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" - }, "OptionRefId": { "description": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", "$ref": "#/definitions/RefId", @@ -418,167 +568,468 @@ ], "markdownDescription": "Information about the automation option based on a rule category for a single select question.\n *Length Constraints*: Minimum length of 1. Maximum length of 50.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Weight": { - "description": "The item weight used for scoring.", - "maximum": 100, - "type": "number", - "minimum": 0, - "markdownDescription": "The item weight used for scoring.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Score": { - "description": "The score of an answer option.", - "maximum": 10, - "type": "integer", - "minimum": 0, - "markdownDescription": "The score of an answer option.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "EvaluationFormNumericQuestionProperties": { - "description": "Information about properties for a numeric question in an evaluation form.", - "additionalProperties": false, + "EvaluationFormSingleSelectQuestionAutomation": { + "description": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.", "type": "object", + "additionalProperties": false, "properties": { "Options": { - "minItems": 1, - "maxItems": 10, - "description": "The scoring options of the numeric question.", - "insertionOrder": true, + "description": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20", "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 20, "items": { - "$ref": "#/definitions/EvaluationFormNumericQuestionOption" + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomationOption" }, - "markdownDescription": "The scoring options of the numeric question.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Automation": { - "description": "The automation properties of the numeric question.", - "$ref": "#/definitions/EvaluationFormNumericQuestionAutomation", - "markdownDescription": "The automation properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "MinValue": { - "description": "The minimum answer value.", - "type": "integer", - "markdownDescription": "The minimum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "DefaultOptionRefId": { + "description": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "MaxValue": { - "description": "The maximum answer value.", - "type": "integer", - "markdownDescription": "The maximum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "AnswerSource": { + "description": "Automation answer source.", + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "Automation answer source.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ - "MinValue", - "MaxValue" + "Options" ], - "markdownDescription": "Information about properties for a numeric question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tag": { - "description": "A key-value pair to associate with a resource.", + "EvaluationFormSingleSelectQuestionOption": { + "description": "Information about the automation configuration in single select questions.", + "type": "object", "additionalProperties": false, + "properties": { + "RefId": { + "description": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Text": { + "description": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Score": { + "description": "The score assigned to the answer option.\n *Minimum*: 0\n *Maximum*: 10", + "$ref": "#/definitions/Score", + "markdownDescription": "The score assigned to the answer option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AutomaticFail": { + "description": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.", + "type": "boolean", + "markdownDescription": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AutomaticFailConfiguration": { + "description": "Whether automatic fail is configured on a single select question.", + "$ref": "#/definitions/AutomaticFailConfiguration", + "markdownDescription": "Whether automatic fail is configured on a single select question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RefId", + "Text" + ], + "markdownDescription": "Information about the automation configuration in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormSingleSelectQuestionProperties": { + "description": "Information about the options in single select questions.", "type": "object", + "additionalProperties": false, "properties": { - "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 -", + "Options": { + "description": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256", + "type": "array", + "insertionOrder": true, + "minItems": 2, + "maxItems": 256, + "items": { + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionOption" + }, + "markdownDescription": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DisplayAs": { + "description": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``", "type": "string", - "maxLength": 256, - "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + "enum": [ + "DROPDOWN", + "RADIO" + ], + "markdownDescription": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``\n\n---\n\nRequired: No \nType: String \nAllowed Values: DROPDOWN | RADIO \nUpdate requires: No interruption\n" }, - "Key": { + "Automation": { + "description": "The display mode of the single select question.", + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomation", + "markdownDescription": "The display mode of the single select question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Options" + ], + "markdownDescription": "Information about the options in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormQuestionAutomationAnswerSource": { + "description": "A question automation answer.", + "type": "object", + "additionalProperties": false, + "properties": { + "SourceType": { + "description": "The automation answer source type.", + "type": "string", + "enum": [ + "CONTACT_LENS_DATA", + "GEN_AI" + ], + "markdownDescription": "The automation answer source type.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CONTACT_LENS_DATA | GEN_AI \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SourceType" + ], + "markdownDescription": "A question automation answer.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormTextQuestionProperties": { + "description": "Information about properties for a text question in an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "Automation": { + "description": "The automation properties of the text question.", + "$ref": "#/definitions/EvaluationFormTextQuestionAutomation", + "markdownDescription": "The automation properties of the text question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about properties for a text question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormTextQuestionAutomation": { + "description": "Information about the automation configuration in text questions.", + "type": "object", + "additionalProperties": false, + "properties": { + "AnswerSource": { + "description": "Automation answer source.", + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "Automation answer source.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about the automation configuration in text questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormMultiSelectQuestionAutomationOption": { + "description": "An automation option for a multi-select question.", + "type": "object", + "additionalProperties": false, + "properties": { + "RuleCategory": { + "description": "Rule category configuration for this automation option.", + "$ref": "#/definitions/MultiSelectQuestionRuleCategoryAutomation", + "markdownDescription": "Rule category configuration for this automation option.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RuleCategory" + ], + "markdownDescription": "An automation option for a multi-select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MultiSelectQuestionRuleCategoryAutomation": { + "description": "Automation rule for multi-select questions based on rule categories.", + "type": "object", + "additionalProperties": false, + "properties": { + "Category": { + "description": "The category name for this automation rule.", + "type": "string", "minLength": 1, - "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": 50, + "markdownDescription": "The category name for this automation rule.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, + "Condition": { + "description": "The condition for this automation rule.", + "type": "string", + "enum": [ + "PRESENT", + "NOT_PRESENT" + ], + "markdownDescription": "The condition for this automation rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: PRESENT | NOT_PRESENT \nUpdate requires: No interruption\n" + }, + "OptionRefIds": { + "description": "Reference IDs of options for this automation rule.", + "$ref": "#/definitions/ReferenceIdList", + "markdownDescription": "Reference IDs of options for this automation rule.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Category", + "Condition", + "OptionRefIds" + ], + "markdownDescription": "Automation rule for multi-select questions based on rule categories.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormMultiSelectQuestionAutomation": { + "description": "Automation configuration for multi-select questions.", + "type": "object", + "additionalProperties": false, + "properties": { + "Options": { + "description": "Automation options for the multi-select question.", + "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 20, + "items": { + "$ref": "#/definitions/EvaluationFormMultiSelectQuestionAutomationOption" + }, + "markdownDescription": "Automation options for the multi-select question.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DefaultOptionRefIds": { + "description": "Reference IDs of default options.", + "$ref": "#/definitions/ReferenceIdList", + "markdownDescription": "Reference IDs of default options.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AnswerSource": { + "description": "", + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Options" + ], + "markdownDescription": "Automation configuration for multi-select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormMultiSelectQuestionOption": { + "description": "An option for a multi-select question in an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "RefId": { + "description": "Reference identifier for this option.", + "$ref": "#/definitions/RefId", + "markdownDescription": "Reference identifier for this option.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Text": { + "description": "Display text for this option.", "type": "string", + "minLength": 1, "maxLength": 128, - "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "Display text for this option.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" } }, "required": [ - "Key", - "Value" + "RefId", + "Text" ], - "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "An option for a multi-select question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormSingleSelectQuestionOption": { - "description": "Information about the automation configuration in single select questions.", + "EvaluationFormMultiSelectQuestionProperties": { + "description": "Properties for a multi-select question in an evaluation form.", + "type": "object", "additionalProperties": false, + "properties": { + "Options": { + "description": "Options available for this multi-select question.", + "type": "array", + "insertionOrder": true, + "minItems": 2, + "maxItems": 256, + "items": { + "$ref": "#/definitions/EvaluationFormMultiSelectQuestionOption" + }, + "markdownDescription": "Options available for this multi-select question.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DisplayAs": { + "description": "Display format for the multi-select question.", + "type": "string", + "enum": [ + "DROPDOWN", + "CHECKBOX" + ], + "markdownDescription": "Display format for the multi-select question.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DROPDOWN | CHECKBOX \nUpdate requires: No interruption\n" + }, + "Automation": { + "description": "Automation configuration for this multi-select question.", + "$ref": "#/definitions/EvaluationFormMultiSelectQuestionAutomation", + "markdownDescription": "Automation configuration for this multi-select question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Options" + ], + "markdownDescription": "Properties for a multi-select question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormQuestionTypeProperties": { + "description": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.", "type": "object", + "additionalProperties": false, "properties": { - "Score": { - "description": "The score assigned to the answer option.\n *Minimum*: 0\n *Maximum*: 10", - "$ref": "#/definitions/Score", - "markdownDescription": "The score assigned to the answer option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "Numeric": { + "description": "The properties of the numeric question.", + "$ref": "#/definitions/EvaluationFormNumericQuestionProperties", + "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "SingleSelect": { + "description": "The properties of the numeric question.", + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionProperties", + "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Text": { + "description": "The properties of the text question.", + "$ref": "#/definitions/EvaluationFormTextQuestionProperties", + "markdownDescription": "The properties of the text question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "MultiSelect": { + "description": "Properties for multi-select question types.", + "$ref": "#/definitions/EvaluationFormMultiSelectQuestionProperties", + "markdownDescription": "Properties for multi-select question types.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormQuestion": { + "description": "Information about a question from an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "Title": { + "description": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.", + "type": "string", "minLength": 1, - "description": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.", + "maxLength": 350, + "markdownDescription": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 350 \nUpdate requires: No interruption\n" + }, + "Instructions": { + "description": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.", "type": "string", - "maxLength": 128, - "markdownDescription": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + "maxLength": 1024, + "markdownDescription": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, "RefId": { - "description": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "description": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, - "AutomaticFail": { - "description": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.", + "NotApplicableEnabled": { + "description": "The flag to enable not applicable answers to the question.", "type": "boolean", - "markdownDescription": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "The flag to enable not applicable answers to the question.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "QuestionType": { + "description": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``", + "type": "string", + "enum": [ + "NUMERIC", + "SINGLESELECT", + "TEXT", + "MULTISELECT", + "DATETIME" + ], + "markdownDescription": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NUMERIC | SINGLESELECT | TEXT | MULTISELECT | DATETIME \nUpdate requires: No interruption\n" + }, + "QuestionTypeProperties": { + "description": "The properties of the type of question. Text questions do not have to define question type properties.", + "$ref": "#/definitions/EvaluationFormQuestionTypeProperties", + "markdownDescription": "The properties of the type of question. Text questions do not have to define question type properties.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Weight": { + "description": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100", + "$ref": "#/definitions/Weight", + "markdownDescription": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Enablement": { + "description": "A question conditional enablement.", + "$ref": "#/definitions/EvaluationFormItemEnablementConfiguration", + "markdownDescription": "A question conditional enablement.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ "RefId", - "Text" + "Title", + "QuestionType" ], - "markdownDescription": "Information about the automation configuration in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about a question from an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "NumericQuestionPropertyValueAutomation": { - "description": "Information about the property value used in automation of a numeric questions.", - "additionalProperties": false, + "ScoringStrategy": { + "description": "A scoring strategy of the evaluation form.", "type": "object", + "additionalProperties": false, "properties": { - "Label": { - "description": "The property label of the automation.", + "Mode": { + "description": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``", "type": "string", "enum": [ - "OVERALL_CUSTOMER_SENTIMENT_SCORE", - "OVERALL_AGENT_SENTIMENT_SCORE", - "NON_TALK_TIME", - "NON_TALK_TIME_PERCENTAGE", - "NUMBER_OF_INTERRUPTIONS", - "CONTACT_DURATION", - "AGENT_INTERACTION_DURATION", - "CUSTOMER_HOLD_TIME", - "LONGEST_HOLD_DURATION", - "NUMBER_OF_HOLDS", - "AGENT_INTERACTION_AND_HOLD_DURATION" + "QUESTION_ONLY", + "SECTION_ONLY" + ], + "markdownDescription": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: QUESTION_ONLY | SECTION_ONLY \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" ], - "markdownDescription": "The property label of the automation.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: OVERALL_CUSTOMER_SENTIMENT_SCORE | OVERALL_AGENT_SENTIMENT_SCORE | NON_TALK_TIME | NON_TALK_TIME_PERCENTAGE | NUMBER_OF_INTERRUPTIONS | CONTACT_DURATION | AGENT_INTERACTION_DURATION | CUSTOMER_HOLD_TIME | LONGEST_HOLD_DURATION | NUMBER_OF_HOLDS | AGENT_INTERACTION_AND_HOLD_DURATION \nUpdate requires: No interruption\n" + "markdownDescription": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" } }, "required": [ - "Label" + "Mode", + "Status" ], - "markdownDescription": "Information about the property value used in automation of a numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AutoEvaluationConfiguration": { + "description": "Configuration information about automated evaluations.", + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "", + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Configuration information about automated evaluations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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, + "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { - "ScoringStrategy": { - "description": "A scoring strategy of the evaluation form.", - "$ref": "#/definitions/ScoringStrategy", - "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Status": { - "default": "DRAFT", - "description": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``", + "Title": { + "description": "A title of the evaluation form.", "type": "string", - "enum": [ - "DRAFT", - "ACTIVE" - ], - "markdownDescription": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DRAFT | ACTIVE \nUpdate requires: No interruption\n" - }, - "AutoEvaluationConfiguration": { - "description": "", - "$ref": "#/definitions/AutoEvaluationConfiguration", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "minLength": 1, + "maxLength": 128, + "markdownDescription": "A title of the evaluation form.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, "Description": { "description": "The description of the evaluation form.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.", @@ -586,52 +1037,135 @@ "maxLength": 1024, "markdownDescription": "The description of the evaluation form.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "EvaluationFormArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/evaluation-form/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, "InstanceArn": { "description": "The identifier of the Amazon Connect instance.", "type": "string", "markdownDescription": "The identifier of the Amazon Connect instance.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" }, - "Title": { - "minLength": 1, - "description": "A title of the evaluation form.", - "type": "string", - "maxLength": 128, - "markdownDescription": "A title of the evaluation form.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, "Items": { - "minItems": 1, - "maxItems": 200, "description": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n *Minimum size*: 1\n *Maximum size*: 100", - "insertionOrder": true, "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 200, "items": { "$ref": "#/definitions/EvaluationFormBaseItem" }, "markdownDescription": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n *Minimum size*: 1\n *Maximum size*: 100\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "EvaluationFormArn": { - "description": "", + "ScoringStrategy": { + "description": "A scoring strategy of the evaluation form.", + "$ref": "#/definitions/ScoringStrategy", + "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AutoEvaluationConfiguration": { + "description": "The automatic evaluation configuration of an evaluation form.", + "$ref": "#/definitions/AutoEvaluationConfiguration", + "markdownDescription": "The automatic evaluation configuration of an evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/evaluation-form/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + "default": "DRAFT", + "enum": [ + "DRAFT", + "ACTIVE" + ], + "markdownDescription": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DRAFT | ACTIVE \nUpdate requires: No interruption\n" + }, + "TargetConfiguration": { + "description": "Configuration that specifies the target for this evaluation form.", + "$ref": "#/definitions/EvaluationFormTargetConfiguration", + "markdownDescription": "Configuration that specifies the target for this evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LanguageConfiguration": { + "description": "Configuration for language settings of this evaluation form.", + "$ref": "#/definitions/EvaluationFormLanguageConfiguration", + "markdownDescription": "Configuration for language settings of this evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ReviewConfiguration": { + "description": "Configuration for evaluation review settings of this evaluation form.", + "$ref": "#/definitions/EvaluationReviewConfiguration", + "markdownDescription": "Configuration for evaluation review settings of this evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Tags": { + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.", + "type": "array", "maxItems": 50, "uniqueItems": true, - "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, "required": [ "Title", "InstanceArn", "Items", "Status" ], + "readOnlyProperties": [ + "/properties/EvaluationFormArn" + ], + "primaryIdentifier": [ + "/properties/EvaluationFormArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": false, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "connect:ListTagsForResource", + "connect:UntagResource", + "connect:TagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateEvaluationForm", + "connect:ActivateEvaluationForm", + "connect:TagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeEvaluationForm", + "connect:ListEvaluationFormVersions" + ] + }, + "list": { + "permissions": [ + "connect:ListEvaluationForms" + ] + }, + "update": { + "permissions": [ + "connect:UpdateEvaluationForm", + "connect:ListEvaluationFormVersions", + "connect:ActivateEvaluationForm", + "connect:DeactivateEvaluationForm", + "connect:TagResource", + "connect:UntagResource" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteEvaluationForm", + "connect:UntagResource" + ] + } + }, "attributes": { "EvaluationFormArn": { "description": "", diff --git a/server/schema/resources/aws-connect-hoursofoperation.json b/server/schema/resources/aws-connect-hoursofoperation.json index c8b6f3d2..c2ae08c8 100644 --- a/server/schema/resources/aws-connect-hoursofoperation.json +++ b/server/schema/resources/aws-connect-hoursofoperation.json @@ -176,6 +176,12 @@ }, "HoursOfOperationOverrideId": { "$ref": "#/definitions/HoursOfOperationOverrideId" + }, + "RecurrenceConfig": { + "$ref": "#/definitions/RecurrenceConfig" + }, + "OverrideType": { + "$ref": "#/definitions/OverrideType" } }, "required": [ @@ -225,6 +231,120 @@ "description": "The Resource Identifier for the hours of operation override.", "type": "string", "markdownDescription": "The Resource Identifier for the hours of operation override.\n\n---\n\nRequired: No \nType: String \nPattern: ^[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" + }, + "OverrideType": { + "description": "The type of hours of operation override.", + "type": "string", + "enum": [ + "STANDARD", + "OPEN", + "CLOSED" + ], + "markdownDescription": "The type of hours of operation override.\n\n---\n\nRequired: No \nType: String \nAllowed Values: STANDARD | OPEN | CLOSED \nUpdate requires: No interruption\n" + }, + "RecurrenceConfig": { + "description": "Configuration for recurring hours of operation overrides.", + "type": "object", + "additionalProperties": false, + "properties": { + "RecurrencePattern": { + "$ref": "#/definitions/RecurrencePattern" + } + }, + "required": [ + "RecurrencePattern" + ], + "markdownDescription": "Configuration for recurring hours of operation overrides.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RecurrencePattern": { + "description": "Pattern for recurring hours of operation overrides.", + "type": "object", + "additionalProperties": false, + "properties": { + "Frequency": { + "$ref": "#/definitions/RecurrenceFrequency" + }, + "Interval": { + "type": "integer", + "minimum": 1, + "maximum": 6, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ByMonth": { + "$ref": "#/definitions/MonthList" + }, + "ByMonthDay": { + "$ref": "#/definitions/MonthDayList" + }, + "ByWeekdayOccurrence": { + "type": "array", + "minItems": 0, + "maxItems": 1, + "items": { + "type": "integer", + "minimum": -1, + "maximum": 4, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Pattern for recurring hours of operation overrides.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RecurrenceFrequency": { + "description": "The frequency of recurrence for hours of operation overrides.", + "type": "string", + "enum": [ + "WEEKLY", + "MONTHLY", + "YEARLY" + ], + "markdownDescription": "The frequency of recurrence for hours of operation overrides.\n\n---\n\nRequired: No \nType: String \nAllowed Values: WEEKLY | MONTHLY | YEARLY \nUpdate requires: No interruption\n" + }, + "MonthList": { + "description": "List of months (1-12) for recurrence pattern.", + "type": "array", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of months (1-12) for recurrence pattern.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MonthDayList": { + "description": "List of month days (-1 to 31) for recurrence pattern.", + "type": "array", + "items": { + "type": "integer", + "minimum": -1, + "maximum": 31, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of month days (-1 to 31) for recurrence pattern.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "HoursOfOperationsIdentifier": { + "description": "Identifier for hours of operation.", + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 127, + "description": "The name of the hours of operation.", + "markdownDescription": "The name of the hours of operation.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "Id": { + "type": "string", + "description": "The identifier for the hours of operation.", + "markdownDescription": "The identifier for the hours of operation.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Id" + ], + "markdownDescription": "Identifier for hours of operation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -288,6 +408,24 @@ "$ref": "#/definitions/HoursOfOperationOverride" }, "markdownDescription": "One or more hours of operation overrides assigned to an hour of operation.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ChildHoursOfOperations": { + "description": "List of child hours of operations.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HoursOfOperationsIdentifier" + }, + "markdownDescription": "List of child hours of operations.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ParentHoursOfOperations": { + "description": "List of parent hours of operations.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HoursOfOperationsIdentifier" + }, + "markdownDescription": "List of parent hours of operations.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ @@ -307,7 +445,8 @@ "read": { "permissions": [ "connect:DescribeHoursOfOperation", - "connect:ListHoursOfOperationOverrides" + "connect:ListHoursOfOperationOverrides", + "connect:ListChildHoursOfOperations" ] }, "delete": { @@ -324,7 +463,9 @@ "connect:DeleteHoursOfOperationOverride", "connect:ListHoursOfOperationOverrides", "connect:TagResource", - "connect:UntagResource" + "connect:UntagResource", + "connect:AssociateHoursOfOperations", + "connect:DisassociateHoursOfOperations" ] }, "list": { diff --git a/server/schema/resources/aws-connect-instance.json b/server/schema/resources/aws-connect-instance.json index b3309e3c..889c587f 100644 --- a/server/schema/resources/aws-connect-instance.json +++ b/server/schema/resources/aws-connect-instance.json @@ -63,6 +63,11 @@ "type": "boolean", "markdownDescription": "Boolean flag which enables MULTI_PARTY_CHAT_CONFERENCE on an instance.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "MessageStreaming": { + "description": "Boolean flag which enables MESSAGE_STREAMING on an instance.", + "type": "boolean", + "markdownDescription": "Boolean flag which enables MESSAGE_STREAMING on an instance.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "Attributes": { "type": "object", "additionalProperties": false, @@ -102,6 +107,9 @@ }, "MultiPartyChatConference": { "$ref": "#/definitions/MultiPartyChatConference" + }, + "MessageStreaming": { + "$ref": "#/definitions/MessageStreaming" } }, "required": [ diff --git a/server/schema/resources/aws-connect-integrationassociation.json b/server/schema/resources/aws-connect-integrationassociation.json index ae654a12..00be95f6 100644 --- a/server/schema/resources/aws-connect-integrationassociation.json +++ b/server/schema/resources/aws-connect-integrationassociation.json @@ -16,9 +16,10 @@ "enum": [ "LEX_BOT", "LAMBDA_FUNCTION", - "APPLICATION" + "APPLICATION", + "CASES_DOMAIN" ], - "markdownDescription": "Specifies the integration type to be associated with the instance\n\n---\n\nRequired: No \nType: String \nAllowed Values: LEX_BOT | LAMBDA_FUNCTION | APPLICATION \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the integration type to be associated with the instance\n\n---\n\nRequired: No \nType: String \nAllowed Values: LEX_BOT | LAMBDA_FUNCTION | APPLICATION | CASES_DOMAIN \nUpdate requires: No interruption\n" }, "InstanceId": { "description": "Amazon Connect instance identifier", @@ -30,7 +31,7 @@ "IntegrationAssociationId": { "description": "Identifier of the association with Connect Instance", "type": "string", - "markdownDescription": "Identifier of the association with Connect Instance\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$ \nUpdate requires: No interruption\n" + "markdownDescription": "Identifier of the association with Connect Instance\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "properties": { diff --git a/server/schema/resources/aws-connect-notification.json b/server/schema/resources/aws-connect-notification.json new file mode 100644 index 00000000..9485b7b0 --- /dev/null +++ b/server/schema/resources/aws-connect-notification.json @@ -0,0 +1,255 @@ +{ + "typeName": "AWS::Connect::Notification", + "description": "Resource Type definition for AWS::Connect::Notification", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "LocalizedString": { + "description": "Localized notification content", + "type": "string", + "markdownDescription": "Localized notification content\n\n---\n\nRequired: No \nType: String \nPattern: ^.{0,500}$ \nUpdate requires: No interruption\n" + }, + "UserArn": { + "description": "The identifier of the user.", + "type": "string", + "markdownDescription": "The identifier of the user.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" + }, + "InstanceArn": { + "description": "The identifier of the instance.", + "type": "string", + "markdownDescription": "The identifier of the instance.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "The identifier of the instance.", + "type": "string", + "markdownDescription": "The identifier of the instance.\n\n---\n\nRequired: No \nType: String \nPattern: ^.{0,2048}$ \nUpdate requires: No interruption\n" + }, + "NotificationContent": { + "description": "The content of a notification", + "type": "object", + "additionalProperties": false, + "properties": { + "EnUS": { + "$ref": "#/definitions/LocalizedString" + }, + "DeDE": { + "$ref": "#/definitions/LocalizedString" + }, + "EsES": { + "$ref": "#/definitions/LocalizedString" + }, + "FrFR": { + "$ref": "#/definitions/LocalizedString" + }, + "IdID": { + "$ref": "#/definitions/LocalizedString" + }, + "ItIT": { + "$ref": "#/definitions/LocalizedString" + }, + "JaJP": { + "$ref": "#/definitions/LocalizedString" + }, + "KoKR": { + "$ref": "#/definitions/LocalizedString" + }, + "PtBR": { + "$ref": "#/definitions/LocalizedString" + }, + "ZhCN": { + "$ref": "#/definitions/LocalizedString" + }, + "ZhTW": { + "$ref": "#/definitions/LocalizedString" + } + }, + "markdownDescription": "The content of a notification\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RecipientList": { + "description": "The recipients of the notification.", + "type": "array", + "maxItems": 200, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Arn" + }, + "markdownDescription": "The recipients of the notification.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Priority": { + "description": "The priority of notification. In the Amazon Connect console, when you create a notification, you are prompted to assign one of the following priorities: High (HIGH) or LOW (LOW)", + "type": "string", + "enum": [ + "HIGH", + "LOW" + ], + "markdownDescription": "The priority of notification. In the Amazon Connect console, when you create a notification, you are prompted to assign one of the following priorities: High (HIGH) or LOW (LOW)\n\n---\n\nRequired: No \nType: String \nAllowed Values: HIGH | LOW \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "type": "string", + "markdownDescription": "The identifier of the Amazon Connect instance.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: Replacement\n" + }, + "Content": { + "description": "The content of the notification.", + "$ref": "#/definitions/NotificationContent", + "markdownDescription": "The content of the notification.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Recipients": { + "description": "The recipients of the notification.", + "$ref": "#/definitions/RecipientList", + "markdownDescription": "The recipients of the notification.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "Priority": { + "description": "The priority of the notification.", + "$ref": "#/definitions/Priority", + "markdownDescription": "The priority of the notification.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) for the notification.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) for the notification.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/notification/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The identifier of the notification.", + "type": "string", + "markdownDescription": "The identifier of the notification.\n\n---\n\nRequired: No \nType: String \nPattern: ^.{0,256}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The time a notification was created", + "type": "string", + "markdownDescription": "The time a notification was created\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ExpiresAt": { + "description": "The time a notification will expire", + "type": "string", + "markdownDescription": "The time a notification will expire\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "maxItems": 200, + "uniqueItems": true, + "insertionOrder": false, + "description": "One or more tags.", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "InstanceArn", + "Content" + ], + "handlers": { + "create": { + "permissions": [ + "connect:CreateNotification", + "connect:TagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeNotification" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteNotification", + "connect:UntagResource" + ] + }, + "update": { + "permissions": [ + "connect:UpdateNotificationContent", + "connect:TagResource", + "connect:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListNotifications" + ] + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/CreatedAt" + ], + "createOnlyProperties": [ + "/properties/Recipients", + "/properties/InstanceArn", + "/properties/ExpiresAt", + "/properties/Priority" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "connect:TagResource", + "connect:UntagResource" + ] + }, + "attributes": { + "Arn": { + "description": "The Amazon Resource Name (ARN) for the notification.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) for the notification.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/notification/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The identifier of the notification.", + "type": "string", + "markdownDescription": "The identifier of the notification.\n\n---\n\nRequired: No \nType: String \nPattern: ^.{0,256}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The time a notification was created", + "type": "string", + "markdownDescription": "The time a notification was created\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connect-phonenumber.json b/server/schema/resources/aws-connect-phonenumber.json index ca346d7a..ec56bb2b 100644 --- a/server/schema/resources/aws-connect-phonenumber.json +++ b/server/schema/resources/aws-connect-phonenumber.json @@ -88,7 +88,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "connect:UntagResource", diff --git a/server/schema/resources/aws-connect-prompt.json b/server/schema/resources/aws-connect-prompt.json index 466c4015..488bb944 100644 --- a/server/schema/resources/aws-connect-prompt.json +++ b/server/schema/resources/aws-connect-prompt.json @@ -117,7 +117,10 @@ "permissions": [ "connect:UpdatePrompt", "connect:TagResource", - "connect:UntagResource" + "connect:UntagResource", + "s3:GetObject", + "s3:GetObjectAcl", + "kms:Decrypt" ] }, "delete": { diff --git a/server/schema/resources/aws-connect-queue.json b/server/schema/resources/aws-connect-queue.json index 65a5cf92..d115b2c1 100644 --- a/server/schema/resources/aws-connect-queue.json +++ b/server/schema/resources/aws-connect-queue.json @@ -91,6 +91,22 @@ "description": "The Amazon Resource Name (ARN) for the quick connect.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) for the quick connect.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/transfer-destination/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" + }, + "EmailAddress": { + "description": "An email address configuration for the queue", + "type": "object", + "properties": { + "EmailAddressArn": { + "description": "The Amazon Resource Name (ARN) of the email address", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the email address\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-f0-9]{8}-[-a-f0-9]{4}-[-a-f0-9]{4}-[-a-f0-9]{4}-[-a-f0-9]{12}/email-address/[-a-f0-9]{8}-[-a-f0-9]{4}-[-a-f0-9]{4}-[-a-f0-9]{4}-[-a-f0-9]{12}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EmailAddressArn" + ], + "additionalProperties": false, + "markdownDescription": "An email address configuration for the queue\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -177,25 +193,40 @@ "AGENT" ], "markdownDescription": "The type of queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: STANDARD | AGENT \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AdditionalEmailAddresses": { + "description": "The email addresses that agents can use when replying to or initiating email contacts", + "type": "array", + "items": { + "$ref": "#/definitions/EmailAddress" + }, + "minItems": 0, + "maxItems": 50, + "insertionOrder": false, + "markdownDescription": "The email addresses that agents can use when replying to or initiating email contacts\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "handlers": { "create": { "permissions": [ "connect:CreateQueue", - "connect:TagResource" + "connect:TagResource", + "connect:AssociateQueueEmailAddresses" ] }, "read": { "permissions": [ "connect:DescribeQueue", - "connect:ListQueueQuickConnects" + "connect:ListQueueQuickConnects", + "connect:ListQueueEmailAddresses" ] }, "delete": { "permissions": [ "connect:DeleteQueue", - "connect:UntagResource" + "connect:UntagResource", + "connect:ListQueueEmailAddresses", + "connect:DisassociateQueueEmailAddresses" ] }, "update": { @@ -208,6 +239,8 @@ "connect:UpdateQueueStatus", "connect:AssociateQueueQuickConnects", "connect:DisassociateQueueQuickConnects", + "connect:AssociateQueueEmailAddresses", + "connect:DisassociateQueueEmailAddresses", "connect:TagResource", "connect:UntagResource" ] diff --git a/server/schema/resources/aws-connect-securityprofile.json b/server/schema/resources/aws-connect-securityprofile.json index 1b7b6d7f..4033d5ce 100644 --- a/server/schema/resources/aws-connect-securityprofile.json +++ b/server/schema/resources/aws-connect-securityprofile.json @@ -45,6 +45,15 @@ "minLength": 1, "maxLength": 128, "markdownDescription": "Namespace of the application that you want to give access to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "description": "The type of the application.", + "enum": [ + "MCP", + "THIRD_PARTY_APPLICATION" + ], + "markdownDescription": "The type of the application.\n\n---\n\nRequired: No \nType: String \nAllowed Values: MCP | THIRD_PARTY_APPLICATION \nUpdate requires: No interruption\n" } }, "required": [ @@ -54,6 +63,32 @@ "additionalProperties": false, "markdownDescription": "A third-party application's metadata.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "FlowModule": { + "description": "A first-party application's metadata.", + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "The type of the first-party application", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The type of the first-party application\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "FlowModuleId": { + "type": "string", + "description": "The identifier of the application that you want to give access to.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The identifier of the application that you want to give access to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type", + "FlowModuleId" + ], + "additionalProperties": false, + "markdownDescription": "A first-party application's metadata.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", @@ -79,6 +114,81 @@ ], "additionalProperties": false, "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataTableAccessControlConfiguration": { + "description": "Defines the access control configuration for data tables.", + "type": "object", + "properties": { + "PrimaryAttributeAccessControlConfiguration": { + "$ref": "#/definitions/PrimaryAttributeAccessControlConfigurationItem" + } + }, + "additionalProperties": false, + "markdownDescription": "Defines the access control configuration for data tables.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PrimaryAttributeAccessControlConfigurationItem": { + "description": "Contains the configuration for record-based access control.", + "type": "object", + "properties": { + "PrimaryAttributeValues": { + "description": "An array of PrimaryAttributeValue objects.", + "type": "array", + "items": { + "$ref": "#/definitions/PrimaryAttributeValue" + }, + "minItems": 1, + "maxItems": 5, + "uniqueItems": true, + "markdownDescription": "An array of PrimaryAttributeValue objects.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PrimaryAttributeValues" + ], + "additionalProperties": false, + "markdownDescription": "Contains the configuration for record-based access control.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PrimaryAttributeValue": { + "description": "An object defining the access control for a specific attribute and its values.", + "type": "object", + "properties": { + "AccessType": { + "description": "Specifies the type of access granted. Currently, only \"ALLOW\" is supported", + "type": "string", + "enum": [ + "ALLOW" + ], + "markdownDescription": "Specifies the type of access granted. Currently, only \"ALLOW\" is supported\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ALLOW \nUpdate requires: No interruption\n" + }, + "AttributeName": { + "description": "The name of the primary attribute.", + "type": "string", + "minLength": 1, + "maxLength": 127, + "markdownDescription": "The name of the primary attribute.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nPattern: ^(?!aws:|connect:)[\\p{L}\\p{Z}\\p{N}\\-_.:=@'|]+$ \nUpdate requires: No interruption\n" + }, + "Values": { + "description": "An array of allowed primary values for the specified primary attribute.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nPattern: ^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]+$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 2, + "uniqueItems": true, + "markdownDescription": "An array of allowed primary values for the specified primary attribute.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AccessType", + "AttributeName", + "Values" + ], + "additionalProperties": false, + "markdownDescription": "An object defining the access control for a specific attribute and its values.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -168,6 +278,17 @@ }, "markdownDescription": "A list of third-party applications that the security profile will give access to.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "AllowedFlowModules": { + "type": "array", + "maxItems": 10, + "uniqueItems": true, + "insertionOrder": false, + "description": "The list of flow-module resources to be linked to a security profile in Amazon Connect.", + "items": { + "$ref": "#/definitions/FlowModule" + }, + "markdownDescription": "The list of flow-module resources to be linked to a security profile in Amazon Connect.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Tags": { "type": "array", "maxItems": 50, @@ -188,6 +309,16 @@ "type": "number", "description": "The timestamp when this resource was last modified.", "markdownDescription": "The timestamp when this resource was last modified.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GranularAccessControlConfiguration": { + "type": "object", + "properties": { + "DataTableAccessControlConfiguration": { + "$ref": "#/definitions/DataTableAccessControlConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -229,6 +360,7 @@ "permissions": [ "connect:DescribeSecurityProfile", "connect:ListSecurityProfileApplications", + "connect:ListSecurityProfileFlowModules", "connect:ListSecurityProfilePermissions" ] }, diff --git a/server/schema/resources/aws-connect-user.json b/server/schema/resources/aws-connect-user.json index 3e88b2de..711469ac 100644 --- a/server/schema/resources/aws-connect-user.json +++ b/server/schema/resources/aws-connect-user.json @@ -63,6 +63,16 @@ "type": "boolean", "markdownDescription": "The Persistent Connection setting.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "VoiceEnhancementMode": { + "description": "The Voice Enhancement Mode setting.", + "type": "string", + "enum": [ + "NONE", + "VOICE_ISOLATION", + "NOISE_SUPPRESSION" + ], + "markdownDescription": "The Voice Enhancement Mode setting.\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | VOICE_ISOLATION | NOISE_SUPPRESSION \nUpdate requires: No interruption\n" + }, "UserIdentityInfo": { "description": "Contains information about the identity of a user.", "type": "object", @@ -107,9 +117,6 @@ "$ref": "#/definitions/PersistentConnection" } }, - "required": [ - "PhoneType" - ], "markdownDescription": "Contains information about the phone configuration settings for a user.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { @@ -179,6 +186,132 @@ "minimum": 1.0, "maximum": 5.0, "markdownDescription": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "AutoAcceptConfig": { + "description": "Auto-accept configuration per channel.", + "type": "object", + "additionalProperties": false, + "properties": { + "Channel": { + "$ref": "#/definitions/Channel" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "AgentFirstCallbackAutoAccept": { + "$ref": "#/definitions/AgentFirstCallbackAutoAccept" + } + }, + "required": [ + "Channel", + "AutoAccept" + ], + "markdownDescription": "Auto-accept configuration per channel.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Channel": { + "description": "The channels that agents can handle in the Contact Control Panel (CCP).", + "type": "string", + "enum": [ + "VOICE", + "CHAT", + "TASK", + "EMAIL" + ], + "markdownDescription": "The channels that agents can handle in the Contact Control Panel (CCP).\n\n---\n\nRequired: No \nType: String \nAllowed Values: VOICE | CHAT | TASK | EMAIL \nUpdate requires: No interruption\n" + }, + "AgentFirstCallbackAutoAccept": { + "description": "The agent first callback auto accept setting.", + "type": "boolean", + "markdownDescription": "The agent first callback auto accept setting.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AfterContactWorkConfigPerChannel": { + "description": "After Contact Work configuration per channel.", + "type": "object", + "additionalProperties": false, + "properties": { + "Channel": { + "$ref": "#/definitions/Channel" + }, + "AfterContactWorkConfig": { + "$ref": "#/definitions/AfterContactWorkConfig" + }, + "AgentFirstCallbackAfterContactWorkConfig": { + "$ref": "#/definitions/AfterContactWorkConfig" + } + }, + "required": [ + "Channel", + "AfterContactWorkConfig" + ], + "markdownDescription": "After Contact Work configuration per channel.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AfterContactWorkConfig": { + "description": "After Contact Work configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + } + }, + "markdownDescription": "After Contact Work configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PhoneNumberConfig": { + "description": "Phone Number configuration per channel.", + "type": "object", + "additionalProperties": false, + "properties": { + "Channel": { + "$ref": "#/definitions/Channel" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + }, + "PhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + } + }, + "required": [ + "Channel", + "PhoneType" + ], + "markdownDescription": "Phone Number configuration per channel.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PersistentConnectionConfig": { + "description": "Persistent Connection configuration per channel.", + "type": "object", + "additionalProperties": false, + "properties": { + "Channel": { + "$ref": "#/definitions/Channel" + }, + "PersistentConnection": { + "$ref": "#/definitions/PersistentConnection" + } + }, + "required": [ + "Channel", + "PersistentConnection" + ], + "markdownDescription": "Persistent Connection configuration per channel.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VoiceEnhancementConfig": { + "description": "Voice Enhancement configuration per channel.", + "type": "object", + "additionalProperties": false, + "properties": { + "Channel": { + "$ref": "#/definitions/Channel" + }, + "VoiceEnhancementMode": { + "$ref": "#/definitions/VoiceEnhancementMode" + } + }, + "required": [ + "Channel", + "VoiceEnhancementMode" + ], + "markdownDescription": "Voice Enhancement configuration per channel.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -222,7 +355,7 @@ "PhoneConfig": { "description": "The phone settings for the user.", "$ref": "#/definitions/UserPhoneConfig", - "markdownDescription": "The phone settings for the user.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The phone settings for the user.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "SecurityProfileArns": { "type": "array", @@ -260,11 +393,55 @@ "$ref": "#/definitions/UserProficiency" }, "markdownDescription": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AutoAcceptConfigs": { + "description": "Auto-accept configurations of a user.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AutoAcceptConfig" + }, + "markdownDescription": "Auto-accept configurations of a user.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AfterContactWorkConfigs": { + "description": "After Contact Work configurations of a user.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AfterContactWorkConfigPerChannel" + }, + "markdownDescription": "After Contact Work configurations of a user.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PhoneNumberConfigs": { + "description": "Phone Number configurations of a user.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PhoneNumberConfig" + }, + "markdownDescription": "Phone Number configurations of a user.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PersistentConnectionConfigs": { + "description": "Persistent Connection configurations of a user.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PersistentConnectionConfig" + }, + "markdownDescription": "Persistent Connection configurations of a user.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VoiceEnhancementConfigs": { + "description": "Voice Enhancement configurations of a user.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VoiceEnhancementConfig" + }, + "markdownDescription": "Voice Enhancement configurations of a user.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ "InstanceArn", - "PhoneConfig", "RoutingProfileArn", "SecurityProfileArns", "Username" @@ -300,7 +477,8 @@ "connect:UntagResource", "connect:AssociateUserProficiencies", "connect:DisassociateUserProficiencies", - "connect:UpdateUserProficiencies" + "connect:UpdateUserProficiencies", + "connect:UpdateUserConfig" ] }, "list": { diff --git a/server/schema/resources/aws-connect-workspace.json b/server/schema/resources/aws-connect-workspace.json new file mode 100644 index 00000000..2a1f91b2 --- /dev/null +++ b/server/schema/resources/aws-connect-workspace.json @@ -0,0 +1,460 @@ +{ + "typeName": "AWS::Connect::Workspace", + "description": "Resource Type definition for AWS::Connect::Workspace", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Visibility": { + "description": "The visibility of the Connect workspace", + "type": "string", + "enum": [ + "ALL", + "ASSIGNED", + "NONE" + ], + "markdownDescription": "The visibility of the Connect workspace\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALL | ASSIGNED | NONE \nUpdate requires: No interruption\n" + }, + "WorkspaceFontFamily": { + "type": "string", + "enum": [ + "ARIAL", + "COURIER_NEW", + "GEORGIA", + "TIMES_NEW_ROMAN", + "TREBUCHET", + "VERDANA" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ARIAL | COURIER_NEW | GEORGIA | TIMES_NEW_ROMAN | TREBUCHET | VERDANA \nUpdate requires: No interruption\n" + }, + "ThemeString": { + "type": "string", + "minLength": 1, + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nPattern: .*\\S.* \nUpdate requires: No interruption\n" + }, + "ThemeImageLink": { + "type": "string", + "minLength": 1, + "maxLength": 254, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 254 \nPattern: .*\\S.* \nUpdate requires: No interruption\n" + }, + "PaletteHeader": { + "type": "object", + "properties": { + "Background": { + "$ref": "#/definitions/ThemeString" + }, + "Text": { + "$ref": "#/definitions/ThemeString" + }, + "TextHover": { + "$ref": "#/definitions/ThemeString" + }, + "InvertActionsColors": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PaletteNavigation": { + "type": "object", + "properties": { + "Background": { + "$ref": "#/definitions/ThemeString" + }, + "TextBackgroundHover": { + "$ref": "#/definitions/ThemeString" + }, + "TextBackgroundActive": { + "$ref": "#/definitions/ThemeString" + }, + "Text": { + "$ref": "#/definitions/ThemeString" + }, + "TextHover": { + "$ref": "#/definitions/ThemeString" + }, + "TextActive": { + "$ref": "#/definitions/ThemeString" + }, + "InvertActionsColors": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PaletteCanvas": { + "type": "object", + "properties": { + "ContainerBackground": { + "$ref": "#/definitions/ThemeString" + }, + "PageBackground": { + "$ref": "#/definitions/ThemeString" + }, + "ActiveBackground": { + "$ref": "#/definitions/ThemeString" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PalettePrimary": { + "type": "object", + "properties": { + "Default": { + "$ref": "#/definitions/ThemeString" + }, + "Active": { + "$ref": "#/definitions/ThemeString" + }, + "ContrastText": { + "$ref": "#/definitions/ThemeString" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkspaceThemePalette": { + "type": "object", + "properties": { + "Header": { + "$ref": "#/definitions/PaletteHeader" + }, + "Navigation": { + "$ref": "#/definitions/PaletteNavigation" + }, + "Canvas": { + "$ref": "#/definitions/PaletteCanvas" + }, + "Primary": { + "$ref": "#/definitions/PalettePrimary" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FontFamily": { + "type": "object", + "properties": { + "Default": { + "$ref": "#/definitions/WorkspaceFontFamily" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkspaceThemeTypography": { + "type": "object", + "properties": { + "FontFamily": { + "$ref": "#/definitions/FontFamily" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkspaceThemeConfig": { + "type": "object", + "properties": { + "Palette": { + "$ref": "#/definitions/WorkspaceThemePalette" + }, + "Typography": { + "$ref": "#/definitions/WorkspaceThemeTypography" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkspaceTheme": { + "type": "object", + "description": "The theme configuration for the Connect workspace", + "properties": { + "Light": { + "$ref": "#/definitions/WorkspaceThemeConfig" + }, + "Dark": { + "$ref": "#/definitions/WorkspaceThemeConfig" + } + }, + "additionalProperties": false, + "markdownDescription": "The theme configuration for the Connect workspace\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MediaType": { + "description": "The type of media", + "type": "string", + "enum": [ + "IMAGE_LOGO_LIGHT_FAVICON", + "IMAGE_LOGO_DARK_FAVICON", + "IMAGE_LOGO_LIGHT_HORIZONTAL", + "IMAGE_LOGO_DARK_HORIZONTAL" + ], + "markdownDescription": "The type of media\n\n---\n\nRequired: No \nType: String \nAllowed Values: IMAGE_LOGO_LIGHT_FAVICON | IMAGE_LOGO_DARK_FAVICON | IMAGE_LOGO_LIGHT_HORIZONTAL | IMAGE_LOGO_DARK_HORIZONTAL \nUpdate requires: No interruption\n" + }, + "MediaItem": { + "type": "object", + "properties": { + "Type": { + "$ref": "#/definitions/MediaType" + }, + "Source": { + "type": "string", + "minLength": 1, + "maxLength": 533333, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 533333 \nPattern: .*\\S.* \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkspacePage": { + "type": "object", + "properties": { + "ResourceArn": { + "description": "The Amazon Resource Name (ARN) of the resource associated with the page.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "The Amazon Resource Name (ARN) of the resource associated with the page.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "Page": { + "description": "The page identifier.", + "type": "string", + "minLength": 1, + "maxLength": 25, + "markdownDescription": "The page identifier.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 25 \nPattern: ^(?!\\.$)(?!\\.\\.$)[\\p{L}\\p{Z}\\p{N}\\-_.:=@'|]+$ \nUpdate requires: No interruption\n" + }, + "Slug": { + "description": "The slug for the page.", + "type": "string", + "minLength": 0, + "maxLength": 63, + "markdownDescription": "The slug for the page.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 63 \nPattern: ^$|^[\\p{L}\\p{Z}\\p{N}\\-_.:=@'|]{3,}$ \nUpdate requires: No interruption\n" + }, + "InputData": { + "description": "The input data for the page.", + "type": "string", + "minLength": 0, + "maxLength": 4096, + "markdownDescription": "The input data for the page.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 4096 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ResourceArn", + "Page" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) for the workspace.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) for the workspace.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/workspace/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the workspace.", + "type": "string", + "minLength": 1, + "maxLength": 127, + "markdownDescription": "The name of the workspace.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nPattern: .*\\S.* \nUpdate requires: No interruption\n" + }, + "Id": { + "description": "The identifier of the workspace.", + "type": "string", + "markdownDescription": "The identifier of the workspace.\n\n---\n\nRequired: No \nType: String \nPattern: ^.{0,256}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "type": "string", + "markdownDescription": "The identifier of the Amazon Connect instance.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: Replacement\n" + }, + "Visibility": { + "description": "The visibility of the workspace. Will always be set to ASSIGNED oninitial creation.", + "$ref": "#/definitions/Visibility", + "markdownDescription": "The visibility of the workspace. Will always be set to ASSIGNED oninitial creation.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the workspace", + "type": "string", + "minLength": 0, + "maxLength": 500, + "markdownDescription": "The description of the workspace\n\n---\n\nRequired: No \nType: String \nMaximum Length: 500 \nPattern: ^[\\P{C}\r\n\t]*$ \nUpdate requires: No interruption\n" + }, + "Title": { + "description": "The title of the workspace", + "type": "string", + "minLength": 0, + "maxLength": 127, + "markdownDescription": "The title of the workspace\n\n---\n\nRequired: No \nType: String \nMaximum Length: 127 \nPattern: ^[\\P{C}]*$ \nUpdate requires: No interruption\n" + }, + "Theme": { + "description": "The theme configuration for the workspace", + "$ref": "#/definitions/WorkspaceTheme", + "markdownDescription": "The theme configuration for the workspace\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Media": { + "description": "The media items for the workspace", + "type": "array", + "maxItems": 4, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/MediaItem" + }, + "markdownDescription": "The media items for the workspace\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Pages": { + "description": "The pages associated with the workspace", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/WorkspacePage" + }, + "markdownDescription": "The pages associated with the workspace\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Associations": { + "description": "The resource ARNs associated with the workspace", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The resource ARNs associated with the workspace\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "InstanceArn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "writeOnlyProperties": [ + "/properties/Media/*/Source" + ], + "createOnlyProperties": [ + "/properties/InstanceArn" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "connect:TagResource", + "connect:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateWorkspace", + "connect:UpdateWorkspaceVisibility", + "connect:ImportWorkspaceMedia", + "connect:CreateWorkspacePage", + "connect:AssociateWorkspace", + "connect:TagResource", + "connect:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeWorkspace", + "connect:ListTagsForResource", + "connect:ListWorkspaceMedia", + "connect:ListWorkspacePages", + "connect:SearchWorkspaceAssociations" + ] + }, + "update": { + "permissions": [ + "connect:UpdateWorkspaceTheme", + "connect:UpdateWorkspaceVisibility", + "connect:UpdateWorkspaceMetadata", + "connect:ImportWorkspaceMedia", + "connect:DeleteWorkspaceMedia", + "connect:CreateWorkspacePage", + "connect:UpdateWorkspacePage", + "connect:DeleteWorkspacePage", + "connect:AssociateWorkspace", + "connect:DisassociateWorkspace", + "connect:TagResource", + "connect:UntagResource" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteWorkspace" + ] + }, + "list": { + "permissions": [ + "connect:ListWorkspaces" + ] + } + }, + "attributes": { + "Arn": { + "description": "The Amazon Resource Name (ARN) for the workspace.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) for the workspace.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/workspace/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The identifier of the workspace.", + "type": "string", + "markdownDescription": "The identifier of the workspace.\n\n---\n\nRequired: No \nType: String \nPattern: ^.{0,256}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-connectcampaignsv2-campaign.json b/server/schema/resources/aws-connectcampaignsv2-campaign.json index f9f1bf19..793997dc 100644 --- a/server/schema/resources/aws-connectcampaignsv2-campaign.json +++ b/server/schema/resources/aws-connectcampaignsv2-campaign.json @@ -10,6 +10,15 @@ "description": "Campaign name", "markdownDescription": "Campaign name\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" }, + "CampaignType": { + "type": "string", + "enum": [ + "MANAGED", + "JOURNEY" + ], + "description": "Campaign type", + "markdownDescription": "Campaign type\n\n---\n\nRequired: No \nType: String \nAllowed Values: MANAGED | JOURNEY \nUpdate requires: No interruption\n" + }, "InstanceId": { "type": "string", "maxLength": 256, @@ -24,6 +33,20 @@ "description": "Allocates outbound capacity for the specific channel of this campaign between multiple active campaigns", "markdownDescription": "Allocates outbound capacity for the specific channel of this campaign between multiple active campaigns\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, + "TimeoutDuration": { + "type": "integer", + "maximum": 300, + "minimum": 10, + "description": "Timeout duration for a preview contact in seconds", + "markdownDescription": "Timeout duration for a preview contact in seconds\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "RingTimeout": { + "type": "integer", + "maximum": 60, + "minimum": 15, + "description": "Maximum ring time for outbound calls in seconds", + "markdownDescription": "Maximum ring time for outbound calls in seconds\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "QueueId": { "type": "string", "maxLength": 500, @@ -112,6 +135,33 @@ ], "markdownDescription": "Day of week\n\n---\n\nRequired: No \nType: String \nAllowed Values: MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY \nUpdate requires: No interruption\n" }, + "AgentAction": { + "type": "string", + "description": "Actions that can performed on a contact by an agent", + "enum": [ + "DISCARD" + ], + "markdownDescription": "Actions that can performed on a contact by an agent\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISCARD \nUpdate requires: No interruption\n" + }, + "AgentActions": { + "type": "array", + "insertionOrder": false, + "description": "Actions that can be performed by agent during preview phase", + "items": { + "$ref": "#/definitions/AgentAction" + }, + "markdownDescription": "Actions that can be performed by agent during preview phase\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TimeoutConfig": { + "type": "object", + "description": "Timeout Config for preview contacts", + "properties": { + "DurationInSeconds": { + "$ref": "#/definitions/TimeoutDuration" + } + }, + "markdownDescription": "Timeout Config for preview contacts\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "PredictiveConfig": { "type": "object", "description": "Predictive config", @@ -147,6 +197,27 @@ "additionalProperties": false, "markdownDescription": "Agentless config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "PreviewConfig": { + "type": "object", + "description": "Preview config", + "properties": { + "BandwidthAllocation": { + "$ref": "#/definitions/BandwidthAllocation" + }, + "TimeoutConfig": { + "$ref": "#/definitions/TimeoutConfig" + }, + "AgentActions": { + "$ref": "#/definitions/AgentActions" + } + }, + "required": [ + "BandwidthAllocation", + "TimeoutConfig" + ], + "additionalProperties": false, + "markdownDescription": "Preview config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TelephonyOutboundMode": { "type": "object", "description": "Telephony Outbound Mode", @@ -159,6 +230,9 @@ }, "AgentlessConfig": { "$ref": "#/definitions/AgentlessConfig" + }, + "PreviewConfig": { + "$ref": "#/definitions/PreviewConfig" } }, "oneOf": [ @@ -176,6 +250,11 @@ "required": [ "AgentlessConfig" ] + }, + { + "required": [ + "PreviewConfig" + ] } ], "additionalProperties": false, @@ -214,6 +293,9 @@ }, "AnswerMachineDetectionConfig": { "$ref": "#/definitions/AnswerMachineDetectionConfig" + }, + "RingTimeout": { + "$ref": "#/definitions/RingTimeout" } }, "required": [ @@ -309,7 +391,7 @@ }, "EmailOutboundConfig": { "type": "object", - "description": "Default SMS outbound config", + "description": "Default Email outbound config", "properties": { "ConnectSourceEmailAddress": { "$ref": "#/definitions/EmailAddress" @@ -326,7 +408,7 @@ "WisdomTemplateArn" ], "additionalProperties": false, - "markdownDescription": "Default SMS outbound config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Default Email outbound config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EmailChannelSubtypeConfig": { "type": "object", @@ -349,6 +431,56 @@ "additionalProperties": false, "markdownDescription": "Email Channel Subtype config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "WhatsAppOutboundMode": { + "type": "object", + "description": "WhatsApp Outbound Mode", + "properties": { + "AgentlessConfig": { + "$ref": "#/definitions/AgentlessConfig" + } + }, + "additionalProperties": false, + "markdownDescription": "WhatsApp Outbound Mode\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WhatsAppOutboundConfig": { + "type": "object", + "description": "Default WhatsApp outbound config", + "properties": { + "ConnectSourcePhoneNumberArn": { + "$ref": "#/definitions/Arn" + }, + "WisdomTemplateArn": { + "$ref": "#/definitions/Arn" + } + }, + "required": [ + "ConnectSourcePhoneNumberArn", + "WisdomTemplateArn" + ], + "additionalProperties": false, + "markdownDescription": "Default WhatsApp outbound config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WhatsAppChannelSubtypeConfig": { + "type": "object", + "description": "WhatsApp Channel Subtype config", + "properties": { + "Capacity": { + "$ref": "#/definitions/Capacity" + }, + "OutboundMode": { + "$ref": "#/definitions/WhatsAppOutboundMode" + }, + "DefaultOutboundConfig": { + "$ref": "#/definitions/WhatsAppOutboundConfig" + } + }, + "required": [ + "OutboundMode", + "DefaultOutboundConfig" + ], + "additionalProperties": false, + "markdownDescription": "WhatsApp Channel Subtype config\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ChannelSubtypeConfig": { "type": "object", "description": "The possible types of channel subtype config parameters", @@ -361,6 +493,9 @@ }, "Email": { "$ref": "#/definitions/EmailChannelSubtypeConfig" + }, + "WhatsApp": { + "$ref": "#/definitions/WhatsAppChannelSubtypeConfig" } }, "anyOf": [ @@ -378,6 +513,11 @@ "required": [ "Email" ] + }, + { + "required": [ + "WhatsApp" + ] } ], "additionalProperties": false, @@ -621,6 +761,9 @@ }, "Email": { "$ref": "#/definitions/TimeWindow" + }, + "WhatsApp": { + "$ref": "#/definitions/TimeWindow" } }, "required": [ @@ -726,6 +869,29 @@ ], "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EntryLimitsConfig": { + "type": "object", + "description": "Entry limits config for a campaign", + "properties": { + "MaxEntryCount": { + "type": "integer", + "minimum": 0, + "description": "Maximum number of entries per participant. 0 indicates unlimited entries.", + "markdownDescription": "Maximum number of entries per participant. 0 indicates unlimited entries.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "MinEntryInterval": { + "$ref": "#/definitions/Iso8601Duration", + "description": "Minimum time interval between entries for the same participant in ISO 8601 duration format", + "markdownDescription": "Minimum time interval between entries for the same participant in ISO 8601 duration format\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "MaxEntryCount", + "MinEntryInterval" + ], + "additionalProperties": false, + "markdownDescription": "Entry limits config for a campaign\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -739,6 +905,9 @@ "Name": { "$ref": "#/definitions/CampaignName" }, + "Type": { + "$ref": "#/definitions/CampaignType" + }, "ConnectInstanceId": { "$ref": "#/definitions/InstanceId" }, @@ -760,6 +929,9 @@ "CommunicationLimitsOverride": { "$ref": "#/definitions/CommunicationLimitsConfig" }, + "EntryLimitsConfig": { + "$ref": "#/definitions/EntryLimitsConfig" + }, "Tags": { "type": "array", "maxItems": 50, @@ -785,8 +957,7 @@ }, "required": [ "Name", - "ConnectInstanceId", - "ChannelSubtypeConfig" + "ConnectInstanceId" ], "readOnlyProperties": [ "/properties/Arn" @@ -822,7 +993,8 @@ "connect-campaigns:DeleteCampaign", "connect-campaigns:DeleteCampaignChannelSubtypeConfig", "connect-campaigns:DeleteCampaignCommunicationLimits", - "connect-campaigns:DeleteCampaignCommunicationTime" + "connect-campaigns:DeleteCampaignCommunicationTime", + "connect-campaigns:DeleteCampaignEntryLimits" ] }, "list": { @@ -845,9 +1017,11 @@ "connect-campaigns:DeleteCampaignChannelSubtypeConfig", "connect-campaigns:DeleteCampaignCommunicationLimits", "connect-campaigns:DeleteCampaignCommunicationTime", + "connect-campaigns:DeleteCampaignEntryLimits", "connect-campaigns:UpdateCampaignChannelSubtypeConfig", "connect-campaigns:UpdateCampaignCommunicationLimits", "connect-campaigns:UpdateCampaignCommunicationTime", + "connect-campaigns:UpdateCampaignEntryLimits", "connect-campaigns:UpdateCampaignName", "connect-campaigns:UpdateCampaignFlowAssociation", "connect-campaigns:UpdateCampaignSchedule", diff --git a/server/schema/resources/aws-controltower-enabledcontrol.json b/server/schema/resources/aws-controltower-enabledcontrol.json index bfbec2dd..7d509062 100644 --- a/server/schema/resources/aws-controltower-enabledcontrol.json +++ b/server/schema/resources/aws-controltower-enabledcontrol.json @@ -187,16 +187,6 @@ ] }, "list": { - "handlerSchema": { - "properties": { - "TargetIdentifier": { - "$ref": "resource-schema.json#/properties/TargetIdentifier" - } - }, - "required": [ - "TargetIdentifier" - ] - }, "permissions": [ "controltower:ListEnabledControls" ] diff --git a/server/schema/resources/aws-controltower-landingzone.json b/server/schema/resources/aws-controltower-landingzone.json index 786f4bdc..e07c6ac5 100644 --- a/server/schema/resources/aws-controltower-landingzone.json +++ b/server/schema/resources/aws-controltower-landingzone.json @@ -1,23 +1,123 @@ { + "typeName": "AWS::ControlTower::LandingZone", + "description": "Definition of AWS::ControlTower::LandingZone Resource Type", + "definitions": { + "LandingZoneDriftStatus": { + "type": "string", + "enum": [ + "DRIFTED", + "IN_SYNC" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DRIFTED | IN_SYNC \nUpdate requires: No interruption\n" + }, + "LandingZoneStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "PROCESSING", + "FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | PROCESSING | FAILED \nUpdate requires: No interruption\n" + }, + "RemediationTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "INHERITANCE_DRIFT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: INHERITANCE_DRIFT \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "LandingZoneIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[0-9a-zA-Z_\\-:\\/]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/LandingZoneStatus" + }, + "LatestAvailableVersion": { + "type": "string", + "maxLength": 10, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 10 \nPattern: \\d+.\\d+ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DriftStatus": { + "$ref": "#/definitions/LandingZoneDriftStatus" + }, + "Manifest": {}, + "Version": { + "type": "string", + "maxLength": 10, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 10 \nPattern: \\d+.\\d+ \nUpdate requires: No interruption\n" + }, + "RemediationTypes": { + "$ref": "#/definitions/RemediationTypes" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Manifest", + "Version" + ], + "readOnlyProperties": [ + "/properties/LandingZoneIdentifier", + "/properties/Arn", + "/properties/Status", + "/properties/LatestAvailableVersion", + "/properties/DriftStatus" + ], + "primaryIdentifier": [ + "/properties/LandingZoneIdentifier" + ], "tagging": { - "permissions": [ - "controltower:UntagResource", - "controltower:TagResource", - "controltower:ListTagsForResource" - ], "taggable": true, "tagOnCreate": true, "tagUpdatable": true, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true + "permissions": [ + "controltower:UntagResource", + "controltower:TagResource", + "controltower:ListTagsForResource" + ] }, "handlers": { - "read": { - "permissions": [ - "controltower:GetLandingZone", - "controltower:ListTagsForResource" - ] - }, "create": { "permissions": [ "controltower:CreateLandingZone", @@ -55,6 +155,12 @@ "sso:RegisterRegion" ] }, + "read": { + "permissions": [ + "controltower:GetLandingZone", + "controltower:ListTagsForResource" + ] + }, "update": { "permissions": [ "controltower:UpdateLandingZone", @@ -93,11 +199,6 @@ "sso:RegisterRegion" ] }, - "list": { - "permissions": [ - "controltower:ListLandingZones" - ] - }, "delete": { "permissions": [ "controltower:DeleteLandingZone", @@ -125,123 +226,36 @@ "cloudformation:EnableOrganizationsAccess", "iam:DeleteRole" ] - } - }, - "typeName": "AWS::ControlTower::LandingZone", - "readOnlyProperties": [ - "/properties/LandingZoneIdentifier", - "/properties/Arn", - "/properties/Status", - "/properties/LatestAvailableVersion", - "/properties/DriftStatus" - ], - "description": "Definition of AWS::ControlTower::LandingZone Resource Type", - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/LandingZoneIdentifier" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "minLength": 0, - "type": "string", - "maxLength": 256, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" - }, - "Key": { - "minLength": 1, - "type": "string", - "maxLength": 256, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "LandingZoneStatus": { - "type": "string", - "enum": [ - "ACTIVE", - "PROCESSING", - "FAILED" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | PROCESSING | FAILED \nUpdate requires: No interruption\n" - }, - "LandingZoneDriftStatus": { - "type": "string", - "enum": [ - "DRIFTED", - "IN_SYNC" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DRIFTED | IN_SYNC \nUpdate requires: No interruption\n" + "list": { + "permissions": [ + "controltower:ListLandingZones" + ] } }, - "properties": { - "Status": { - "$ref": "#/definitions/LandingZoneStatus" - }, - "LatestAvailableVersion": { - "minLength": 3, - "type": "string", - "maxLength": 10, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 10 \nPattern: \\d+.\\d+ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Version": { - "minLength": 3, + "additionalProperties": false, + "attributes": { + "LandingZoneIdentifier": { "type": "string", - "maxLength": 10, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 10 \nPattern: \\d+.\\d+ \nUpdate requires: No interruption\n" - }, - "DriftStatus": { - "$ref": "#/definitions/LandingZoneDriftStatus" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Arn": { - "minLength": 20, "type": "string", "maxLength": 2048, + "minLength": 20, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[0-9a-zA-Z_\\-:\\/]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, - "Manifest": {}, - "LandingZoneIdentifier": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Tags": { - "type": "array", - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Manifest", - "Version" - ], - "attributes": { "Status": { "$ref": "#/definitions/LandingZoneStatus" }, "LatestAvailableVersion": { - "minLength": 3, "type": "string", "maxLength": 10, + "minLength": 3, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 10 \nPattern: \\d+.\\d+ \nUpdate requires: No interruption\nRead only property: Yes" }, "DriftStatus": { "$ref": "#/definitions/LandingZoneDriftStatus" - }, - "Arn": { - "minLength": 20, - "type": "string", - "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws[0-9a-zA-Z_\\-:\\/]+$ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "LandingZoneIdentifier": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-customerprofiles-domain.json b/server/schema/resources/aws-customerprofiles-domain.json index 62f57d88..c9111e71 100644 --- a/server/schema/resources/aws-customerprofiles-domain.json +++ b/server/schema/resources/aws-customerprofiles-domain.json @@ -380,6 +380,42 @@ ], "additionalProperties": false, "markdownDescription": "The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Readiness": { + "description": "Progress information for data store setup.", + "type": "object", + "properties": { + "ProgressPercentage": { + "description": "The percentage of progress completed.", + "type": "integer", + "minimum": 0, + "maximum": 100, + "markdownDescription": "The percentage of progress completed.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Message": { + "description": "A message describing the current progress.", + "type": "string", + "markdownDescription": "A message describing the current progress.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Progress information for data store setup.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataStore": { + "description": "Configuration and status of the data store for the domain.", + "type": "object", + "properties": { + "Enabled": { + "description": "Whether the data store is enabled.", + "type": "boolean", + "markdownDescription": "Whether the data store is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Readiness": { + "$ref": "#/definitions/Readiness" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration and status of the data store for the domain.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } }, "properties": { @@ -417,6 +453,9 @@ "RuleBasedMatching": { "$ref": "#/definitions/RuleBasedMatching" }, + "DataStore": { + "$ref": "#/definitions/DataStore" + }, "Stats": { "$ref": "#/definitions/DomainStats" }, @@ -462,7 +501,8 @@ "/properties/LastUpdatedAt", "/properties/CreatedAt", "/properties/RuleBasedMatching/Status", - "/properties/Stats" + "/properties/Stats", + "/properties/DataStore/Readiness" ], "createOnlyProperties": [ "/properties/DomainName" @@ -474,12 +514,22 @@ "create": { "permissions": [ "profile:CreateDomain", - "profile:TagResource" + "profile:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants" ] }, "read": { "permissions": [ - "profile:GetDomain" + "profile:GetDomain", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants" ] }, "update": { @@ -487,12 +537,22 @@ "profile:GetDomain", "profile:UpdateDomain", "profile:UntagResource", - "profile:TagResource" + "profile:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants" ] }, "delete": { "permissions": [ - "profile:DeleteDomain" + "profile:DeleteDomain", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants" ] }, "list": { diff --git a/server/schema/resources/aws-customerprofiles-domainobjecttype.json b/server/schema/resources/aws-customerprofiles-domainobjecttype.json new file mode 100644 index 00000000..31ae45c9 --- /dev/null +++ b/server/schema/resources/aws-customerprofiles-domainobjecttype.json @@ -0,0 +1,255 @@ +{ + "typeName": "AWS::CustomerProfiles::DomainObjectType", + "description": "Resource Type definition for AWS::CustomerProfiles::DomainObjectType", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-customer-profiles", + "definitions": { + "DomainName": { + "description": "The unique name of the domain.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The unique name of the domain.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "ObjectTypeName": { + "description": "The name of the domain object type.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The name of the domain object type.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^[a-zA-Z_][a-zA-Z_0-9-]*$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Description of the domain object type.", + "type": "string", + "minLength": 1, + "maxLength": 10000, + "markdownDescription": "Description of the domain object type.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 10000 \nUpdate requires: No interruption\n" + }, + "EncryptionKey": { + "description": "The default encryption key", + "type": "string", + "minLength": 0, + "maxLength": 255, + "markdownDescription": "The default encryption key\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "DomainObjectTypeField": { + "description": "Represents a field in a DomainObjectType.", + "type": "object", + "properties": { + "Source": { + "description": "The source field name.", + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "The source field name.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "Target": { + "description": "The target field name.", + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "The target field name.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "ContentType": { + "description": "The content type of the field.", + "type": "string", + "enum": [ + "STRING", + "NUMBER" + ], + "markdownDescription": "The content type of the field.\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | NUMBER \nUpdate requires: No interruption\n" + }, + "FeatureType": { + "description": "The feature type of the field.", + "type": "string", + "enum": [ + "TEXTUAL", + "CATEGORICAL" + ], + "markdownDescription": "The feature type of the field.\n\n---\n\nRequired: No \nType: String \nAllowed Values: TEXTUAL | CATEGORICAL \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Source", + "Target" + ], + "additionalProperties": false, + "markdownDescription": "Represents a field in a DomainObjectType.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DomainObjectTypeFields": { + "description": "A map of the name and ObjectType field.", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9_.-]+$": { + "$ref": "#/definitions/DomainObjectTypeField" + } + }, + "additionalProperties": false, + "markdownDescription": "A map of the name and ObjectType field.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "ObjectTypeName": { + "$ref": "#/definitions/ObjectTypeName" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "EncryptionKey": { + "$ref": "#/definitions/EncryptionKey" + }, + "Fields": { + "$ref": "#/definitions/DomainObjectTypeFields" + }, + "CreatedAt": { + "description": "The timestamp of when the domain object type was created.", + "type": "string", + "markdownDescription": "The timestamp of when the domain object type was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedAt": { + "description": "The timestamp of when the domain object type was most recently edited.", + "type": "string", + "markdownDescription": "The timestamp of when the domain object type was most recently edited.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "additionalProperties": false, + "required": [ + "DomainName", + "ObjectTypeName", + "Fields" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "profile:TagResource", + "profile:UntagResource", + "profile:ListTagsForResource" + ] + }, + "createOnlyProperties": [ + "/properties/DomainName", + "/properties/ObjectTypeName", + "/properties/Fields" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/LastUpdatedAt" + ], + "primaryIdentifier": [ + "/properties/DomainName", + "/properties/ObjectTypeName" + ], + "handlers": { + "create": { + "permissions": [ + "profile:GetDomain", + "profile:GetDomainObjectType", + "profile:PutDomainObjectType", + "profile:TagResource", + "kms:GenerateDataKey", + "kms:Decrypt", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "read": { + "permissions": [ + "profile:GetDomainObjectType", + "profile:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "profile:GetDomainObjectType", + "profile:PutDomainObjectType", + "profile:UntagResource", + "profile:TagResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "profile:DeleteDomainObjectType" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DomainName": { + "$ref": "resource-schema.json#/properties/DomainName" + } + }, + "required": [ + "DomainName" + ] + }, + "permissions": [ + "profile:ListDomainObjectTypes", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "attributes": { + "CreatedAt": { + "description": "The timestamp of when the domain object type was created.", + "type": "string", + "markdownDescription": "The timestamp of when the domain object type was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedAt": { + "description": "The timestamp of when the domain object type was most recently edited.", + "type": "string", + "markdownDescription": "The timestamp of when the domain object type was most recently edited.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-customerprofiles-integration.json b/server/schema/resources/aws-customerprofiles-integration.json index 797508eb..f2932f56 100644 --- a/server/schema/resources/aws-customerprofiles-integration.json +++ b/server/schema/resources/aws-customerprofiles-integration.json @@ -662,6 +662,17 @@ "minItems": 1, "maxItems": 1, "markdownDescription": "A list of unique names for active event triggers associated with the integration.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Scope": { + "description": "Scope of the integration, such as 'PROFILE' or 'DOMAIN'", + "type": "string", + "enum": [ + "PROFILE", + "DOMAIN" + ], + "minLength": 1, + "maxLength": 255, + "markdownDescription": "Scope of the integration, such as 'PROFILE' or 'DOMAIN'\n\n---\n\nRequired: No \nType: String \nAllowed Values: PROFILE | DOMAIN \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^[a-zA-Z_][a-zA-Z_0-9-]*$ \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-customerprofiles-objecttype.json b/server/schema/resources/aws-customerprofiles-objecttype.json index 601fa475..336d1bfd 100644 --- a/server/schema/resources/aws-customerprofiles-objecttype.json +++ b/server/schema/resources/aws-customerprofiles-objecttype.json @@ -125,9 +125,20 @@ "NEW_ONLY", "ASSET", "CASE", - "ORDER" + "ORDER", + "AIR_PREFERENCE", + "AIR_BOOKING", + "AIR_SEGMENT", + "HOTEL_PREFERENCE", + "HOTEL_STAY_REVENUE", + "HOTEL_RESERVATION", + "LOYALTY", + "LOYALTY_TRANSACTION", + "LOYALTY_PROMOTION", + "WEB_ANALYTICS", + "DEVICE" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PROFILE | UNIQUE | SECONDARY | LOOKUP_ONLY | NEW_ONLY | ASSET | CASE | ORDER \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PROFILE | UNIQUE | SECONDARY | LOOKUP_ONLY | NEW_ONLY | ASSET | CASE | ORDER | AIR_PREFERENCE | AIR_BOOKING | AIR_SEGMENT | HOTEL_PREFERENCE | HOTEL_STAY_REVENUE | HOTEL_RESERVATION | LOYALTY | LOYALTY_TRANSACTION | LOYALTY_PROMOTION | WEB_ANALYTICS | DEVICE \nUpdate requires: No interruption\n" }, "markdownDescription": "The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE means that this key can be used to tie an object to a PROFILE. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } @@ -240,6 +251,12 @@ "type": "integer", "minimum": 0, "markdownDescription": "The maximum available number of profile objects\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SourcePriority": { + "description": "Defines the priority order of object types. Lower value indicates higher priority.", + "type": "integer", + "minimum": 1, + "markdownDescription": "Defines the priority order of object types. Lower value indicates higher priority.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-customerprofiles-recommender.json b/server/schema/resources/aws-customerprofiles-recommender.json new file mode 100644 index 00000000..1bedb62f --- /dev/null +++ b/server/schema/resources/aws-customerprofiles-recommender.json @@ -0,0 +1,389 @@ +{ + "typeName": "AWS::CustomerProfiles::Recommender", + "description": "Resource Type definition for AWS::CustomerProfiles::Recommender", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-customer-profiles.git", + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DomainName": { + "description": "The name of the domain for which the recommender will be created", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the domain for which the recommender will be created\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "RecommenderRecipeName": { + "description": "The name of the recommender recipe.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The name of the recommender recipe.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "RecommenderConfig": { + "type": "object", + "description": "Configuration for the recommender", + "properties": { + "EventsConfig": { + "$ref": "#/definitions/EventsConfig" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration for the recommender\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EventsConfig": { + "type": "object", + "description": "Configuration for events used in the recommender", + "properties": { + "EventParametersList": { + "type": "array", + "description": "List of event parameters with their value thresholds", + "items": { + "$ref": "#/definitions/EventParameters" + }, + "minItems": 1, + "maxItems": 10, + "markdownDescription": "List of event parameters with their value thresholds\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EventParametersList" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for events used in the recommender\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EventParameters": { + "type": "object", + "description": "Event parameters with type and value threshold", + "properties": { + "EventType": { + "type": "string", + "description": "The type of event", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The type of event\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "EventValueThreshold": { + "type": "number", + "description": "The threshold of the event type. Only events with a value greater or equal to this threshold will be considered for solution creation.", + "markdownDescription": "The threshold of the event type. Only events with a value greater or equal to this threshold will be considered for solution creation.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EventType" + ], + "additionalProperties": false, + "markdownDescription": "Event parameters with type and value threshold\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RecommenderName": { + "description": "The name of the recommender", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the recommender\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "RecommenderStatus": { + "description": "The status of the recommender", + "type": "string", + "enum": [ + "PENDING", + "IN_PROGRESS", + "STOPPING", + "STARTING", + "ACTIVE", + "INACTIVE", + "FAILED", + "DELETING" + ], + "markdownDescription": "The status of the recommender\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | IN_PROGRESS | STOPPING | STARTING | ACTIVE | INACTIVE | FAILED | DELETING \nUpdate requires: No interruption\n" + }, + "RecommenderUpdate": { + "type": "object", + "description": "Information about the latest recommender update", + "properties": { + "RecommenderConfig": { + "$ref": "#/definitions/RecommenderConfig" + }, + "Status": { + "$ref": "#/definitions/RecommenderStatus" + }, + "CreationDateTime": { + "type": "string", + "description": "The timestamp of when the update was created", + "markdownDescription": "The timestamp of when the update was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LastUpdatedDateTime": { + "type": "string", + "description": "The timestamp of when the update was last modified", + "markdownDescription": "The timestamp of when the update was last modified\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "FailureReason": { + "type": "string", + "description": "The reason for update failure", + "markdownDescription": "The reason for update failure\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Information about the latest recommender update\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrainingMetrics": { + "type": "object", + "properties": { + "Time": { + "type": "string", + "description": "Timestamp of the training metrics", + "markdownDescription": "Timestamp of the training metrics\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Metrics": { + "type": "object", + "description": "Training metrics by type", + "properties": { + "hit": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "coverage": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "recall": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "popularity": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "freshness": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "similarity": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Training metrics by type\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the recommender.", + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "The description of the recommender.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "RecommenderName": { + "$ref": "#/definitions/RecommenderName" + }, + "RecommenderRecipeName": { + "$ref": "#/definitions/RecommenderRecipeName" + }, + "RecommenderConfig": { + "$ref": "#/definitions/RecommenderConfig" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "RecommenderArn": { + "description": "The Amazon Resource Name (ARN) of the recommender.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The Amazon Resource Name (ARN) of the recommender.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^arn:([a-z\\d-]+):profile:.*:.*:.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/RecommenderStatus" + }, + "CreatedAt": { + "description": "The timestamp of when the recommender was created.", + "type": "string", + "markdownDescription": "The timestamp of when the recommender was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedAt": { + "description": "The timestamp of when the recommender was last updated.", + "type": "string", + "markdownDescription": "The timestamp of when the recommender was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FailureReason": { + "description": "The reason for recommender failure.", + "type": "string", + "markdownDescription": "The reason for recommender failure.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LatestRecommenderUpdate": { + "$ref": "#/definitions/RecommenderUpdate" + }, + "TrainingMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/TrainingMetrics" + }, + "maxItems": 5, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "The tags used to organize, track, or control access for this resource.", + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "markdownDescription": "The tags used to organize, track, or control access for this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "DomainName", + "RecommenderName", + "RecommenderRecipeName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "profile:TagResource", + "profile:UntagResource", + "profile:ListTagsForResource" + ] + }, + "createOnlyProperties": [ + "/properties/DomainName", + "/properties/RecommenderName", + "/properties/RecommenderRecipeName" + ], + "readOnlyProperties": [ + "/properties/RecommenderArn", + "/properties/Status", + "/properties/CreatedAt", + "/properties/LastUpdatedAt", + "/properties/FailureReason", + "/properties/LatestRecommenderUpdate", + "/properties/TrainingMetrics" + ], + "primaryIdentifier": [ + "/properties/DomainName", + "/properties/RecommenderName" + ], + "handlers": { + "create": { + "permissions": [ + "profile:CreateRecommender", + "profile:GetRecommender", + "profile:TagResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "profile:GetRecommender", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "profile:GetRecommender", + "profile:UpdateRecommender", + "profile:UntagResource", + "profile:TagResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "profile:DeleteRecommender", + "profile:GetRecommender" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DomainName": { + "$ref": "resource-schema.json#/properties/DomainName" + } + }, + "required": [ + "DomainName" + ] + }, + "permissions": [ + "profile:ListRecommenders", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "attributes": { + "RecommenderArn": { + "description": "The Amazon Resource Name (ARN) of the recommender.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The Amazon Resource Name (ARN) of the recommender.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^arn:([a-z\\d-]+):profile:.*:.*:.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/RecommenderStatus" + }, + "CreatedAt": { + "description": "The timestamp of when the recommender was created.", + "type": "string", + "markdownDescription": "The timestamp of when the recommender was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedAt": { + "description": "The timestamp of when the recommender was last updated.", + "type": "string", + "markdownDescription": "The timestamp of when the recommender was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FailureReason": { + "description": "The reason for recommender failure.", + "type": "string", + "markdownDescription": "The reason for recommender failure.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LatestRecommenderUpdate": { + "$ref": "#/definitions/RecommenderUpdate" + }, + "TrainingMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/TrainingMetrics" + }, + "maxItems": 5, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-customerprofiles-segmentdefinition.json b/server/schema/resources/aws-customerprofiles-segmentdefinition.json index 759febc2..5c8190b3 100644 --- a/server/schema/resources/aws-customerprofiles-segmentdefinition.json +++ b/server/schema/resources/aws-customerprofiles-segmentdefinition.json @@ -523,6 +523,84 @@ "PROFILE" ], "markdownDescription": "The type of profile.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACCOUNT_PROFILE | PROFILE \nUpdate requires: No interruption\n" + }, + "SegmentSort": { + "description": "Defines how segments should be sorted and ordered in the results.", + "type": "object", + "properties": { + "Attributes": { + "description": "A list of attributes used to sort the segments and their ordering preferences.", + "type": "array", + "items": { + "$ref": "#/definitions/SortAttribute" + }, + "minItems": 1, + "maxItems": 10, + "markdownDescription": "A list of attributes used to sort the segments and their ordering preferences.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Attributes" + ], + "additionalProperties": false, + "markdownDescription": "Defines how segments should be sorted and ordered in the results.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SortAttribute": { + "description": "Defines the characteristics and rules for sorting by a specific attribute.", + "type": "object", + "properties": { + "Name": { + "description": "The name of the attribute to sort by.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The name of the attribute to sort by.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "Order": { + "$ref": "#/definitions/SegmentSortOrder" + }, + "DataType": { + "$ref": "#/definitions/SegmentSortDataType" + }, + "Type": { + "$ref": "#/definitions/SortAttributeType", + "default": "PROFILE" + } + }, + "required": [ + "Name", + "Order" + ], + "additionalProperties": false, + "markdownDescription": "Defines the characteristics and rules for sorting by a specific attribute.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SegmentSortOrder": { + "description": "The sort order for the attribute (ascending or descending).", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "markdownDescription": "The sort order for the attribute (ascending or descending).\n\n---\n\nRequired: No \nType: String \nAllowed Values: ASC | DESC \nUpdate requires: No interruption\n" + }, + "SegmentSortDataType": { + "description": "The data type of the sort attribute (e.g., string, number, date).", + "type": "string", + "enum": [ + "STRING", + "NUMBER", + "DATE" + ], + "markdownDescription": "The data type of the sort attribute (e.g., string, number, date).\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | NUMBER | DATE \nUpdate requires: No interruption\n" + }, + "SortAttributeType": { + "description": "The type of attribute (e.g., profile, calculated).", + "type": "string", + "enum": [ + "PROFILE", + "CALCULATED" + ], + "markdownDescription": "The type of attribute (e.g., profile, calculated).\n\n---\n\nRequired: No \nType: String \nAllowed Values: PROFILE | CALCULATED \nUpdate requires: No interruption\n" } }, "properties": { @@ -535,9 +613,9 @@ "Description": { "description": "The description of the segment definition.", "type": "string", - "maxLength": 1000, + "maxLength": 4000, "minLength": 1, - "markdownDescription": "The description of the segment definition.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + "markdownDescription": "The description of the segment definition.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 4000 \nUpdate requires: No interruption\n" }, "DisplayName": { "description": "The display name of the segment definition.", @@ -563,7 +641,14 @@ "SegmentGroups": { "description": "An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.", "$ref": "#/definitions/SegmentGroup", - "markdownDescription": "An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + "markdownDescription": "An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "SegmentSqlQuery": { + "description": "The SQL query that defines the segment criteria.", + "type": "string", + "minLength": 1, + "maxLength": 50000, + "markdownDescription": "The SQL query that defines the segment criteria.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 50000 \nUpdate requires: Replacement\n" }, "SegmentDefinitionArn": { "description": "The Amazon Resource Name (ARN) of the segment definition.", @@ -572,6 +657,15 @@ "minLength": 1, "markdownDescription": "The Amazon Resource Name (ARN) of the segment definition.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\nRead only property: Yes" }, + "SegmentType": { + "description": "The SQL query that defines the segment criteria.", + "type": "string", + "enum": [ + "CLASSIC", + "ENHANCED" + ], + "markdownDescription": "The SQL query that defines the segment criteria.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CLASSIC | ENHANCED \nUpdate requires: No interruption\nRead only property: Yes" + }, "Tags": { "description": "The tags used to organize, track, or control access for this resource.", "type": "array", @@ -583,23 +677,29 @@ "minItems": 0, "maxItems": 50, "markdownDescription": "The tags used to organize, track, or control access for this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SegmentSort": { + "description": "The segment sort configuration for ordering segment results.", + "$ref": "#/definitions/SegmentSort", + "markdownDescription": "The segment sort configuration for ordering segment results.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ "DomainName", "DisplayName", - "SegmentDefinitionName", - "SegmentGroups" + "SegmentDefinitionName" ], "readOnlyProperties": [ "/properties/CreatedAt", - "/properties/SegmentDefinitionArn" + "/properties/SegmentDefinitionArn", + "/properties/SegmentType" ], "createOnlyProperties": [ "/properties/DomainName", "/properties/SegmentDefinitionName", "/properties/DisplayName", - "/properties/SegmentGroups" + "/properties/SegmentGroups", + "/properties/SegmentSqlQuery" ], "primaryIdentifier": [ "/properties/DomainName", @@ -609,24 +709,50 @@ "create": { "permissions": [ "profile:CreateSegmentDefinition", - "profile:TagResource" + "profile:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants", + "kms:GenerateDataKey" ] }, "read": { "permissions": [ - "profile:GetSegmentDefinition" + "profile:GetSegmentDefinition", + "profile:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants", + "kms:GenerateDataKey" ] }, "update": { "permissions": [ "profile:GetSegmentDefinition", + "profile:ListTagsForResource", "profile:UntagResource", - "profile:TagResource" + "profile:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants", + "kms:GenerateDataKey" ] }, "delete": { "permissions": [ - "profile:DeleteSegmentDefinition" + "profile:DeleteSegmentDefinition", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants", + "kms:GenerateDataKey" ] }, "list": { @@ -641,7 +767,13 @@ ] }, "permissions": [ - "profile:ListSegmentDefinitions" + "profile:ListSegmentDefinitions", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GetKeyPolicy", + "kms:PutKeyPolicy", + "kms:ListGrants", + "kms:GenerateDataKey" ] } }, @@ -671,6 +803,15 @@ "maxLength": 255, "minLength": 1, "markdownDescription": "The Amazon Resource Name (ARN) of the segment definition.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SegmentType": { + "description": "The SQL query that defines the segment criteria.", + "type": "string", + "enum": [ + "CLASSIC", + "ENHANCED" + ], + "markdownDescription": "The SQL query that defines the segment criteria.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CLASSIC | ENHANCED \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-datasync-agent.json b/server/schema/resources/aws-datasync-agent.json index 0e976cbc..bd452771 100644 --- a/server/schema/resources/aws-datasync-agent.json +++ b/server/schema/resources/aws-datasync-agent.json @@ -51,7 +51,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$ \nUpdate requires: No interruption\n" }, "markdownDescription": "The ARNs of the security group used to protect your data transfer task subnets.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, @@ -62,7 +62,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$ \nUpdate requires: No interruption\n" }, "markdownDescription": "The ARNs of the subnets in which DataSync will create elastic network interfaces for each data transfer task.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, @@ -96,14 +96,14 @@ "description": "The DataSync Agent ARN.", "type": "string", "maxLength": 128, - "markdownDescription": "The DataSync Agent ARN.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The DataSync Agent ARN.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" } }, "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -183,7 +183,7 @@ "description": "The DataSync Agent ARN.", "type": "string", "maxLength": 128, - "markdownDescription": "The DataSync Agent ARN.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The DataSync Agent ARN.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-datasync-locationazureblob.json b/server/schema/resources/aws-datasync-locationazureblob.json index eb7382ba..bf346fcb 100644 --- a/server/schema/resources/aws-datasync-locationazureblob.json +++ b/server/schema/resources/aws-datasync-locationazureblob.json @@ -56,13 +56,13 @@ "description": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" }, "KmsKeyArn": { "description": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" @@ -76,13 +76,13 @@ "description": "Specifies the ARN for a customer created AWS Secrets Manager secret.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" }, "SecretAccessRoleArn": { "description": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -100,7 +100,7 @@ "description": "Specifies the ARN for an AWS Secrets Manager secret.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -116,7 +116,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" }, "minItems": 1, "maxItems": 4, @@ -183,7 +183,7 @@ "description": "The Amazon Resource Name (ARN) of the Azure Blob Location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Azure Blob Location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Azure Blob Location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the Azure Blob Location that was described.", @@ -205,7 +205,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -292,7 +292,7 @@ "description": "The Amazon Resource Name (ARN) of the Azure Blob Location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Azure Blob Location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Azure Blob Location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the Azure Blob Location that was described.", diff --git a/server/schema/resources/aws-datasync-locationefs.json b/server/schema/resources/aws-datasync-locationefs.json index 4a6e83b0..95b23b53 100644 --- a/server/schema/resources/aws-datasync-locationefs.json +++ b/server/schema/resources/aws-datasync-locationefs.json @@ -14,7 +14,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$ \nUpdate requires: No interruption\n" }, "minItems": 1, "maxItems": 5, @@ -25,7 +25,7 @@ "description": "The ARN of the subnet that DataSync uses to access the target EFS file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The ARN of the subnet that DataSync uses to access the target EFS file system.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of the subnet that DataSync uses to access the target EFS file system.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -69,19 +69,19 @@ "description": "The Amazon Resource Name (ARN) for the Amazon EFS file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the Amazon EFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$ \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) for the Amazon EFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$ \nUpdate requires: Replacement\n" }, "AccessPointArn": { "description": "The Amazon Resource Name (ARN) for the Amazon EFS Access point that DataSync uses when accessing the EFS file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the Amazon EFS Access point that DataSync uses when accessing the EFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]+:[0-9]{12}:access-point/fsap-[0-9a-f]{8,40}$ \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) for the Amazon EFS Access point that DataSync uses when accessing the EFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]+:[0-9]{12}:access-point/fsap-[0-9a-f]{8,40}$ \nUpdate requires: No interruption\n" }, "FileSystemAccessRoleArn": { "description": "The Amazon Resource Name (ARN) of the AWS IAM role that the DataSync will assume when mounting the EFS file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the AWS IAM role that the DataSync will assume when mounting the EFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the AWS IAM role that the DataSync will assume when mounting the EFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" }, "InTransitEncryption": { "description": "Protocol that is used for encrypting the traffic exchanged between the DataSync Agent and the EFS file system.", @@ -113,7 +113,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the EFS location that was described.", @@ -127,7 +127,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -202,7 +202,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the EFS location that was described.", diff --git a/server/schema/resources/aws-datasync-locationfsxlustre.json b/server/schema/resources/aws-datasync-locationfsxlustre.json index 2663920c..28b12736 100644 --- a/server/schema/resources/aws-datasync-locationfsxlustre.json +++ b/server/schema/resources/aws-datasync-locationfsxlustre.json @@ -35,7 +35,7 @@ "description": "The Amazon Resource Name (ARN) for the FSx for Lustre file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the FSx for Lustre file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) for the FSx for Lustre file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: Replacement\n" }, "SecurityGroupArns": { "description": "The ARNs of the security groups that are to use to configure the FSx for Lustre file system.", @@ -43,7 +43,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/sg-[a-f0-9]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/sg-[a-f0-9]+$ \nUpdate requires: No interruption\n" }, "maxItems": 5, "minItems": 1, @@ -72,7 +72,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx for Lustre file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Lustre file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Lustre file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx for Lustre location that was described.", @@ -85,7 +85,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -158,7 +158,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx for Lustre file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Lustre file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Lustre file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx for Lustre location that was described.", diff --git a/server/schema/resources/aws-datasync-locationfsxontap.json b/server/schema/resources/aws-datasync-locationfsxontap.json index c5f00828..01907a0c 100644 --- a/server/schema/resources/aws-datasync-locationfsxontap.json +++ b/server/schema/resources/aws-datasync-locationfsxontap.json @@ -1,6 +1,6 @@ { "typeName": "AWS::DataSync::LocationFSxONTAP", - "description": "Resource schema for AWS::DataSync::LocationFSxONTAP.", + "description": "Resource Type definition for AWS::DataSync::LocationFSxONTAP.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", "definitions": { "Tag": { @@ -41,7 +41,7 @@ "$ref": "#/definitions/SMB" } }, - "markdownDescription": "Configuration settings for NFS or SMB protocol.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Configuration settings for NFS or SMB protocol.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" }, "NFS": { "additionalProperties": false, @@ -75,18 +75,26 @@ "description": "The password of the user who can mount the share and has the permissions to access files and folders in the SMB share.", "type": "string", "maxLength": 104, - "markdownDescription": "The password of the user who can mount the share and has the permissions to access files and folders in the SMB share.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 104 \nPattern: ^.{0,104}$ \nUpdate requires: No interruption\n" + "markdownDescription": "The password of the user who can mount the share and has the permissions to access files and folders in the SMB share.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 104 \nPattern: ^.{0,104}$ \nUpdate requires: No interruption\n" }, "User": { "description": "The user who can mount the share, has the permissions to access files and folders in the SMB share.", "type": "string", "maxLength": 104, "markdownDescription": "The user who can mount the share, has the permissions to access files and folders in the SMB share.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 104 \nPattern: ^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$ \nUpdate requires: No interruption\n" + }, + "CmkSecretConfig": { + "$ref": "#/definitions/CmkSecretConfig" + }, + "CustomSecretConfig": { + "$ref": "#/definitions/CustomSecretConfig" + }, + "ManagedSecretConfig": { + "$ref": "#/definitions/ManagedSecretConfig" } }, "required": [ "User", - "Password", "MountOptions" ], "markdownDescription": "SMB protocol configuration for FSx ONTAP file system.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -127,6 +135,67 @@ } }, "markdownDescription": "The mount options used by DataSync to access the SMB server.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CmkSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "description": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a customer-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and an IAM role that DataSync can assume and access the customer-managed secret.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for a customer created AWS Secrets Manager secret.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + }, + "SecretAccessRoleArn": { + "description": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn", + "SecretAccessRoleArn" + ], + "markdownDescription": "Specifies configuration information for a customer-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and an IAM role that DataSync can assume and access the customer-managed secret.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ManagedSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location. DataSync uses the default AWS-managed KMS key to encrypt this secret in AWS Secrets Manager.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for an AWS Secrets Manager secret.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn" + ], + "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location. DataSync uses the default AWS-managed KMS key to encrypt this secret in AWS Secrets Manager.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -134,13 +203,13 @@ "description": "The Amazon Resource Name (ARN) for the FSx ONTAP SVM.", "type": "string", "maxLength": 162, - "markdownDescription": "The Amazon Resource Name (ARN) for the FSx ONTAP SVM.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 162 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:storage-virtual-machine/fs-[0-9a-f]+/svm-[0-9a-f]{17,}$ \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) for the FSx ONTAP SVM.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 162 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:storage-virtual-machine/fs-[0-9a-f]+/svm-[0-9a-f]{17,}$ \nUpdate requires: Replacement\n" }, "FsxFilesystemArn": { "description": "The Amazon Resource Name (ARN) for the FSx ONAP file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the FSx ONAP file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) for the FSx ONAP file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, "SecurityGroupArns": { "description": "The ARNs of the security groups that are to use to configure the FSx ONTAP file system.", @@ -148,7 +217,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/sg-[a-f0-9]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/sg-[a-f0-9]+$ \nUpdate requires: No interruption\n" }, "maxItems": 5, "minItems": 1, @@ -180,7 +249,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx ONTAP file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx ONTAP file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx ONTAP file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx ONTAP file system that was described.", @@ -193,7 +262,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -209,7 +278,9 @@ "readOnlyProperties": [ "/properties/LocationArn", "/properties/LocationUri", - "/properties/FsxFilesystemArn" + "/properties/FsxFilesystemArn", + "/properties/Protocol/SMB/ManagedSecretConfig", + "/properties/Protocol/SMB/CmkSecretConfig/SecretArn" ], "writeOnlyProperties": [ "/properties/Protocol/SMB/Password", @@ -233,7 +304,15 @@ "fsx:DescribeFileSystems", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", - "ec2:DescribeSecurityGroups" + "ec2:DescribeSecurityGroups", + "secretsmanager:CreateSecret", + "secretsmanager:PutSecretValue", + "secretsmanager:DeleteSecret", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Encrypt", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "read": { @@ -251,12 +330,22 @@ "datasync:UntagResource", "fsx:DescribeFileSystems", "fsx:DescribeStorageVirtualMachines", - "ec2:DescribeNetworkInterfaces" + "ec2:DescribeNetworkInterfaces", + "secretsmanager:UpdateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:PutSecretValue", + "secretsmanager:CreateSecret", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Encrypt", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "delete": { "permissions": [ - "datasync:DeleteLocation" + "datasync:DeleteLocation", + "secretsmanager:DeleteSecret" ] }, "list": { @@ -270,13 +359,13 @@ "description": "The Amazon Resource Name (ARN) for the FSx ONAP file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the FSx ONAP file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) for the FSx ONAP file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationArn": { "description": "The Amazon Resource Name (ARN) of the Amazon FSx ONTAP file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx ONTAP file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx ONTAP file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx ONTAP file system that was described.", diff --git a/server/schema/resources/aws-datasync-locationfsxopenzfs.json b/server/schema/resources/aws-datasync-locationfsxopenzfs.json index 61899a24..5f18d316 100644 --- a/server/schema/resources/aws-datasync-locationfsxopenzfs.json +++ b/server/schema/resources/aws-datasync-locationfsxopenzfs.json @@ -79,7 +79,7 @@ "description": "The Amazon Resource Name (ARN) for the FSx OpenZFS file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the FSx OpenZFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) for the FSx OpenZFS file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:file-system/fs-[0-9a-f]+$ \nUpdate requires: Replacement\n" }, "SecurityGroupArns": { "description": "The ARNs of the security groups that are to use to configure the FSx OpenZFS file system.", @@ -87,7 +87,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/sg-[a-f0-9]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/sg-[a-f0-9]+$ \nUpdate requires: No interruption\n" }, "maxItems": 5, "minItems": 1, @@ -119,7 +119,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx OpenZFS file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx OpenZFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx OpenZFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx OpenZFS that was described.", @@ -132,7 +132,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -206,7 +206,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx OpenZFS file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx OpenZFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx OpenZFS file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx OpenZFS that was described.", diff --git a/server/schema/resources/aws-datasync-locationfsxwindows.json b/server/schema/resources/aws-datasync-locationfsxwindows.json index f195f89d..25970f0d 100644 --- a/server/schema/resources/aws-datasync-locationfsxwindows.json +++ b/server/schema/resources/aws-datasync-locationfsxwindows.json @@ -1,6 +1,6 @@ { "typeName": "AWS::DataSync::LocationFSxWindows", - "description": "Resource schema for AWS::DataSync::LocationFSxWindows.", + "description": "Resource Type definition for AWS::DataSync::LocationFSxWindows.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", "definitions": { "Tag": { @@ -28,6 +28,67 @@ "Value" ], "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CmkSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "description": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CustomSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a customer-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and an IAM role that DataSync can assume and access the customer-managed secret.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for a customer created AWS Secrets Manager secret.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + }, + "SecretAccessRoleArn": { + "description": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn", + "SecretAccessRoleArn" + ], + "markdownDescription": "Specifies configuration information for a customer-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and an IAM role that DataSync can assume and access the customer-managed secret.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ManagedSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location. DataSync uses the default AWS-managed KMS key to encrypt this secret in AWS Secrets Manager.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for an AWS Secrets Manager secret.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn" + ], + "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location. DataSync uses the default AWS-managed KMS key to encrypt this secret in AWS Secrets Manager.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -41,7 +102,7 @@ "description": "The Amazon Resource Name (ARN) for the FSx for Windows file system.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) for the FSx for Windows file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$ \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) for the FSx for Windows file system.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$ \nUpdate requires: Replacement\n" }, "Password": { "description": "The password of the user who has the permissions to access files and folders in the FSx for Windows file system.", @@ -55,7 +116,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$ \nUpdate requires: No interruption\n" }, "insertionOrder": false, "markdownDescription": "The ARNs of the security groups that are to use to configure the FSx for Windows file system.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" @@ -87,20 +148,29 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx for Windows file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Windows file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Windows file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx for Windows location that was described.", "type": "string", "maxLength": 4356, "markdownDescription": "The URL of the FSx for Windows location that was described.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 4356 \nPattern: ^(efs|nfs|s3|smb|fsxw)://[a-zA-Z0-9./\\-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CmkSecretConfig": { + "$ref": "#/definitions/CmkSecretConfig" + }, + "CustomSecretConfig": { + "$ref": "#/definitions/CustomSecretConfig" + }, + "ManagedSecretConfig": { + "$ref": "#/definitions/ManagedSecretConfig" } }, "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -115,7 +185,9 @@ ], "readOnlyProperties": [ "/properties/LocationArn", - "/properties/LocationUri" + "/properties/LocationUri", + "/properties/ManagedSecretConfig", + "/properties/CmkSecretConfig/SecretArn" ], "writeOnlyProperties": [ "/properties/Password", @@ -139,7 +211,15 @@ "fsx:DescribeFileSystems", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", - "ec2:DescribeSecurityGroups" + "ec2:DescribeSecurityGroups", + "secretsmanager:CreateSecret", + "secretsmanager:PutSecretValue", + "secretsmanager:DeleteSecret", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Encrypt", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "read": { @@ -156,12 +236,22 @@ "datasync:TagResource", "datasync:UntagResource", "fsx:DescribeFileSystems", - "ec2:DescribeNetworkInterfaces" + "ec2:DescribeNetworkInterfaces", + "secretsmanager:UpdateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:PutSecretValue", + "secretsmanager:CreateSecret", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Encrypt", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "delete": { "permissions": [ - "datasync:DeleteLocation" + "datasync:DeleteLocation", + "secretsmanager:DeleteSecret" ] }, "list": { @@ -175,13 +265,16 @@ "description": "The Amazon Resource Name (ARN) of the Amazon FSx for Windows file system location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Windows file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon FSx for Windows file system location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the FSx for Windows location that was described.", "type": "string", "maxLength": 4356, "markdownDescription": "The URL of the FSx for Windows location that was described.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 4356 \nPattern: ^(efs|nfs|s3|smb|fsxw)://[a-zA-Z0-9./\\-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ManagedSecretConfig": { + "$ref": "#/definitions/ManagedSecretConfig" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-datasync-locationhdfs.json b/server/schema/resources/aws-datasync-locationhdfs.json index b1fcab6d..1b5b123b 100644 --- a/server/schema/resources/aws-datasync-locationhdfs.json +++ b/server/schema/resources/aws-datasync-locationhdfs.json @@ -1,6 +1,6 @@ { "typeName": "AWS::DataSync::LocationHDFS", - "description": "Resource schema for AWS::DataSync::LocationHDFS.", + "description": "Resource Type definition for AWS::DataSync::LocationHDFS.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", "definitions": { "NameNode": { @@ -85,6 +85,67 @@ } }, "markdownDescription": "Configuration information for RPC Protection and Data Transfer Protection. These parameters can be set to AUTHENTICATION, INTEGRITY, or PRIVACY. The default value is PRIVACY.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CmkSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "description": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CustomSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a customer-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and an IAM role that DataSync can assume and access the customer-managed secret.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for a customer created AWS Secrets Manager secret.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + }, + "SecretAccessRoleArn": { + "description": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn", + "SecretAccessRoleArn" + ], + "markdownDescription": "Specifies configuration information for a customer-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and an IAM role that DataSync can assume and access the customer-managed secret.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ManagedSecretConfig": { + "additionalProperties": false, + "description": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location. DataSync uses the default AWS-managed KMS key to encrypt this secret in AWS Secrets Manager.", + "type": "object", + "properties": { + "SecretArn": { + "description": "Specifies the ARN for an AWS Secrets Manager secret.", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn" + ], + "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location. DataSync uses the default AWS-managed KMS key to encrypt this secret in AWS Secrets Manager.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -177,7 +238,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" }, "minItems": 1, "maxItems": 4, @@ -194,20 +255,29 @@ "description": "The Amazon Resource Name (ARN) of the HDFS location.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the HDFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the HDFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the HDFS location that was described.", "type": "string", "maxLength": 4356, "markdownDescription": "The URL of the HDFS location that was described.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 4356 \nPattern: ^(efs|nfs|s3|smb|fsxw|hdfs)://[a-zA-Z0-9.:/\\-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CmkSecretConfig": { + "$ref": "#/definitions/CmkSecretConfig" + }, + "CustomSecretConfig": { + "$ref": "#/definitions/CustomSecretConfig" + }, + "ManagedSecretConfig": { + "$ref": "#/definitions/ManagedSecretConfig" } }, "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -223,7 +293,9 @@ ], "readOnlyProperties": [ "/properties/LocationArn", - "/properties/LocationUri" + "/properties/LocationUri", + "/properties/ManagedSecretConfig", + "/properties/CmkSecretConfig/SecretArn" ], "primaryIdentifier": [ "/properties/LocationArn" @@ -239,7 +311,15 @@ "datasync:CreateLocationHdfs", "datasync:DescribeLocationHdfs", "datasync:TagResource", - "datasync:ListTagsForResource" + "datasync:ListTagsForResource", + "secretsmanager:CreateSecret", + "secretsmanager:PutSecretValue", + "secretsmanager:DeleteSecret", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Encrypt", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "read": { @@ -254,12 +334,22 @@ "datasync:DescribeLocationHdfs", "datasync:ListTagsForResource", "datasync:TagResource", - "datasync:UntagResource" + "datasync:UntagResource", + "secretsmanager:UpdateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:PutSecretValue", + "secretsmanager:CreateSecret", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Encrypt", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "delete": { "permissions": [ - "datasync:DeleteLocation" + "datasync:DeleteLocation", + "secretsmanager:DeleteSecret" ] }, "list": { @@ -273,13 +363,16 @@ "description": "The Amazon Resource Name (ARN) of the HDFS location.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the HDFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the HDFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the HDFS location that was described.", "type": "string", "maxLength": 4356, "markdownDescription": "The URL of the HDFS location that was described.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 4356 \nPattern: ^(efs|nfs|s3|smb|fsxw|hdfs)://[a-zA-Z0-9.:/\\-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ManagedSecretConfig": { + "$ref": "#/definitions/ManagedSecretConfig" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-datasync-locationnfs.json b/server/schema/resources/aws-datasync-locationnfs.json index a4dd9edb..d52363d7 100644 --- a/server/schema/resources/aws-datasync-locationnfs.json +++ b/server/schema/resources/aws-datasync-locationnfs.json @@ -33,10 +33,10 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" }, "minItems": 1, - "maxItems": 4, + "maxItems": 8, "insertionOrder": false, "markdownDescription": "ARN(s) of the agent(s) to use for an NFS location.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } @@ -110,7 +110,7 @@ "description": "The Amazon Resource Name (ARN) of the NFS location.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the NFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the NFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the NFS location that was described.", @@ -123,7 +123,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -186,7 +186,7 @@ "description": "The Amazon Resource Name (ARN) of the NFS location.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the NFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the NFS location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the NFS location that was described.", diff --git a/server/schema/resources/aws-datasync-locationobjectstorage.json b/server/schema/resources/aws-datasync-locationobjectstorage.json index 5d0a2299..c6c4e32f 100644 --- a/server/schema/resources/aws-datasync-locationobjectstorage.json +++ b/server/schema/resources/aws-datasync-locationobjectstorage.json @@ -38,13 +38,13 @@ "description": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" }, "KmsKeyArn": { "description": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as an authentication token or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" @@ -58,13 +58,13 @@ "description": "Specifies the ARN for a customer created AWS Secrets Manager secret.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" }, "SecretAccessRoleArn": { "description": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -82,7 +82,7 @@ "description": "Specifies the ARN for an AWS Secrets Manager secret.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -105,7 +105,7 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" }, "minItems": 1, "maxItems": 4, @@ -175,7 +175,7 @@ "description": "The Amazon Resource Name (ARN) of the location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the object storage location that was described.", @@ -197,7 +197,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -282,7 +282,7 @@ "description": "The Amazon Resource Name (ARN) of the location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the object storage location that was described.", diff --git a/server/schema/resources/aws-datasync-locations3.json b/server/schema/resources/aws-datasync-locations3.json index f4692bd9..b9e9867c 100644 --- a/server/schema/resources/aws-datasync-locations3.json +++ b/server/schema/resources/aws-datasync-locations3.json @@ -12,7 +12,7 @@ "description": "The ARN of the IAM role of the Amazon S3 bucket.", "type": "string", "maxLength": 2048, - "markdownDescription": "The ARN of the IAM role of the Amazon S3 bucket.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of the IAM role of the Amazon S3 bucket.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -55,7 +55,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon S3 bucket.", "type": "string", "maxLength": 156, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 bucket.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 156 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):s3:[a-z\\-0-9]*:[0-9]*:.*$ \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 bucket.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 156 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):s3:[a-z\\-0-9]*:[0-9]*:.*$ \nUpdate requires: Replacement\n" }, "Subdirectory": { "description": "A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination.", @@ -93,7 +93,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon S3 bucket location.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 bucket location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 bucket location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the S3 location that was described.", @@ -107,7 +107,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -177,7 +177,7 @@ "description": "The Amazon Resource Name (ARN) of the Amazon S3 bucket location.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 bucket location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 bucket location.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the S3 location that was described.", diff --git a/server/schema/resources/aws-datasync-locationsmb.json b/server/schema/resources/aws-datasync-locationsmb.json index 20179817..1f55d7c2 100644 --- a/server/schema/resources/aws-datasync-locationsmb.json +++ b/server/schema/resources/aws-datasync-locationsmb.json @@ -58,13 +58,13 @@ "description": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret, managed by DataSync.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" }, "KmsKeyArn": { "description": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for the customer-managed AWS KMS key used to encrypt the secret specified for SecretArn. DataSync provides this key to AWS Secrets Manager.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):kms:[a-z-0-9]+:[0-9]{12}:key/.*|)$ \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specifies configuration information for a DataSync-managed secret, such as a password or set of credentials that DataSync uses to access a specific transfer location, and a customer-managed AWS KMS key.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" @@ -78,13 +78,13 @@ "description": "Specifies the ARN for a customer created AWS Secrets Manager secret.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for a customer created AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" }, "SecretAccessRoleArn": { "description": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for the AWS Identity and Access Management role that DataSync uses to access the secret specified for SecretArn.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*|)$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -102,7 +102,7 @@ "description": "Specifies the ARN for an AWS Secrets Manager secret.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN for an AWS Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^(arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):secretsmanager:[a-z-0-9]+:[0-9]{12}:secret:.*|)$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -118,10 +118,10 @@ "items": { "type": "string", "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" }, "minItems": 1, - "maxItems": 4, + "maxItems": 8, "insertionOrder": false, "markdownDescription": "The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, @@ -176,7 +176,7 @@ "description": "The Amazon Resource Name (ARN) of the SMB location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the SMB location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the SMB location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the SMB location that was described.", @@ -240,7 +240,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -326,7 +326,7 @@ "description": "The Amazon Resource Name (ARN) of the SMB location that is created.", "type": "string", "maxLength": 128, - "markdownDescription": "The Amazon Resource Name (ARN) of the SMB location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Amazon Resource Name (ARN) of the SMB location that is created.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "LocationUri": { "description": "The URL of the SMB location that was described.", diff --git a/server/schema/resources/aws-datasync-task.json b/server/schema/resources/aws-datasync-task.json index 1d858df7..9a12651e 100644 --- a/server/schema/resources/aws-datasync-task.json +++ b/server/schema/resources/aws-datasync-task.json @@ -193,13 +193,13 @@ "description": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" }, "S3BucketArn": { "description": "Specifies the ARN of the S3 bucket where Datasync uploads your report.", "type": "string", "maxLength": 156, - "markdownDescription": "Specifies the ARN of the S3 bucket where Datasync uploads your report.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 156 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the ARN of the S3 bucket where Datasync uploads your report.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 156 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$ \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specifies the Amazon S3 bucket where DataSync uploads your task report.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -257,13 +257,13 @@ "description": "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.", "type": "string", "maxLength": 2048, - "markdownDescription": "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$ \nUpdate requires: No interruption\n" }, "S3BucketArn": { "description": "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.", "type": "string", "maxLength": 156, - "markdownDescription": "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 156 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 156 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$ \nUpdate requires: No interruption\n" }, "ManifestObjectVersionId": { "description": "Specifies the object version ID of the manifest that you want DataSync to use.", @@ -504,13 +504,13 @@ "description": "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.", "type": "string", "maxLength": 562, - "markdownDescription": "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 562 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 562 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$ \nUpdate requires: No interruption\n" }, "DestinationLocationArn": { "description": "The ARN of an AWS storage resource's location.", "type": "string", "maxLength": 128, - "markdownDescription": "The ARN of an AWS storage resource's location.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" + "markdownDescription": "The ARN of an AWS storage resource's location.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" }, "Name": { "description": "The name of a task. This value is a text reference that is used to identify the task in the console.", @@ -535,13 +535,13 @@ "description": "The ARN of the source location for the task.", "type": "string", "maxLength": 128, - "markdownDescription": "The ARN of the source location for the task.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" + "markdownDescription": "The ARN of the source location for the task.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" }, "TaskArn": { "description": "The ARN of the task.", "type": "string", "maxLength": 128, - "markdownDescription": "The ARN of the task.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The ARN of the task.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "TaskMode": { "description": "Specifies the task mode for the task.", @@ -575,7 +575,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "datasync:TagResource", @@ -669,7 +669,7 @@ "description": "The ARN of the task.", "type": "string", "maxLength": 128, - "markdownDescription": "The ARN of the task.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The ARN of the task.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "Status": { "description": "The status of the task that was described.", diff --git a/server/schema/resources/aws-datazone-connection.json b/server/schema/resources/aws-datazone-connection.json index 489671c1..64a73b9a 100644 --- a/server/schema/resources/aws-datazone-connection.json +++ b/server/schema/resources/aws-datazone-connection.json @@ -83,7 +83,7 @@ "AccessRole": { "type": "string", "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "AwsAccountId": { "type": "string", @@ -219,6 +219,19 @@ ], "additionalProperties": false }, + { + "type": "object", + "title": "AmazonQProperties", + "properties": { + "AmazonQProperties": { + "$ref": "#/definitions/AmazonQPropertiesInput" + } + }, + "required": [ + "AmazonQProperties" + ], + "additionalProperties": false + }, { "type": "object", "title": "SparkGlueProperties", @@ -231,6 +244,58 @@ "SparkGlueProperties" ], "additionalProperties": false + }, + { + "type": "object", + "title": "S3Properties", + "properties": { + "S3Properties": { + "$ref": "#/definitions/S3PropertiesInput" + } + }, + "required": [ + "S3Properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "MlflowProperties", + "properties": { + "MlflowProperties": { + "$ref": "#/definitions/MlflowPropertiesInput" + } + }, + "required": [ + "MlflowProperties" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "WorkflowsMwaaProperties", + "properties": { + "WorkflowsMwaaProperties": { + "$ref": "#/definitions/WorkflowsMwaaPropertiesInput" + } + }, + "required": [ + "WorkflowsMwaaProperties" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "WorkflowsServerlessProperties", + "properties": { + "WorkflowsServerlessProperties": { + "$ref": "#/definitions/WorkflowsServerlessPropertiesInput" + } + }, + "required": [ + "WorkflowsServerlessProperties" + ], + "additionalProperties": false } ] }, @@ -651,12 +716,12 @@ "ComputeArn": { "type": "string", "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-(cn|us-gov|iso(-[bef])?))?:(elasticmapreduce|emr-serverless):.* \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-(cn|us-gov|iso(-[bef])?))?:(elasticmapreduce|emr-serverless|emr-containers):.* \nUpdate requires: No interruption\n" }, "InstanceProfileArn": { "type": "string", "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "JavaVirtualEnv": { "type": "string", @@ -676,12 +741,17 @@ "RuntimeRole": { "type": "string", "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "TrustedCertificatesS3Uri": { "type": "string", "maxLength": 2048, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^s3://.+$ \nUpdate requires: No interruption\n" + }, + "ManagedEndpointArn": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -700,6 +770,32 @@ "additionalProperties": false, "markdownDescription": "Spark Glue Args.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "AmazonQPropertiesInput": { + "type": "object", + "description": "Amazon Q properties of the connection.", + "properties": { + "IsEnabled": { + "type": "boolean", + "description": "Specifies whether Amazon Q is enabled for the connection", + "markdownDescription": "Specifies whether Amazon Q is enabled for the connection\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AuthMode": { + "type": "string", + "maxLength": 128, + "minLength": 0, + "description": "The authentication mode of the connection's AmazonQ properties", + "markdownDescription": "The authentication mode of the connection's AmazonQ properties\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "ProfileArn": { + "type": "string", + "maxLength": 2048, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: arn:aws[a-z\\-]*:[a-z0-9\\-]+:[a-z0-9\\-]*:[0-9]*:.* \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Amazon Q properties of the connection.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "SparkGluePropertiesInput": { "type": "object", "description": "Spark Glue Properties Input.", @@ -785,6 +881,63 @@ ], "additionalProperties": false, "markdownDescription": "The username and password to be used for authentication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3PropertiesInput": { + "type": "object", + "description": "S3 Properties Input", + "properties": { + "S3Uri": { + "type": "string", + "description": "The Amazon S3 URI that's part of the Amazon S3 properties of a connection.", + "maxLength": 2048, + "minLength": 0, + "markdownDescription": "The Amazon S3 URI that's part of the Amazon S3 properties of a connection.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: s3://.+ \nUpdate requires: No interruption\n" + }, + "S3AccessGrantLocationId": { + "type": "string", + "description": "The Amazon S3 Access Grant location ID that's part of the Amazon S3 properties of a connection.", + "maxLength": 64, + "minLength": 0, + "markdownDescription": "The Amazon S3 Access Grant location ID that's part of the Amazon S3 properties of a connection.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 64 \nPattern: [a-zA-Z0-9\\-]+ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "S3Uri" + ], + "additionalProperties": false, + "markdownDescription": "S3 Properties Input\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MlflowPropertiesInput": { + "type": "object", + "description": "MLflow Properties Input", + "properties": { + "TrackingServerArn": { + "type": "string", + "description": "The ARN of the MLflow tracking server", + "markdownDescription": "The ARN of the MLflow tracking server\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "MLflow Properties Input\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkflowsMwaaPropertiesInput": { + "type": "object", + "description": "Workflows MWAA Properties Input", + "properties": { + "MwaaEnvironmentName": { + "type": "string", + "description": "The name of the MWAA environment.", + "markdownDescription": "The name of the MWAA environment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Workflows MWAA Properties Input\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkflowsServerlessPropertiesInput": { + "type": "object", + "description": "Workflows Serverless Properties Input", + "additionalProperties": false, + "markdownDescription": "Workflows Serverless Properties Input\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -820,6 +973,11 @@ "minLength": 1, "markdownDescription": "The ID of the domain unit in which the connection is created.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[a-z0-9_\\-]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, + "EnableTrustedIdentityPropagation": { + "type": "boolean", + "description": "Specifies whether the trusted identity propagation is enabled", + "markdownDescription": "Specifies whether the trusted identity propagation is enabled\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, "EnvironmentId": { "type": "string", "description": "The ID of the environment in which the connection is created.", @@ -828,7 +986,12 @@ "EnvironmentIdentifier": { "type": "string", "description": "The identifier of the environment in which the connection is created.", - "markdownDescription": "The identifier of the environment in which the connection is created.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The identifier of the environment in which the connection is created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ProjectIdentifier": { + "type": "string", + "description": "The identifier of the project in which the connection should be created. If ", + "markdownDescription": "The identifier of the project in which the connection should be created. If \n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "EnvironmentUserRole": { "type": "string", @@ -851,11 +1014,19 @@ }, "Type": { "$ref": "#/definitions/ConnectionType" + }, + "Scope": { + "type": "string", + "enum": [ + "DOMAIN", + "PROJECT" + ], + "description": "The scope of the connection.", + "markdownDescription": "The scope of the connection.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DOMAIN | PROJECT \nUpdate requires: Replacement\n" } }, "required": [ "DomainIdentifier", - "EnvironmentIdentifier", "Name" ], "readOnlyProperties": [ @@ -870,13 +1041,19 @@ "writeOnlyProperties": [ "/properties/AwsLocation", "/properties/DomainIdentifier", + "/properties/EnableTrustedIdentityPropagation", "/properties/EnvironmentIdentifier", - "/properties/Props" + "/properties/ProjectIdentifier", + "/properties/Props", + "/properties/Scope" ], "createOnlyProperties": [ "/properties/DomainIdentifier", + "/properties/EnableTrustedIdentityPropagation", "/properties/EnvironmentIdentifier", - "/properties/Name" + "/properties/ProjectIdentifier", + "/properties/Name", + "/properties/Scope" ], "primaryIdentifier": [ "/properties/DomainId", @@ -893,7 +1070,8 @@ "permissions": [ "datazone:CreateConnection", "datazone:GetConnection", - "datazone:DeleteConnection" + "datazone:DeleteConnection", + "datazone:ListEnvironments" ] }, "read": { diff --git a/server/schema/resources/aws-datazone-datasource.json b/server/schema/resources/aws-datazone-datasource.json index 5b9bd1a5..e6be864f 100644 --- a/server/schema/resources/aws-datazone-datasource.json +++ b/server/schema/resources/aws-datazone-datasource.json @@ -12,7 +12,7 @@ "DataAccessRole": { "type": "string", "description": "The data access role included in the configuration details of the AWS Glue data source.", - "markdownDescription": "The data access role included in the configuration details of the AWS Glue data source.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]{1,128}$ \nUpdate requires: No interruption\n" + "markdownDescription": "The data access role included in the configuration details of the AWS Glue data source.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "DataSourceConfigurationInput": { "description": "Specifies the configuration of the data source. It can be set to either glueRunConfiguration or redshiftRunConfiguration or sageMakerRunConfiguration.", diff --git a/server/schema/resources/aws-datazone-domain.json b/server/schema/resources/aws-datazone-domain.json index 4485df41..212e5b83 100644 --- a/server/schema/resources/aws-datazone-domain.json +++ b/server/schema/resources/aws-datazone-domain.json @@ -111,12 +111,12 @@ "DomainExecutionRole": { "type": "string", "description": "The domain execution role that is created when an Amazon DataZone domain is created. The domain execution role is created in the AWS account that houses the Amazon DataZone domain.", - "markdownDescription": "The domain execution role that is created when an Amazon DataZone domain is created. The domain execution role is created in the AWS account that houses the Amazon DataZone domain.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "The domain execution role that is created when an Amazon DataZone domain is created. The domain execution role is created in the AWS account that houses the Amazon DataZone domain.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "ServiceRole": { "type": "string", "description": "The service role of the domain that is created.", - "markdownDescription": "The service role of the domain that is created.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "The service role of the domain that is created.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "DomainVersion": { "type": "string", @@ -202,6 +202,9 @@ "primaryIdentifier": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/ServiceRole" + ], "additionalIdentifiers": [ [ "/properties/Name" diff --git a/server/schema/resources/aws-datazone-environment.json b/server/schema/resources/aws-datazone-environment.json index 9be6463c..c96ec3af 100644 --- a/server/schema/resources/aws-datazone-environment.json +++ b/server/schema/resources/aws-datazone-environment.json @@ -90,6 +90,21 @@ "description": "The identifier of the Amazon DataZone domain in which the environment would be created.", "markdownDescription": "The identifier of the Amazon DataZone domain in which the environment would be created.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^dzd[-_][a-zA-Z0-9_-]{1,36}$ \nUpdate requires: Replacement\n" }, + "EnvironmentBlueprintIdentifier": { + "type": "string", + "description": "The identifier of the environment blueprint.", + "markdownDescription": "The identifier of the environment blueprint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "DeploymentOrder": { + "type": "integer", + "description": "The deployment order for the environment.", + "markdownDescription": "The deployment order for the environment.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "EnvironmentConfigurationId": { + "type": "string", + "description": "The identifier of the environment configuration.", + "markdownDescription": "The identifier of the environment configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "EnvironmentBlueprintId": { "type": "string", "description": "The ID of the blueprint with which the Amazon DataZone environment was created.", @@ -132,7 +147,7 @@ "description": "The name of the environment.", "maxLength": 64, "minLength": 1, - "markdownDescription": "The name of the environment.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w -]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the environment.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" }, "ProjectId": { "type": "string", @@ -195,7 +210,10 @@ "/properties/DomainIdentifier", "/properties/EnvironmentAccountIdentifier", "/properties/EnvironmentAccountRegion", - "/properties/EnvironmentRoleArn" + "/properties/EnvironmentRoleArn", + "/properties/EnvironmentBlueprintIdentifier", + "/properties/DeploymentOrder", + "/properties/EnvironmentConfigurationId" ], "createOnlyProperties": [ "/properties/DomainIdentifier", @@ -203,7 +221,10 @@ "/properties/ProjectIdentifier", "/properties/UserParameters", "/properties/EnvironmentAccountIdentifier", - "/properties/EnvironmentAccountRegion" + "/properties/EnvironmentAccountRegion", + "/properties/EnvironmentBlueprintIdentifier", + "/properties/DeploymentOrder", + "/properties/EnvironmentConfigurationId" ], "primaryIdentifier": [ "/properties/DomainId", diff --git a/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json b/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json index 2c5898b0..1163085a 100644 --- a/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json +++ b/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json @@ -78,6 +78,7 @@ "/properties/DomainIdentifier", "/properties/EnvironmentBlueprintIdentifier", "/properties/EnvironmentRolePermissionBoundary", + "/properties/GlobalParameters", "/properties/ProvisioningConfigurations" ], "additionalProperties": false, @@ -117,7 +118,7 @@ }, "LocationRegistrationRole": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -149,6 +150,18 @@ } }, "properties": { + "GlobalParameters": { + "patternProperties": { + ".+": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "description": "Region-agnostic environment blueprint parameters.", + "additionalProperties": false, + "type": "object", + "markdownDescription": "Region-agnostic environment blueprint parameters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CreatedAt": { "format": "date-time", "type": "string", @@ -190,7 +203,7 @@ }, "ProvisioningRoleArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "DomainId": { "type": "string", @@ -213,7 +226,7 @@ }, "ManageAccessRoleArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" } }, "attributes": { diff --git a/server/schema/resources/aws-datazone-policygrant.json b/server/schema/resources/aws-datazone-policygrant.json index 0860b5de..1716446a 100644 --- a/server/schema/resources/aws-datazone-policygrant.json +++ b/server/schema/resources/aws-datazone-policygrant.json @@ -639,7 +639,9 @@ "create": { "permissions": [ "datazone:AddPolicyGrant", - "datazone:ListPolicyGrants" + "datazone:GetUserProfile", + "datazone:ListPolicyGrants", + "iam:GetUser" ] }, "read": { diff --git a/server/schema/resources/aws-datazone-project.json b/server/schema/resources/aws-datazone-project.json index 5da0445e..8bc054dd 100644 --- a/server/schema/resources/aws-datazone-project.json +++ b/server/schema/resources/aws-datazone-project.json @@ -163,6 +163,29 @@ }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceTag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\w \\.:/=+@-]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^[\\w \\.:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -250,6 +273,14 @@ "$ref": "#/definitions/EnvironmentConfigurationUserParameter" }, "markdownDescription": "The user parameters of the project.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ResourceTags": { + "description": "The resource tags of the project.", + "type": "array", + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "markdownDescription": "The resource tags of the project.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-datazone-projectprofile.json b/server/schema/resources/aws-datazone-projectprofile.json index c05c8b7c..4c4c4e13 100644 --- a/server/schema/resources/aws-datazone-projectprofile.json +++ b/server/schema/resources/aws-datazone-projectprofile.json @@ -49,7 +49,7 @@ "minLength": 1, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w -]+$ \nUpdate requires: No interruption\n" }, - "Id": { + "EnvironmentConfigurationId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_-]{1,36}$ \nUpdate requires: No interruption\n" }, @@ -178,6 +178,34 @@ "DISABLED" ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "ResourceTagParameter": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\w \\.:/=+@-]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^[\\w \\.:/=+@-]*$ \nUpdate requires: No interruption\n" + }, + "IsValueEditable": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value", + "IsValueEditable" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -243,6 +271,26 @@ }, "Status": { "$ref": "#/definitions/Status" + }, + "UseDefaultConfigurations": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "ProjectResourceTags": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceTagParameter" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowCustomProjectResourceTags": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ProjectResourceTagsDescription": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" } }, "required": [ @@ -256,14 +304,16 @@ "/properties/Id", "/properties/Identifier", "/properties/LastUpdatedAt", - "/properties/EnvironmentConfigurations/*/Id", + "/properties/EnvironmentConfigurations/*/EnvironmentConfigurationId", "/properties/EnvironmentConfigurations/*/ConfigurationParameters/ResolvedParameters" ], "writeOnlyProperties": [ - "/properties/DomainUnitIdentifier" + "/properties/DomainUnitIdentifier", + "/properties/UseDefaultConfigurations" ], "createOnlyProperties": [ - "/properties/DomainIdentifier" + "/properties/DomainIdentifier", + "/properties/UseDefaultConfigurations" ], "primaryIdentifier": [ "/properties/DomainIdentifier", @@ -280,6 +330,7 @@ "permissions": [ "datazone:CreateProjectProfile", "datazone:GetProjectProfile", + "datazone:ListEnvironmentBlueprints", "ssm:GetParameter" ] }, diff --git a/server/schema/resources/aws-deadline-farm.json b/server/schema/resources/aws-deadline-farm.json index 50c4ea36..a34b1c84 100644 --- a/server/schema/resources/aws-deadline-farm.json +++ b/server/schema/resources/aws-deadline-farm.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::Farm", - "description": "Definition of AWS::Deadline::Farm Resource Type", + "description": "Resource Type definition for AWS::Deadline::Farm", "definitions": { "Tag": { "description": "A key-value pair to associate with a resource.", @@ -47,6 +47,13 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^farm-[0-9a-f]{32}$ \nUpdate requires: No interruption\nRead only property: Yes" }, + "CostScaleFactor": { + "type": "number", + "default": 1, + "minimum": 0, + "maximum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, "KmsKeyArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z]*:kms:.*:key/.* \nUpdate requires: Replacement\n" diff --git a/server/schema/resources/aws-deadline-fleet.json b/server/schema/resources/aws-deadline-fleet.json index 5fe80b67..15548f77 100644 --- a/server/schema/resources/aws-deadline-fleet.json +++ b/server/schema/resources/aws-deadline-fleet.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::Fleet", - "description": "Definition of AWS::Deadline::Fleet Resource Type", + "description": "Resource Type definition for AWS::Deadline::Fleet", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "definitions": { "AcceleratorCountRange": { @@ -70,12 +70,40 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: x86_64 | arm64 \nUpdate requires: No interruption\n" }, + "CustomerManagedAutoScalingConfiguration": { + "type": "object", + "properties": { + "StandbyWorkerCount": { + "type": "integer", + "maximum": 2147483647, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "WorkerIdleDurationSeconds": { + "type": "integer", + "maximum": 2147483647, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ScaleOutWorkersPerMinute": { + "type": "integer", + "maximum": 2147483647, + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CustomerManagedFleetConfiguration": { "type": "object", "properties": { "Mode": { "$ref": "#/definitions/AutoScalingMode" }, + "AutoScalingConfiguration": { + "$ref": "#/definitions/CustomerManagedAutoScalingConfiguration" + }, "WorkerCapabilities": { "$ref": "#/definitions/CustomerManagedWorkerCapabilities" }, @@ -407,6 +435,31 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ServiceManagedEc2AutoScalingConfiguration": { + "type": "object", + "properties": { + "StandbyWorkerCount": { + "type": "integer", + "maximum": 2147483647, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "WorkerIdleDurationSeconds": { + "type": "integer", + "maximum": 86400, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ScaleOutWorkersPerMinute": { + "type": "integer", + "maximum": 2147483647, + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ServiceManagedEc2FleetConfiguration": { "type": "object", "properties": { @@ -422,6 +475,9 @@ "StorageProfileId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^sp-[0-9a-f]{32}$ \nUpdate requires: No interruption\n" + }, + "AutoScalingConfiguration": { + "$ref": "#/definitions/ServiceManagedEc2AutoScalingConfiguration" } }, "required": [ @@ -469,7 +525,9 @@ "type": "array", "items": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$ \nUpdate requires: No interruption\n" + "maxLength": 100, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: No interruption\n" }, "maxItems": 100, "minItems": 1, @@ -479,7 +537,9 @@ "type": "array", "items": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$ \nUpdate requires: No interruption\n" + "maxLength": 100, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: No interruption\n" }, "maxItems": 100, "minItems": 1, diff --git a/server/schema/resources/aws-deadline-licenseendpoint.json b/server/schema/resources/aws-deadline-licenseendpoint.json index 5069a81e..e7a6971b 100644 --- a/server/schema/resources/aws-deadline-licenseendpoint.json +++ b/server/schema/resources/aws-deadline-licenseendpoint.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::LicenseEndpoint", - "description": "Definition of AWS::Deadline::LicenseEndpoint Resource Type", + "description": "Resource Type definition for AWS::Deadline::LicenseEndpoint", "definitions": { "LicenseEndpointStatus": { "type": "string", diff --git a/server/schema/resources/aws-deadline-limit.json b/server/schema/resources/aws-deadline-limit.json index 87a61388..01211442 100644 --- a/server/schema/resources/aws-deadline-limit.json +++ b/server/schema/resources/aws-deadline-limit.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::Limit", - "description": "Definition of AWS::Deadline::Limit Resource Type", + "description": "Resource Type definition for AWS::Deadline::Limit", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "properties": { "AmountRequirementName": { diff --git a/server/schema/resources/aws-deadline-meteredproduct.json b/server/schema/resources/aws-deadline-meteredproduct.json index 1a3e9156..6a80d8ae 100644 --- a/server/schema/resources/aws-deadline-meteredproduct.json +++ b/server/schema/resources/aws-deadline-meteredproduct.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::MeteredProduct", - "description": "Definition of AWS::Deadline::MeteredProduct Resource Type", + "description": "Resource Type definition for AWS::Deadline::MeteredProduct", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "properties": { "LicenseEndpointId": { diff --git a/server/schema/resources/aws-deadline-monitor.json b/server/schema/resources/aws-deadline-monitor.json index 7c3a4b49..5ea351a7 100644 --- a/server/schema/resources/aws-deadline-monitor.json +++ b/server/schema/resources/aws-deadline-monitor.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::Monitor", - "description": "Definition of AWS::Deadline::Monitor Resource Type", + "description": "Resource Type definition for AWS::Deadline::Monitor", "definitions": { "Tag": { "description": "A key-value pair to associate with a resource.", @@ -44,6 +44,13 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: Replacement\n" }, + "IdentityCenterRegion": { + "type": "string", + "description": "The AWS region where IAM Identity Center is enabled. Required when Identity Center is in a different region than the monitor.", + "minLength": 1, + "maxLength": 25, + "markdownDescription": "The AWS region where IAM Identity Center is enabled. Required when Identity Center is in a different region than the monitor.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 25 \nPattern: ^[a-z0-9-]+$ \nUpdate requires: Replacement\n" + }, "MonitorId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^monitor-[0-9a-f]{32}$ \nUpdate requires: No interruption\nRead only property: Yes" @@ -89,7 +96,8 @@ "/properties/Arn" ], "createOnlyProperties": [ - "/properties/IdentityCenterInstanceArn" + "/properties/IdentityCenterInstanceArn", + "/properties/IdentityCenterRegion" ], "primaryIdentifier": [ "/properties/Arn" diff --git a/server/schema/resources/aws-deadline-queue.json b/server/schema/resources/aws-deadline-queue.json index 545b5918..83d8f814 100644 --- a/server/schema/resources/aws-deadline-queue.json +++ b/server/schema/resources/aws-deadline-queue.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::Queue", - "description": "Definition of AWS::Deadline::Queue Resource Type", + "description": "Resource Type definition for AWS::Deadline::Queue", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "definitions": { "DefaultQueueBudgetAction": { @@ -78,6 +78,25 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "PriorityBalancedSchedulingConfiguration": { + "type": "object", + "properties": { + "RenderingTaskBuffer": { + "type": "integer", + "default": 1, + "maximum": 1000, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PriorityFifoSchedulingConfiguration": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RunAs": { "type": "string", "enum": [ @@ -86,6 +105,143 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: QUEUE_CONFIGURED_USER | WORKER_AGENT_USER \nUpdate requires: No interruption\n" }, + "SchedulingConfiguration": { + "type": "object", + "oneOf": [ + { + "type": "object", + "title": "PriorityFifo", + "properties": { + "PriorityFifo": { + "$ref": "#/definitions/PriorityFifoSchedulingConfiguration" + } + }, + "required": [ + "PriorityFifo" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "PriorityBalanced", + "properties": { + "PriorityBalanced": { + "$ref": "#/definitions/PriorityBalancedSchedulingConfiguration" + } + }, + "required": [ + "PriorityBalanced" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "WeightedBalanced", + "properties": { + "WeightedBalanced": { + "$ref": "#/definitions/WeightedBalancedSchedulingConfiguration" + } + }, + "required": [ + "WeightedBalanced" + ], + "additionalProperties": false + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchedulingMaxPriorityOverride": { + "oneOf": [ + { + "type": "object", + "title": "AlwaysScheduleFirst", + "properties": { + "AlwaysScheduleFirst": { + "$ref": "#/definitions/SchedulingMaxPriorityOverrideAlwaysScheduleFirst" + } + }, + "required": [ + "AlwaysScheduleFirst" + ], + "additionalProperties": false + } + ] + }, + "SchedulingMaxPriorityOverrideAlwaysScheduleFirst": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchedulingMinPriorityOverride": { + "oneOf": [ + { + "type": "object", + "title": "AlwaysScheduleLast", + "properties": { + "AlwaysScheduleLast": { + "$ref": "#/definitions/SchedulingMinPriorityOverrideAlwaysScheduleLast" + } + }, + "required": [ + "AlwaysScheduleLast" + ], + "additionalProperties": false + } + ] + }, + "SchedulingMinPriorityOverrideAlwaysScheduleLast": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WeightedBalancedSchedulingConfiguration": { + "type": "object", + "properties": { + "PriorityWeight": { + "type": "number", + "default": 100.0, + "maximum": 10000, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "ErrorWeight": { + "type": "number", + "default": -10.0, + "maximum": 10000, + "minimum": -10000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "SubmissionTimeWeight": { + "type": "number", + "default": 3.0, + "maximum": 10000, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "RenderingTaskWeight": { + "type": "number", + "default": -100.0, + "maximum": 10000, + "minimum": -10000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "RenderingTaskBuffer": { + "type": "integer", + "default": 1, + "maximum": 1000, + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxPriorityOverride": { + "$ref": "#/definitions/SchedulingMaxPriorityOverride" + }, + "MinPriorityOverride": { + "$ref": "#/definitions/SchedulingMinPriorityOverride" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", @@ -199,6 +355,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:* \nUpdate requires: No interruption\nRead only property: Yes" }, + "SchedulingConfiguration": { + "$ref": "#/definitions/SchedulingConfiguration" + }, "Tags": { "type": "array", "maxItems": 50, diff --git a/server/schema/resources/aws-deadline-queueenvironment.json b/server/schema/resources/aws-deadline-queueenvironment.json index 002da704..6d16dbfc 100644 --- a/server/schema/resources/aws-deadline-queueenvironment.json +++ b/server/schema/resources/aws-deadline-queueenvironment.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::QueueEnvironment", - "description": "Definition of AWS::Deadline::QueueEnvironment Resource Type", + "description": "Resource Type definition for AWS::Deadline::QueueEnvironment", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "definitions": { "EnvironmentTemplateType": { diff --git a/server/schema/resources/aws-deadline-queuefleetassociation.json b/server/schema/resources/aws-deadline-queuefleetassociation.json index 455aff34..8cd60379 100644 --- a/server/schema/resources/aws-deadline-queuefleetassociation.json +++ b/server/schema/resources/aws-deadline-queuefleetassociation.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::QueueFleetAssociation", - "description": "Definition of AWS::Deadline::QueueFleetAssociation Resource Type", + "description": "Resource Type definition for AWS::Deadline::QueueFleetAssociation", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "properties": { "FarmId": { diff --git a/server/schema/resources/aws-deadline-queuelimitassociation.json b/server/schema/resources/aws-deadline-queuelimitassociation.json index b51cc2a2..e65d02a4 100644 --- a/server/schema/resources/aws-deadline-queuelimitassociation.json +++ b/server/schema/resources/aws-deadline-queuelimitassociation.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::QueueLimitAssociation", - "description": "Definition of AWS::Deadline::QueueLimitAssociation Resource Type", + "description": "Resource Type definition for AWS::Deadline::QueueLimitAssociation", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "properties": { "FarmId": { diff --git a/server/schema/resources/aws-deadline-storageprofile.json b/server/schema/resources/aws-deadline-storageprofile.json index 3e7549f7..5394459b 100644 --- a/server/schema/resources/aws-deadline-storageprofile.json +++ b/server/schema/resources/aws-deadline-storageprofile.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Deadline::StorageProfile", - "description": "Definition of AWS::Deadline::StorageProfile Resource Type", + "description": "Resource Type definition for AWS::Deadline::StorageProfile", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", "definitions": { "FileSystemLocation": { diff --git a/server/schema/resources/aws-devicefarm-project.json b/server/schema/resources/aws-devicefarm-project.json index 83f87c9b..0e05846d 100644 --- a/server/schema/resources/aws-devicefarm-project.json +++ b/server/schema/resources/aws-devicefarm-project.json @@ -23,6 +23,23 @@ "VpcConfig": { "$ref": "#/definitions/VpcConfig" }, + "ExecutionRoleArn": { + "type": "string", + "minLength": 20, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[^:]*:iam::[0-9]{12}:role/.+ \nUpdate requires: No interruption\n" + }, + "EnvironmentVariables": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 1, + "maxItems": 32, + "items": { + "$ref": "#/definitions/EnvironmentVariable" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Tags": { "type": "array", "uniqueItems": false, @@ -82,6 +99,30 @@ ], "markdownDescription": "The VPC security groups and subnets that are attached to a project\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "EnvironmentVariable": { + "type": "object", + "additionalProperties": false, + "insertionOrder": false, + "properties": { + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: [a-zA-Z_][a-zA-Z_0-9]* \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "type": "object", "additionalProperties": false, @@ -140,7 +181,8 @@ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:CreateNetworkInterface", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole" ] }, "read": { @@ -160,7 +202,8 @@ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:CreateNetworkInterface", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole" ] }, "delete": { diff --git a/server/schema/resources/aws-devopsagent-agentspace.json b/server/schema/resources/aws-devopsagent-agentspace.json new file mode 100644 index 00000000..a1f84e0c --- /dev/null +++ b/server/schema/resources/aws-devopsagent-agentspace.json @@ -0,0 +1,314 @@ +{ + "typeName": "AWS::DevOpsAgent::AgentSpace", + "description": "Resource Type definition for AWS::DevOpsAgent::AgentSpace", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OperatorApp": { + "type": "object", + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/IamAuthConfiguration" + }, + "Idc": { + "$ref": "#/definitions/IdcAuthConfiguration" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IamAuthConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "OperatorAppRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OperatorAppRoleArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IdcAuthConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "OperatorAppRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "IdcInstanceArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "IdcApplicationArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OperatorAppRoleArn", + "IdcInstanceArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AgentSpaceId": { + "description": "The unique identifier of the AgentSpace", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The unique identifier of the AgentSpace\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the AgentSpace.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The name of the AgentSpace.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the AgentSpace.", + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "The description of the AgentSpace.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "description": "The ARN of the KMS key to use for encryption.", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The ARN of the KMS key to use for encryption.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: Replacement\n" + }, + "OperatorApp": { + "$ref": "#/definitions/OperatorApp" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "description": "The timestamp when the resource was created.", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the resource was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "description": "The timestamp when the resource was last updated.", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the resource was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the AgentSpace.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the AgentSpace.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aidevops:TagResource", + "aidevops:UntagResource", + "aidevops:ListTagsForResource" + ] + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/AgentSpaceId", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Arn", + "/properties/OperatorApp/Iam/CreatedAt", + "/properties/OperatorApp/Iam/UpdatedAt", + "/properties/OperatorApp/Idc/IdcApplicationArn", + "/properties/OperatorApp/Idc/CreatedAt", + "/properties/OperatorApp/Idc/UpdatedAt" + ], + "createOnlyProperties": [ + "/properties/KmsKeyArn" + ], + "primaryIdentifier": [ + "/properties/AgentSpaceId" + ], + "handlers": { + "create": { + "permissions": [ + "aidevops:CreateAgentSpace", + "aidevops:GetAgentSpace", + "aidevops:EnableOperatorApp", + "aidevops:GetOperatorAppTeams", + "aidevops:TagResource", + "aidevops:ListTagsForResource", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyPair", + "kms:GenerateDataKeyPairWithoutPlaintext", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + "kms:RetireGrant", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:PutApplicationAccessScope", + "sso:PutApplicationGrant", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationAssignmentConfiguration", + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationAuthenticationMethod", + "sso:DeleteApplicationGrant" + ] + }, + "read": { + "permissions": [ + "aidevops:GetAgentSpace", + "aidevops:GetOperatorAppTeams", + "aidevops:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "aidevops:UpdateAgentSpace", + "aidevops:GetAgentSpace", + "aidevops:EnableOperatorApp", + "aidevops:DisableOperatorApp", + "aidevops:GetOperatorAppTeams", + "aidevops:TagResource", + "aidevops:UntagResource", + "aidevops:ListTagsForResource", + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyPair", + "kms:GenerateDataKeyPairWithoutPlaintext", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + "kms:RetireGrant", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:PutApplicationAccessScope", + "sso:PutApplicationGrant", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationAssignmentConfiguration", + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationAuthenticationMethod", + "sso:DeleteApplicationGrant" + ] + }, + "delete": { + "permissions": [ + "aidevops:DeleteAgentSpace", + "aidevops:GetAgentSpace", + "aidevops:DisableOperatorApp", + "sso:DeleteApplication", + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationAuthenticationMethod", + "sso:DeleteApplicationGrant" + ] + }, + "list": { + "permissions": [ + "aidevops:ListAgentSpaces", + "kms:Decrypt" + ] + } + }, + "attributes": { + "AgentSpaceId": { + "description": "The unique identifier of the AgentSpace", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The unique identifier of the AgentSpace\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The timestamp when the resource was created.", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the resource was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "description": "The timestamp when the resource was last updated.", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the resource was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the AgentSpace.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the AgentSpace.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-devopsagent-association.json b/server/schema/resources/aws-devopsagent-association.json new file mode 100644 index 00000000..b420ea66 --- /dev/null +++ b/server/schema/resources/aws-devopsagent-association.json @@ -0,0 +1,881 @@ +{ + "typeName": "AWS::DevOpsAgent::Association", + "description": "Resource Type definition for AWS::DevOpsAgent::Association defining how the AgentSpace interacts with external services like GitHub, Slack, AWS accounts, and others.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "AssociationId": { + "description": "The unique identifier of the association", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The unique identifier of the association\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "ServiceId": { + "description": "The identifier for the associated service. For SourceAws and Aws configurations, this must be 'aws'. For all other service types, this is a UUID generated from the RegisterService command", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The identifier for the associated service. For SourceAws and Aws configurations, this must be 'aws'. For all other service types, this is a UUID generated from the RegisterService command\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "AgentSpaceId": { + "description": "The unique identifier of the AgentSpace", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The unique identifier of the AgentSpace\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "ServiceConfiguration": { + "description": "The configuration that directs how AgentSpace interacts with the given service", + "type": "object", + "oneOf": [ + { + "properties": { + "SourceAws": { + "$ref": "#/definitions/SourceAwsConfiguration" + } + }, + "required": [ + "SourceAws" + ], + "additionalProperties": false + }, + { + "properties": { + "Aws": { + "$ref": "#/definitions/AWSConfiguration" + } + }, + "required": [ + "Aws" + ], + "additionalProperties": false + }, + { + "properties": { + "GitHub": { + "$ref": "#/definitions/GitHubConfiguration" + } + }, + "required": [ + "GitHub" + ], + "additionalProperties": false + }, + { + "properties": { + "Slack": { + "$ref": "#/definitions/SlackConfiguration" + } + }, + "required": [ + "Slack" + ], + "additionalProperties": false + }, + { + "properties": { + "Dynatrace": { + "$ref": "#/definitions/DynatraceConfiguration" + } + }, + "required": [ + "Dynatrace" + ], + "additionalProperties": false + }, + { + "properties": { + "ServiceNow": { + "$ref": "#/definitions/ServiceNowConfiguration" + } + }, + "required": [ + "ServiceNow" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServer": { + "$ref": "#/definitions/MCPServerConfiguration" + } + }, + "required": [ + "MCPServer" + ], + "additionalProperties": false + }, + { + "properties": { + "GitLab": { + "$ref": "#/definitions/GitLabConfiguration" + } + }, + "required": [ + "GitLab" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerDatadog": { + "$ref": "#/definitions/MCPServerDatadogConfiguration" + } + }, + "required": [ + "MCPServerDatadog" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerSplunk": { + "$ref": "#/definitions/MCPServerSplunkConfiguration" + } + }, + "required": [ + "MCPServerSplunk" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerNewRelic": { + "$ref": "#/definitions/MCPServerNewRelicConfiguration" + } + }, + "required": [ + "MCPServerNewRelic" + ], + "additionalProperties": false + }, + { + "properties": { + "PagerDuty": { + "$ref": "#/definitions/PagerDutyConfiguration" + } + }, + "required": [ + "PagerDuty" + ], + "additionalProperties": false + }, + { + "properties": { + "EventChannel": { + "$ref": "#/definitions/EventChannelConfiguration" + } + }, + "required": [ + "EventChannel" + ], + "additionalProperties": false + }, + { + "properties": { + "Azure": { + "$ref": "#/definitions/AzureConfiguration" + } + }, + "required": [ + "Azure" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerSigV4": { + "$ref": "#/definitions/MCPServerSigV4Configuration" + } + }, + "required": [ + "MCPServerSigV4" + ], + "additionalProperties": false + } + ], + "markdownDescription": "The configuration that directs how AgentSpace interacts with the given service\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceAwsConfiguration": { + "description": "AWS association for 'source' account", + "type": "object", + "properties": { + "AccountId": { + "description": "AWS Account Id corresponding to provided resources", + "type": "string", + "markdownDescription": "AWS Account Id corresponding to provided resources\n\n---\n\nRequired: Yes \nType: String \nPattern: \\d{12} \nUpdate requires: No interruption\n" + }, + "AccountType": { + "description": "Account Type 'source' for DevOpsAgent monitoring", + "type": "string", + "enum": [ + "source" + ], + "markdownDescription": "Account Type 'source' for DevOpsAgent monitoring\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: source \nUpdate requires: No interruption\n" + }, + "AssumableRoleArn": { + "description": "Role ARN to be assumed by DevOpsAgent to operate on behalf of customer", + "type": "string", + "markdownDescription": "Role ARN to be assumed by DevOpsAgent to operate on behalf of customer\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Resources": { + "$ref": "#/definitions/AWSResourceList" + }, + "Tags": { + "$ref": "#/definitions/AWSTagList" + } + }, + "required": [ + "AccountId", + "AccountType", + "AssumableRoleArn" + ], + "additionalProperties": false, + "markdownDescription": "AWS association for 'source' account\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AWSConfiguration": { + "description": "AWS association for 'monitor' account", + "type": "object", + "properties": { + "AccountId": { + "description": "AWS Account Id corresponding to provided resources", + "type": "string", + "markdownDescription": "AWS Account Id corresponding to provided resources\n\n---\n\nRequired: Yes \nType: String \nPattern: \\d{12} \nUpdate requires: No interruption\n" + }, + "AccountType": { + "description": "Account Type 'monitor' for DevOpsAgent monitoring", + "type": "string", + "enum": [ + "monitor" + ], + "markdownDescription": "Account Type 'monitor' for DevOpsAgent monitoring\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: monitor \nUpdate requires: No interruption\n" + }, + "AssumableRoleArn": { + "description": "Role ARN to be assumed by DevOpsAgent to operate on behalf of customer", + "type": "string", + "markdownDescription": "Role ARN to be assumed by DevOpsAgent to operate on behalf of customer\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Resources": { + "$ref": "#/definitions/AWSResourceList" + }, + "Tags": { + "$ref": "#/definitions/AWSTagList" + } + }, + "required": [ + "AccountId", + "AccountType", + "AssumableRoleArn" + ], + "additionalProperties": false, + "markdownDescription": "AWS association for 'monitor' account\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GitHubConfiguration": { + "description": "GitHub repository integration configuration", + "type": "object", + "properties": { + "RepoName": { + "description": "Associated Github repo name", + "type": "string", + "markdownDescription": "Associated Github repo name\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "RepoId": { + "description": "Associated Github repo ID", + "type": "string", + "markdownDescription": "Associated Github repo ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Owner": { + "description": "Repository owner", + "type": "string", + "markdownDescription": "Repository owner\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "OwnerType": { + "description": "Type of repository owner", + "type": "string", + "enum": [ + "organization", + "user" + ], + "markdownDescription": "Type of repository owner\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: organization | user \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RepoName", + "RepoId", + "Owner", + "OwnerType" + ], + "additionalProperties": false, + "markdownDescription": "GitHub repository integration configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SlackConfiguration": { + "description": "Slack workspace integration configuration", + "type": "object", + "properties": { + "WorkspaceId": { + "description": "Associated Slack workspace ID", + "type": "string", + "markdownDescription": "Associated Slack workspace ID\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[TE][A-Z0-9]+$ \nUpdate requires: No interruption\n" + }, + "WorkspaceName": { + "description": "Associated Slack workspace name", + "type": "string", + "markdownDescription": "Associated Slack workspace name\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "TransmissionTarget": { + "$ref": "#/definitions/SlackTransmissionTarget" + } + }, + "required": [ + "WorkspaceId", + "WorkspaceName", + "TransmissionTarget" + ], + "additionalProperties": false, + "markdownDescription": "Slack workspace integration configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SlackTransmissionTarget": { + "description": "Transmission targets for agent notifications", + "type": "object", + "properties": { + "IncidentResponseTarget": { + "description": "Destination for IncidentResponse agent.", + "$ref": "#/definitions/SlackChannel", + "markdownDescription": "Destination for IncidentResponse agent.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IncidentResponseTarget" + ], + "additionalProperties": false, + "markdownDescription": "Transmission targets for agent notifications\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SlackChannel": { + "description": "Slack channel configuration", + "type": "object", + "properties": { + "ChannelName": { + "description": "Slack channel name", + "type": "string", + "markdownDescription": "Slack channel name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ChannelId": { + "description": "Slack channel ID", + "type": "string", + "minLength": 8, + "maxLength": 16, + "markdownDescription": "Slack channel ID\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 8 \nMaximum Length: 16 \nPattern: ^[CGD][A-Z0-9]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ChannelId" + ], + "additionalProperties": false, + "markdownDescription": "Slack channel configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DynatraceConfiguration": { + "description": "Dynatrace monitoring configuration", + "type": "object", + "properties": { + "EnvId": { + "description": "Dynatrace environment id", + "type": "string", + "markdownDescription": "Dynatrace environment id\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Resources": { + "description": "List of Dynatrace resources to monitor", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of Dynatrace resources to monitor\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EnvId" + ], + "additionalProperties": false, + "markdownDescription": "Dynatrace monitoring configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ServiceNowConfiguration": { + "description": "ServiceNow integration configuration", + "type": "object", + "properties": { + "InstanceId": { + "description": "ServiceNow instance ID", + "type": "string", + "markdownDescription": "ServiceNow instance ID\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "ServiceNow integration configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerConfiguration": { + "description": "MCP server configuration", + "type": "object", + "properties": { + "Name": { + "description": "The name of the MCP server", + "type": "string", + "markdownDescription": "The name of the MCP server\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Tools": { + "description": "List of MCP tools that can be used with the association", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of MCP tools that can be used with the association\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the MCP server", + "type": "string", + "markdownDescription": "The description of the MCP server\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Endpoint", + "Tools" + ], + "additionalProperties": false, + "markdownDescription": "MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerDatadogConfiguration": { + "description": "Datadog MCP server configuration", + "type": "object", + "properties": { + "Name": { + "description": "The name of the MCP server", + "type": "string", + "markdownDescription": "The name of the MCP server\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the MCP server", + "type": "string", + "markdownDescription": "The description of the MCP server\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Endpoint" + ], + "additionalProperties": false, + "markdownDescription": "Datadog MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerSplunkConfiguration": { + "description": "Splunk MCP server configuration", + "type": "object", + "properties": { + "Name": { + "description": "The name of the MCP server", + "type": "string", + "markdownDescription": "The name of the MCP server\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "The description of the MCP server", + "type": "string", + "markdownDescription": "The description of the MCP server\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Endpoint" + ], + "additionalProperties": false, + "markdownDescription": "Splunk MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AWSResource": { + "description": "AWS resource definition", + "type": "object", + "properties": { + "ResourceType": { + "description": "Resource type", + "type": "string", + "enum": [ + "AWS::CloudFormation::Stack", + "AWS::ECR::Repository", + "AWS::S3::Bucket", + "AWS::S3::Object" + ], + "markdownDescription": "Resource type\n\n---\n\nRequired: No \nType: String \nAllowed Values: AWS::CloudFormation::Stack | AWS::ECR::Repository | AWS::S3::Bucket | AWS::S3::Object \nUpdate requires: No interruption\n" + }, + "ResourceArn": { + "description": "The Amazon Resource Name (ARN) of the resource", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the resource\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceMetadata": { + "description": "Additional metadata for the resource", + "type": "object", + "markdownDescription": "Additional metadata for the resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ResourceArn" + ], + "additionalProperties": false, + "markdownDescription": "AWS resource definition\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AWSResourceList": { + "description": "List of AWS resources", + "type": "array", + "items": { + "$ref": "#/definitions/AWSResource" + }, + "markdownDescription": "List of AWS resources\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AWSTagList": { + "description": "List of AWS tags as key-value pairs", + "type": "array", + "items": { + "$ref": "#/definitions/KeyValuePair" + }, + "markdownDescription": "List of AWS tags as key-value pairs\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "KeyValuePair": { + "description": "A key-value pair for tags", + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair for tags\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GitLabConfiguration": { + "description": "GitLab project integration configuration", + "type": "object", + "properties": { + "ProjectId": { + "description": "GitLab numeric project ID", + "type": "string", + "markdownDescription": "GitLab numeric project ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ProjectPath": { + "description": "Full GitLab project path (e.g., namespace/project-name)", + "type": "string", + "markdownDescription": "Full GitLab project path (e.g., namespace/project-name)\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "InstanceIdentifier": { + "description": "GitLab instance identifier", + "type": "string", + "markdownDescription": "GitLab instance identifier\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ProjectId", + "ProjectPath" + ], + "additionalProperties": false, + "markdownDescription": "GitLab project integration configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerNewRelicConfiguration": { + "description": "NewRelic MCP server configuration", + "type": "object", + "properties": { + "AccountId": { + "description": "New Relic Account ID", + "type": "string", + "minLength": 6, + "markdownDescription": "New Relic Account ID\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 6 \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL (e.g., https://mcp.newrelic.com/mcp/)", + "type": "string", + "markdownDescription": "MCP server endpoint URL (e.g., https://mcp.newrelic.com/mcp/)\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AccountId", + "Endpoint" + ], + "additionalProperties": false, + "markdownDescription": "NewRelic MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PagerDutyConfiguration": { + "description": "PagerDuty integration configuration", + "type": "object", + "properties": { + "Services": { + "description": "List of PagerDuty service IDs available for the association", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of PagerDuty service IDs available for the association\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomerEmail": { + "description": "Email to be used in PagerDuty API header", + "type": "string", + "markdownDescription": "Email to be used in PagerDuty API header\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Services", + "CustomerEmail" + ], + "additionalProperties": false, + "markdownDescription": "PagerDuty integration configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EventChannelConfiguration": { + "description": "EventChannelconfiguration", + "type": "object", + "properties": { + "EnableWebhookUpdates": { + "description": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service", + "type": "boolean", + "markdownDescription": "When set to true, enables the Agent Space to create and update webhooks for receiving notifications and events from the service\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "EventChannelconfiguration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AzureConfiguration": { + "description": "Azure subscription integration configuration", + "type": "object", + "properties": { + "SubscriptionId": { + "description": "Azure subscription ID corresponding to provided resources", + "type": "string", + "markdownDescription": "Azure subscription ID corresponding to provided resources\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SubscriptionId" + ], + "additionalProperties": false, + "markdownDescription": "Azure subscription integration configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerSigV4Configuration": { + "description": "SigV4-authenticated MCP server configuration", + "type": "object", + "properties": { + "Tools": { + "description": "List of MCP tools available for the association", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of MCP tools available for the association\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Tools" + ], + "additionalProperties": false, + "markdownDescription": "SigV4-authenticated MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AgentSpaceId": { + "description": "The unique identifier of the AgentSpace", + "$ref": "#/definitions/AgentSpaceId", + "markdownDescription": "The unique identifier of the AgentSpace\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "AssociationId": { + "description": "The unique identifier of the association", + "$ref": "#/definitions/AssociationId", + "markdownDescription": "The unique identifier of the association\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ServiceId": { + "description": "The identifier for the associated service", + "$ref": "#/definitions/ServiceId", + "markdownDescription": "The identifier for the associated service\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Configuration": { + "description": "The configuration that directs how AgentSpace interacts with the given service", + "$ref": "#/definitions/ServiceConfiguration", + "markdownDescription": "The configuration that directs how AgentSpace interacts with the given service\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "description": "The timestamp when the association was created", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the association was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "description": "The timestamp when the association was last updated", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the association was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LinkedAssociationIds": { + "description": "Set of linked association IDs for parent-child relationships", + "type": "array", + "items": { + "$ref": "#/definitions/AssociationId" + }, + "markdownDescription": "Set of linked association IDs for parent-child relationships\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false + }, + "required": [ + "AgentSpaceId", + "ServiceId", + "Configuration" + ], + "createOnlyProperties": [ + "/properties/AgentSpaceId" + ], + "readOnlyProperties": [ + "/properties/AssociationId", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "writeOnlyProperties": [ + "/properties/Configuration/Dynatrace/EnableWebhookUpdates", + "/properties/Configuration/ServiceNow/EnableWebhookUpdates", + "/properties/Configuration/MCPServer/EnableWebhookUpdates", + "/properties/Configuration/MCPServerDatadog/EnableWebhookUpdates", + "/properties/Configuration/MCPServerSplunk/EnableWebhookUpdates", + "/properties/Configuration/GitLab/EnableWebhookUpdates", + "/properties/Configuration/PagerDuty/EnableWebhookUpdates", + "/properties/Configuration/EventChannel/EnableWebhookUpdates", + "/properties/LinkedAssociationIds" + ], + "primaryIdentifier": [ + "/properties/AgentSpaceId", + "/properties/AssociationId" + ], + "handlers": { + "create": { + "permissions": [ + "aidevops:AssociateService", + "aidevops:GetAgentSpace", + "aidevops:ListAssociations", + "aidevops:GetAssociation", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "aidevops:GetAssociation", + "aidevops:ListAssociations", + "aidevops:GetAgentSpace" + ] + }, + "update": { + "permissions": [ + "aidevops:UpdateAssociation", + "aidevops:ListAssociations", + "aidevops:GetAgentSpace", + "aidevops:GetAssociation", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "aidevops:DisassociateService", + "aidevops:GetAgentSpace", + "aidevops:GetAssociation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AgentSpaceId": { + "$ref": "resource-schema.json#/properties/AgentSpaceId" + } + }, + "required": [ + "AgentSpaceId" + ] + }, + "permissions": [ + "aidevops:ListAssociations", + "aidevops:GetAgentSpace" + ] + } + }, + "attributes": { + "AssociationId": { + "description": "The unique identifier of the association", + "$ref": "#/definitions/AssociationId", + "markdownDescription": "The unique identifier of the association\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The timestamp when the association was created", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the association was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "description": "The timestamp when the association was last updated", + "type": "string", + "format": "date-time", + "markdownDescription": "The timestamp when the association was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-devopsagent-privateconnection.json b/server/schema/resources/aws-devopsagent-privateconnection.json new file mode 100644 index 00000000..9b4dad4b --- /dev/null +++ b/server/schema/resources/aws-devopsagent-privateconnection.json @@ -0,0 +1,322 @@ +{ + "typeName": "AWS::DevOpsAgent::PrivateConnection", + "description": "Resource Type definition for AWS::DevOpsAgent::PrivateConnection", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ServiceManagedMode": { + "description": "Configuration for a service-managed Private Connection.", + "type": "object", + "additionalProperties": false, + "properties": { + "HostAddress": { + "description": "IP address or DNS name of the target resource.", + "type": "string", + "minLength": 3, + "maxLength": 255, + "markdownDescription": "IP address or DNS name of the target resource.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 255 \nPattern: ^[a-zA-Z0-9.:\\-]+$ \nUpdate requires: No interruption\n" + }, + "VpcId": { + "description": "VPC to create the service-managed Resource Gateway in.", + "type": "string", + "minLength": 5, + "maxLength": 50, + "markdownDescription": "VPC to create the service-managed Resource Gateway in.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nPattern: ^vpc-(([0-9a-z]{8})|([0-9a-z]{17}))$ \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "description": "Subnets that the service-managed Resource Gateway will span.", + "type": "array", + "items": { + "type": "string", + "minLength": 15, + "maxLength": 24, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 15 \nMaximum Length: 24 \nPattern: ^subnet-(([0-9a-z]{8})|([0-9a-z]{17}))$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 20, + "markdownDescription": "Subnets that the service-managed Resource Gateway will span.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "description": "Security groups to attach to the service-managed Resource Gateway.", + "type": "array", + "items": { + "type": "string", + "minLength": 11, + "maxLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 11 \nMaximum Length: 20 \nPattern: ^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 5, + "markdownDescription": "Security groups to attach to the service-managed Resource Gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IpAddressType": { + "description": "IP address type of the service-managed Resource Gateway.", + "type": "string", + "enum": [ + "IPV4", + "IPV6", + "DUAL_STACK" + ], + "markdownDescription": "IP address type of the service-managed Resource Gateway.\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | IPV6 | DUAL_STACK \nUpdate requires: No interruption\n" + }, + "Ipv4AddressesPerEni": { + "description": "Number of IPv4 addresses in each ENI for the service-managed Resource Gateway.", + "type": "integer", + "minimum": 1, + "maximum": 62, + "markdownDescription": "Number of IPv4 addresses in each ENI for the service-managed Resource Gateway.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "PortRanges": { + "description": "TCP port ranges that a consumer can use to access the resource.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^((\\d{1,5}\\-\\d{1,5})|(\\d+))$ \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 11, + "markdownDescription": "TCP port ranges that a consumer can use to access the resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "HostAddress", + "VpcId" + ], + "markdownDescription": "Configuration for a service-managed Private Connection.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SelfManagedMode": { + "description": "Configuration for a self-managed Private Connection.", + "type": "object", + "additionalProperties": false, + "properties": { + "ResourceConfigurationId": { + "description": "The ARN of the Resource Configuration.", + "type": "string", + "minLength": 20, + "maxLength": 2048, + "markdownDescription": "The ARN of the Resource Configuration.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ResourceConfigurationId" + ], + "markdownDescription": "Configuration for a self-managed Private Connection.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConnectionConfiguration": { + "description": "The connection configuration, either SelfManaged or ServiceManaged.", + "type": "object", + "oneOf": [ + { + "title": "SelfManaged", + "properties": { + "SelfManaged": { + "$ref": "#/definitions/SelfManagedMode" + } + }, + "required": [ + "SelfManaged" + ], + "additionalProperties": false + }, + { + "title": "ServiceManaged", + "properties": { + "ServiceManaged": { + "$ref": "#/definitions/ServiceManagedMode" + } + }, + "required": [ + "ServiceManaged" + ], + "additionalProperties": false + } + ], + "markdownDescription": "The connection configuration, either SelfManaged or ServiceManaged.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "description": "Unique name for this Private Connection within the account.", + "type": "string", + "minLength": 3, + "maxLength": 30, + "markdownDescription": "Unique name for this Private Connection within the account.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 30 \nPattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ \nUpdate requires: Replacement\n" + }, + "ConnectionConfiguration": { + "description": "The connection configuration for the Private Connection.", + "$ref": "#/definitions/ConnectionConfiguration", + "markdownDescription": "The connection configuration for the Private Connection.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "Status": { + "description": "The status of the Private Connection.", + "type": "string", + "enum": [ + "ACTIVE", + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_FAILED" + ], + "markdownDescription": "The status of the Private Connection.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | CREATE_IN_PROGRESS | CREATE_FAILED | DELETE_IN_PROGRESS | DELETE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CertificateExpiryTime": { + "description": "The expiry time of the certificate associated with the Private Connection.", + "type": "string", + "format": "date-time", + "markdownDescription": "The expiry time of the certificate associated with the Private Connection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Private Connection.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Private Connection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Certificate": { + "description": "Certificate for the Private Connection.", + "type": "string", + "minLength": 1, + "maxLength": 32768, + "markdownDescription": "Certificate for the Private Connection.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 32768 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aidevops:TagResource", + "aidevops:UntagResource", + "aidevops:ListTagsForResource" + ] + }, + "required": [ + "Name", + "ConnectionConfiguration" + ], + "readOnlyProperties": [ + "/properties/Status", + "/properties/CertificateExpiryTime", + "/properties/Arn" + ], + "writeOnlyProperties": [ + "/properties/Certificate", + "/properties/ConnectionConfiguration/ServiceManaged/SubnetIds", + "/properties/ConnectionConfiguration/ServiceManaged/SecurityGroupIds", + "/properties/ConnectionConfiguration/ServiceManaged/IpAddressType", + "/properties/ConnectionConfiguration/ServiceManaged/Ipv4AddressesPerEni", + "/properties/ConnectionConfiguration/ServiceManaged/PortRanges" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/ConnectionConfiguration" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "aidevops:CreatePrivateConnection", + "aidevops:DescribePrivateConnection", + "aidevops:TagResource", + "aidevops:ListTagsForResource", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "vpc-lattice:AssociateViaService", + "vpc-lattice:AssociateViaAWSService", + "vpc-lattice:GetResourceConfiguration", + "vpc-lattice:CreateServiceNetworkResourceAssociation" + ], + "timeoutInMinutes": 15 + }, + "read": { + "permissions": [ + "aidevops:DescribePrivateConnection", + "aidevops:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "aidevops:UpdatePrivateConnectionCertificate", + "aidevops:DescribePrivateConnection", + "aidevops:TagResource", + "aidevops:UntagResource", + "aidevops:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "aidevops:DeletePrivateConnection", + "aidevops:DescribePrivateConnection" + ], + "timeoutInMinutes": 15 + }, + "list": { + "permissions": [ + "aidevops:ListPrivateConnections" + ] + } + }, + "attributes": { + "Status": { + "description": "The status of the Private Connection.", + "type": "string", + "enum": [ + "ACTIVE", + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_FAILED" + ], + "markdownDescription": "The status of the Private Connection.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | CREATE_IN_PROGRESS | CREATE_FAILED | DELETE_IN_PROGRESS | DELETE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CertificateExpiryTime": { + "description": "The expiry time of the certificate associated with the Private Connection.", + "type": "string", + "format": "date-time", + "markdownDescription": "The expiry time of the certificate associated with the Private Connection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Private Connection.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Private Connection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-devopsagent-service.json b/server/schema/resources/aws-devopsagent-service.json new file mode 100644 index 00000000..5c0a8299 --- /dev/null +++ b/server/schema/resources/aws-devopsagent-service.json @@ -0,0 +1,1257 @@ +{ + "typeName": "AWS::DevOpsAgent::Service", + "description": "The AWS::DevOpsAgent::Service resource registers external services (like Dynatrace, MCP servers, GitLab) for integration with DevOpsAgent.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "ServiceId": { + "description": "The unique identifier of the service", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The unique identifier of the service\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "ServiceType": { + "description": "The type of service being registered", + "type": "string", + "enum": [ + "dynatrace", + "mcpserver", + "mcpserversplunk", + "mcpservernewrelic", + "gitlab", + "servicenow", + "pagerduty", + "azureidentity", + "mcpserversigv4" + ], + "markdownDescription": "The type of service being registered\n\n---\n\nRequired: No \nType: String \nAllowed Values: dynatrace | mcpserver | mcpserversplunk | mcpservernewrelic | gitlab | servicenow | pagerduty | azureidentity | mcpserversigv4 \nUpdate requires: No interruption\n" + }, + "ServiceDetails": { + "description": "Service-specific configuration details", + "type": "object", + "oneOf": [ + { + "properties": { + "Dynatrace": { + "$ref": "#/definitions/DynatraceServiceDetails" + } + }, + "required": [ + "Dynatrace" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServer": { + "$ref": "#/definitions/MCPServerDetails" + } + }, + "required": [ + "MCPServer" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerSplunk": { + "$ref": "#/definitions/MCPServerSplunkDetails" + } + }, + "required": [ + "MCPServerSplunk" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerNewRelic": { + "$ref": "#/definitions/NewRelicServiceDetails" + } + }, + "required": [ + "MCPServerNewRelic" + ], + "additionalProperties": false + }, + { + "properties": { + "GitLab": { + "$ref": "#/definitions/GitLabDetails" + } + }, + "required": [ + "GitLab" + ], + "additionalProperties": false + }, + { + "properties": { + "ServiceNow": { + "$ref": "#/definitions/ServiceNowServiceDetails" + } + }, + "required": [ + "ServiceNow" + ], + "additionalProperties": false + }, + { + "properties": { + "PagerDuty": { + "$ref": "#/definitions/PagerDutyDetails" + } + }, + "required": [ + "PagerDuty" + ], + "additionalProperties": false + }, + { + "properties": { + "AzureIdentity": { + "$ref": "#/definitions/AzureIdentityServiceDetails" + } + }, + "required": [ + "AzureIdentity" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerSigV4": { + "$ref": "#/definitions/MCPServerSigV4Details" + } + }, + "required": [ + "MCPServerSigV4" + ], + "additionalProperties": false + } + ], + "markdownDescription": "Service-specific configuration details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DynatraceServiceDetails": { + "description": "Dynatrace service configuration", + "type": "object", + "properties": { + "AccountUrn": { + "description": "Dynatrace resource account URN", + "type": "string", + "markdownDescription": "Dynatrace resource account URN\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/DynatraceAuthorizationConfig" + } + }, + "required": [ + "AccountUrn" + ], + "additionalProperties": false, + "markdownDescription": "Dynatrace service configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DynatraceAuthorizationConfig": { + "description": "Dynatrace OAuth authorization configuration", + "type": "object", + "properties": { + "OAuthClientCredentials": { + "$ref": "#/definitions/OAuthClientDetails" + } + }, + "additionalProperties": false, + "markdownDescription": "Dynatrace OAuth authorization configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ServiceNowServiceDetails": { + "description": "ServiceNow service configuration", + "type": "object", + "properties": { + "InstanceUrl": { + "description": "ServiceNow instance URL", + "type": "string", + "markdownDescription": "ServiceNow instance URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9-]+\\.service-now\\.com/?$ \nUpdate requires: No interruption\n" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/ServiceNowAuthorizationConfig" + } + }, + "required": [ + "InstanceUrl" + ], + "additionalProperties": false, + "markdownDescription": "ServiceNow service configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ServiceNowAuthorizationConfig": { + "description": "ServiceNow OAuth authorization configuration", + "type": "object", + "properties": { + "OAuthClientCredentials": { + "$ref": "#/definitions/OAuthClientDetails" + } + }, + "additionalProperties": false, + "markdownDescription": "ServiceNow OAuth authorization configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PagerDutyDetails": { + "description": "PagerDuty service configuration", + "type": "object", + "properties": { + "Scopes": { + "description": "PagerDuty scopes", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "PagerDuty scopes\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/PagerDutyAuthorizationConfig" + } + }, + "required": [ + "Scopes", + "AuthorizationConfig" + ], + "additionalProperties": false, + "markdownDescription": "PagerDuty service configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PagerDutyAuthorizationConfig": { + "description": "PagerDuty OAuth authorization configuration", + "type": "object", + "properties": { + "OAuthClientCredentials": { + "$ref": "#/definitions/OAuthClientDetails" + } + }, + "additionalProperties": false, + "markdownDescription": "PagerDuty OAuth authorization configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerSigV4Details": { + "description": "SigV4-authenticated MCP server configuration", + "type": "object", + "properties": { + "Name": { + "description": "MCP server name", + "type": "string", + "markdownDescription": "MCP server name\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Optional description for the MCP server", + "type": "string", + "maxLength": 500, + "markdownDescription": "Optional description for the MCP server\n\n---\n\nRequired: No \nType: String \nMaximum Length: 500 \nUpdate requires: No interruption\n" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/MCPServerSigV4AuthorizationConfig" + } + }, + "required": [ + "Name", + "Endpoint", + "AuthorizationConfig" + ], + "additionalProperties": false, + "markdownDescription": "SigV4-authenticated MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerSigV4AuthorizationConfig": { + "description": "SigV4 authorization configuration for MCP server", + "type": "object", + "properties": { + "Region": { + "description": "AWS region for SigV4 signing. Use '*' for SigV4a multi-region signing.", + "type": "string", + "markdownDescription": "AWS region for SigV4 signing. Use '*' for SigV4a multi-region signing.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(\\*|[a-z]{2,4}(-[a-z]+)+-\\d+)$ \nUpdate requires: No interruption\n" + }, + "Service": { + "description": "AWS service name for SigV4 signing", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "AWS service name for SigV4 signing\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: No interruption\n" + }, + "RoleArn": { + "description": "IAM role ARN to assume for SigV4 signing", + "type": "string", + "markdownDescription": "IAM role ARN to assume for SigV4 signing\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:iam::\\d{12}:role/[a-zA-Z0-9+=,.@_/-]+$ \nUpdate requires: No interruption\n" + }, + "CustomHeaders": { + "description": "Custom headers for the SigV4 MCP server", + "type": "object", + "maxProperties": 10, + "patternProperties": { + "^[a-zA-Z0-9-_]+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Custom headers for the SigV4 MCP server\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Region", + "Service", + "RoleArn" + ], + "additionalProperties": false, + "markdownDescription": "SigV4 authorization configuration for MCP server\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerDetails": { + "description": "MCP server configuration", + "type": "object", + "properties": { + "Name": { + "description": "MCP server name", + "type": "string", + "markdownDescription": "MCP server name\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Optional description for the MCP server", + "type": "string", + "maxLength": 500, + "markdownDescription": "Optional description for the MCP server\n\n---\n\nRequired: No \nType: String \nMaximum Length: 500 \nUpdate requires: No interruption\n" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/MCPServerAuthorizationConfig" + } + }, + "required": [ + "Name", + "Endpoint", + "AuthorizationConfig" + ], + "additionalProperties": false, + "markdownDescription": "MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerAuthorizationConfig": { + "description": "MCP server authorization configuration", + "type": "object", + "oneOf": [ + { + "properties": { + "OAuthClientCredentials": { + "$ref": "#/definitions/MCPServerOAuthClientCredentialsConfig" + } + }, + "required": [ + "OAuthClientCredentials" + ], + "additionalProperties": false + }, + { + "properties": { + "ApiKey": { + "$ref": "#/definitions/ApiKeyDetails" + } + }, + "required": [ + "ApiKey" + ], + "additionalProperties": false + } + ], + "markdownDescription": "MCP server authorization configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerSplunkAuthorizationConfig": { + "description": "MCP server splunk authorization configuration", + "type": "object", + "oneOf": [ + { + "properties": { + "BearerToken": { + "$ref": "#/definitions/BearerTokenDetails" + } + }, + "required": [ + "BearerToken" + ], + "additionalProperties": false + } + ], + "markdownDescription": "MCP server splunk authorization configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerOAuthClientCredentialsConfig": { + "description": "MCP server OAuth client credentials configuration", + "type": "object", + "properties": { + "ClientName": { + "description": "User friendly OAuth client name", + "type": "string", + "markdownDescription": "User friendly OAuth client name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ClientId": { + "description": "OAuth client ID", + "type": "string", + "markdownDescription": "OAuth client ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "description": "OAuth client secret", + "type": "string", + "markdownDescription": "OAuth client secret\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ExchangeUrl": { + "description": "OAuth token exchange URL", + "type": "string", + "markdownDescription": "OAuth token exchange URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Scopes": { + "description": "OAuth scopes", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "OAuth scopes\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ExchangeParameters": { + "description": "OAuth token exchange parameters", + "type": "object", + "markdownDescription": "OAuth token exchange parameters\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret", + "ExchangeUrl" + ], + "additionalProperties": false, + "markdownDescription": "MCP server OAuth client credentials configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GitLabDetails": { + "description": "GitLab service configuration", + "type": "object", + "properties": { + "TargetUrl": { + "description": "GitLab instance URL", + "type": "string", + "markdownDescription": "GitLab instance URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?(?::[0-9]{1,5})?/?$ \nUpdate requires: No interruption\n" + }, + "TokenType": { + "description": "Type of GitLab access token", + "type": "string", + "enum": [ + "personal", + "group" + ], + "markdownDescription": "Type of GitLab access token\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: personal | group \nUpdate requires: No interruption\n" + }, + "TokenValue": { + "description": "GitLab access token value", + "type": "string", + "markdownDescription": "GitLab access token value\n\n---\n\nRequired: Yes \nType: String \nPattern: ^glpat-[a-zA-Z0-9._-]+$ \nUpdate requires: No interruption\n" + }, + "GroupId": { + "description": "Optional GitLab group ID for group-level access tokens", + "type": "string", + "markdownDescription": "Optional GitLab group ID for group-level access tokens\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TargetUrl", + "TokenType", + "TokenValue" + ], + "additionalProperties": false, + "markdownDescription": "GitLab service configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OAuthClientDetails": { + "description": "OAuth client credentials", + "type": "object", + "properties": { + "ClientName": { + "description": "User friendly OAuth client name", + "type": "string", + "markdownDescription": "User friendly OAuth client name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ClientId": { + "description": "OAuth client ID", + "type": "string", + "markdownDescription": "OAuth client ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "description": "OAuth client secret", + "type": "string", + "markdownDescription": "OAuth client secret\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ExchangeParameters": { + "description": "OAuth token exchange parameters", + "type": "object", + "markdownDescription": "OAuth token exchange parameters\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "additionalProperties": false, + "markdownDescription": "OAuth client credentials\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiKeyDetails": { + "description": "API key authentication details", + "type": "object", + "properties": { + "ApiKeyName": { + "description": "User friendly API key name", + "type": "string", + "markdownDescription": "User friendly API key name\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_\\s-]+$ \nUpdate requires: No interruption\n" + }, + "ApiKeyValue": { + "description": "API key value", + "type": "string", + "markdownDescription": "API key value\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[!-~]([ \\t]*[!-~])*$ \nUpdate requires: No interruption\n" + }, + "ApiKeyHeader": { + "description": "HTTP header name to send the API key", + "type": "string", + "markdownDescription": "HTTP header name to send the API key\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApiKeyName", + "ApiKeyValue", + "ApiKeyHeader" + ], + "additionalProperties": false, + "markdownDescription": "API key authentication details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BearerTokenDetails": { + "description": "Bearer token authentication details", + "type": "object", + "properties": { + "TokenName": { + "description": "User friendly bearer token name", + "type": "string", + "markdownDescription": "User friendly bearer token name\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_\\s-]+$ \nUpdate requires: No interruption\n" + }, + "TokenValue": { + "description": "Bearer token value", + "type": "string", + "markdownDescription": "Bearer token value\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[\\S]+$ \nUpdate requires: No interruption\n" + }, + "AuthorizationHeader": { + "description": "HTTP header name to send the bearer token", + "type": "string", + "default": "Authorization", + "markdownDescription": "HTTP header name to send the bearer token\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TokenName", + "TokenValue" + ], + "additionalProperties": false, + "markdownDescription": "Bearer token authentication details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MCPServerSplunkDetails": { + "description": "Splunk MCP server configuration", + "type": "object", + "properties": { + "Name": { + "description": "MCP server name", + "type": "string", + "markdownDescription": "MCP server name\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nPattern: ^https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?$ \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Optional description for the MCP server", + "type": "string", + "maxLength": 500, + "markdownDescription": "Optional description for the MCP server\n\n---\n\nRequired: No \nType: String \nMaximum Length: 500 \nUpdate requires: No interruption\n" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/MCPServerSplunkAuthorizationConfig" + } + }, + "required": [ + "Name", + "Endpoint", + "AuthorizationConfig" + ], + "additionalProperties": false, + "markdownDescription": "Splunk MCP server configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NewRelicServiceDetails": { + "description": "New Relic service configuration", + "type": "object", + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/NewRelicAuthorizationConfig" + } + }, + "required": [ + "AuthorizationConfig" + ], + "additionalProperties": false, + "markdownDescription": "New Relic service configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NewRelicAuthorizationConfig": { + "description": "New Relic authorization configuration", + "type": "object", + "properties": { + "ApiKey": { + "$ref": "#/definitions/NewRelicApiKeyConfig" + } + }, + "required": [ + "ApiKey" + ], + "additionalProperties": false, + "markdownDescription": "New Relic authorization configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NewRelicApiKeyConfig": { + "description": "New Relic API key configuration", + "type": "object", + "properties": { + "ApiKey": { + "description": "New Relic User API Key", + "type": "string", + "markdownDescription": "New Relic User API Key\n\n---\n\nRequired: Yes \nType: String \nPattern: ^NRAK-[A-Z0-9]+$ \nUpdate requires: No interruption\n" + }, + "AccountId": { + "description": "New Relic Account ID", + "type": "string", + "markdownDescription": "New Relic Account ID\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Region": { + "description": "New Relic region", + "type": "string", + "enum": [ + "US", + "EU" + ], + "markdownDescription": "New Relic region\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: US | EU \nUpdate requires: No interruption\n" + }, + "ApplicationIds": { + "description": "List of monitored APM application IDs", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of monitored APM application IDs\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EntityGuids": { + "description": "List of globally unique IDs for New Relic resources", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_.-]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of globally unique IDs for New Relic resources\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AlertPolicyIds": { + "description": "List of alert policy IDs", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of alert policy IDs\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApiKey", + "AccountId", + "Region" + ], + "additionalProperties": false, + "markdownDescription": "New Relic API key configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AzureIdentityServiceDetails": { + "description": "Azure Identity service configuration for federated identity", + "type": "object", + "properties": { + "TenantId": { + "description": "Azure AD tenant ID", + "type": "string", + "markdownDescription": "Azure AD tenant ID\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\n" + }, + "ClientId": { + "description": "Azure AD application client ID", + "type": "string", + "markdownDescription": "Azure AD application client ID\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\n" + }, + "WebIdentityRoleArn": { + "description": "ARN of the IAM role for web identity token exchange", + "type": "string", + "markdownDescription": "ARN of the IAM role for web identity token exchange\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + }, + "WebIdentityTokenAudiences": { + "description": "List of audiences for the web identity token", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of audiences for the web identity token\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TenantId", + "ClientId", + "WebIdentityRoleArn", + "WebIdentityTokenAudiences" + ], + "additionalProperties": false, + "markdownDescription": "Azure Identity service configuration for federated identity\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdditionalServiceDetails": { + "description": "Additional details specific to the service type returned after registration", + "type": "object", + "oneOf": [ + { + "properties": { + "MCPServer": { + "$ref": "#/definitions/RegisteredMCPServerDetails" + } + }, + "required": [ + "MCPServer" + ], + "additionalProperties": false + }, + { + "properties": { + "GitLab": { + "$ref": "#/definitions/RegisteredGitLabServiceDetails" + } + }, + "required": [ + "GitLab" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerSplunk": { + "$ref": "#/definitions/RegisteredMCPServerDetails" + } + }, + "required": [ + "MCPServerSplunk" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerNewRelic": { + "$ref": "#/definitions/RegisteredNewRelicDetails" + } + }, + "required": [ + "MCPServerNewRelic" + ], + "additionalProperties": false + }, + { + "properties": { + "Dynatrace": { + "$ref": "#/definitions/RegisteredDynatraceDetails" + } + }, + "required": [ + "Dynatrace" + ], + "additionalProperties": false + }, + { + "properties": { + "ServiceNow": { + "$ref": "#/definitions/RegisteredServiceNowDetails" + } + }, + "required": [ + "ServiceNow" + ], + "additionalProperties": false + }, + { + "properties": { + "PagerDuty": { + "$ref": "#/definitions/RegisteredPagerDutyDetails" + } + }, + "required": [ + "PagerDuty" + ], + "additionalProperties": false + }, + { + "properties": { + "AzureIdentity": { + "$ref": "#/definitions/RegisteredAzureIdentityDetails" + } + }, + "required": [ + "AzureIdentity" + ], + "additionalProperties": false + }, + { + "properties": { + "MCPServerSigV4": { + "$ref": "#/definitions/RegisteredMCPServerSigV4Details" + } + }, + "required": [ + "MCPServerSigV4" + ], + "additionalProperties": false + } + ], + "markdownDescription": "Additional details specific to the service type returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredMCPServerDetails": { + "description": "MCP server details returned after registration", + "type": "object", + "properties": { + "Name": { + "description": "MCP server name", + "type": "string", + "markdownDescription": "MCP server name\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "MCP server endpoint URL", + "type": "string", + "markdownDescription": "MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AuthorizationMethod": { + "description": "MCP server authorization method", + "type": "string", + "enum": [ + "oauth-client-credentials", + "api-key", + "bearer-token" + ], + "markdownDescription": "MCP server authorization method\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: oauth-client-credentials | api-key | bearer-token \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Optional description for the MCP server", + "type": "string", + "markdownDescription": "Optional description for the MCP server\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ApiKeyHeader": { + "description": "API key header name if using API key authentication", + "type": "string", + "markdownDescription": "API key header name if using API key authentication\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Endpoint", + "AuthorizationMethod" + ], + "additionalProperties": false, + "markdownDescription": "MCP server details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredNewRelicDetails": { + "description": "New Relic service details returned after registration", + "type": "object", + "properties": { + "AccountId": { + "description": "New Relic account ID", + "type": "string", + "markdownDescription": "New Relic account ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Region": { + "description": "New Relic region", + "type": "string", + "enum": [ + "US", + "EU" + ], + "markdownDescription": "New Relic region\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: US | EU \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Optional user description", + "type": "string", + "markdownDescription": "Optional user description\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AccountId", + "Region" + ], + "additionalProperties": false, + "markdownDescription": "New Relic service details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredGitLabServiceDetails": { + "description": "GitLab service details returned after registration", + "type": "object", + "properties": { + "TargetUrl": { + "description": "GitLab instance URL", + "type": "string", + "markdownDescription": "GitLab instance URL\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "TokenType": { + "description": "Type of GitLab access token", + "type": "string", + "enum": [ + "personal", + "group" + ], + "markdownDescription": "Type of GitLab access token\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: personal | group \nUpdate requires: No interruption\n" + }, + "GroupId": { + "description": "Optional GitLab group ID for group-level access tokens", + "type": "string", + "markdownDescription": "Optional GitLab group ID for group-level access tokens\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TargetUrl", + "TokenType" + ], + "additionalProperties": false, + "markdownDescription": "GitLab service details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredDynatraceDetails": { + "description": "Dynatrace service details returned after registration", + "type": "object", + "properties": { + "AccountUrn": { + "description": "Dynatrace resource account URN", + "type": "string", + "markdownDescription": "Dynatrace resource account URN\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AccountUrn" + ], + "additionalProperties": false, + "markdownDescription": "Dynatrace service details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredServiceNowDetails": { + "description": "ServiceNow service details returned after registration", + "type": "object", + "properties": { + "InstanceUrl": { + "description": "ServiceNow instance URL", + "type": "string", + "markdownDescription": "ServiceNow instance URL\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "InstanceUrl" + ], + "additionalProperties": false, + "markdownDescription": "ServiceNow service details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredPagerDutyDetails": { + "description": "PagerDuty service details returned after registration", + "type": "object", + "properties": { + "Scopes": { + "description": "The scopes assigned to the service", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The scopes assigned to the service\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Scopes" + ], + "additionalProperties": false, + "markdownDescription": "PagerDuty service details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredAzureIdentityDetails": { + "description": "Azure Identity service details returned after registration", + "type": "object", + "properties": { + "TenantId": { + "description": "Azure AD tenant ID", + "type": "string", + "markdownDescription": "Azure AD tenant ID\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\n" + }, + "ClientId": { + "description": "Azure AD application client ID", + "type": "string", + "markdownDescription": "Azure AD application client ID\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\n" + }, + "WebIdentityRoleArn": { + "description": "ARN of the IAM role for web identity token exchange", + "type": "string", + "markdownDescription": "ARN of the IAM role for web identity token exchange\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[a-zA-Z-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: No interruption\n" + }, + "WebIdentityTokenAudiences": { + "description": "List of audiences for the web identity token", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of audiences for the web identity token\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TenantId", + "ClientId", + "WebIdentityRoleArn", + "WebIdentityTokenAudiences" + ], + "additionalProperties": false, + "markdownDescription": "Azure Identity service details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RegisteredMCPServerSigV4Details": { + "description": "SigV4-authenticated MCP server details returned after registration", + "type": "object", + "properties": { + "Name": { + "description": "The MCP server name", + "type": "string", + "markdownDescription": "The MCP server name\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "description": "The MCP server endpoint URL", + "type": "string", + "markdownDescription": "The MCP server endpoint URL\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "description": "Optional description for the MCP server", + "type": "string", + "markdownDescription": "Optional description for the MCP server\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Region": { + "description": "AWS region for SigV4 signing", + "type": "string", + "markdownDescription": "AWS region for SigV4 signing\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Service": { + "description": "AWS service name for SigV4 signing", + "type": "string", + "markdownDescription": "AWS service name for SigV4 signing\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "RoleArn": { + "description": "IAM role ARN for SigV4 signing", + "type": "string", + "markdownDescription": "IAM role ARN for SigV4 signing\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "CustomHeaders": { + "description": "Custom headers for the SigV4 MCP server", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9-_]+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Custom headers for the SigV4 MCP server\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Endpoint", + "Region", + "Service", + "RoleArn" + ], + "additionalProperties": false, + "markdownDescription": "SigV4-authenticated MCP server details returned after registration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ServiceId": { + "description": "The unique identifier of the service", + "$ref": "#/definitions/ServiceId", + "markdownDescription": "The unique identifier of the service\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ServiceType": { + "description": "The type of service being registered", + "$ref": "#/definitions/ServiceType", + "markdownDescription": "The type of service being registered\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "ServiceDetails": { + "description": "Service-specific configuration details for create operation", + "$ref": "#/definitions/ServiceDetails", + "markdownDescription": "Service-specific configuration details for create operation\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "AccessibleResources": { + "description": "List of accessible resources for this service", + "type": "array", + "items": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of accessible resources for this service\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AdditionalServiceDetails": { + "description": "Additional details specific to the service type", + "$ref": "#/definitions/AdditionalServiceDetails", + "markdownDescription": "Additional details specific to the service type\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "KmsKeyArn": { + "description": "The ARN of the KMS key to use for encryption.", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "The ARN of the KMS key to use for encryption.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: Replacement\n" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Service.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Service.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aidevops:TagResource", + "aidevops:UntagResource", + "aidevops:ListTagsForResource" + ] + }, + "required": [ + "ServiceType" + ], + "readOnlyProperties": [ + "/properties/ServiceId", + "/properties/AccessibleResources", + "/properties/AdditionalServiceDetails", + "/properties/Arn" + ], + "writeOnlyProperties": [ + "/properties/ServiceDetails" + ], + "createOnlyProperties": [ + "/properties/ServiceType", + "/properties/ServiceDetails", + "/properties/KmsKeyArn" + ], + "primaryIdentifier": [ + "/properties/ServiceId" + ], + "handlers": { + "create": { + "permissions": [ + "aidevops:RegisterService", + "aidevops:GetService", + "aidevops:TagResource", + "aidevops:ListTagsForResource", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:Decrypt", + "kms:DescribeKey", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyPair", + "kms:GenerateDataKeyPairWithoutPlaintext", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo" + ] + }, + "read": { + "permissions": [ + "aidevops:GetService", + "aidevops:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "aidevops:GetService", + "aidevops:TagResource", + "aidevops:UntagResource", + "aidevops:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "aidevops:DeregisterService", + "aidevops:GetService" + ] + }, + "list": { + "permissions": [ + "aidevops:ListServices" + ] + } + }, + "attributes": { + "ServiceId": { + "description": "The unique identifier of the service", + "$ref": "#/definitions/ServiceId", + "markdownDescription": "The unique identifier of the service\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccessibleResources": { + "description": "List of accessible resources for this service", + "type": "array", + "items": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of accessible resources for this service\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AdditionalServiceDetails": { + "description": "Additional details specific to the service type", + "$ref": "#/definitions/AdditionalServiceDetails", + "markdownDescription": "Additional details specific to the service type\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Service.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Service.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-connection.json b/server/schema/resources/aws-directconnect-connection.json new file mode 100644 index 00000000..536fee2a --- /dev/null +++ b/server/schema/resources/aws-directconnect-connection.json @@ -0,0 +1,200 @@ +{ + "tagging": { + "permissions": [ + "directconnect:TagResource", + "directconnect:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::DirectConnect::Connection", + "readOnlyProperties": [ + "/properties/ConnectionArn", + "/properties/ConnectionId", + "/properties/ConnectionState" + ], + "description": "Resource Type definition for AWS::DirectConnect::Connection", + "createOnlyProperties": [ + "/properties/Bandwidth", + "/properties/Location", + "/properties/ProviderName", + "/properties/RequestMACSec" + ], + "primaryIdentifier": [ + "/properties/ConnectionArn" + ], + "required": [ + "Bandwidth", + "ConnectionName", + "Location" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "propertyTransform": { + "/properties/Location": "\"^[a-zA-Z0-9-]+$\"", + "/properties/LagId": "$lowercase($substringAfter(LagId, \"/\"))" + }, + "handlers": { + "read": { + "permissions": [ + "directconnect:DescribeConnections" + ] + }, + "create": { + "permissions": [ + "directconnect:DescribeConnections", + "directconnect:CreateConnection", + "directconnect:TagResource" + ] + }, + "update": { + "permissions": [ + "directconnect:AssociateConnectionWithLag", + "directconnect:DisassociateConnectionFromLag", + "directconnect:DescribeConnections", + "directconnect:TagResource", + "directconnect:UntagResource", + "directconnect:UpdateConnection" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeConnections" + ] + }, + "delete": { + "permissions": [ + "directconnect:DescribeConnections", + "directconnect:DeleteConnection" + ] + } + }, + "writeOnlyProperties": [ + "/properties/RequestMACSec" + ], + "additionalIdentifiers": [ + [ + "/properties/ConnectionId" + ] + ], + "additionalProperties": false, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -.", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -.", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "replacementStrategy": "delete_then_create", + "properties": { + "ConnectionName": { + "description": "The name of the connection.", + "type": "string", + "markdownDescription": "The name of the connection.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[\\w \\-_,\\/]{1,200}$ \nUpdate requires: No interruption\n" + }, + "LagId": { + "description": "The ID or ARN of the LAG to associate the connection with.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the LAG to associate the connection with.\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxlag/)?dxlag-[a-zA-Z0-9]{8,21}$ \nUpdate requires: No interruption\n" + }, + "ProviderName": { + "description": "The name of the service provider associated with the requested connection.", + "type": "string", + "markdownDescription": "The name of the service provider associated with the requested connection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ConnectionId": { + "description": "The ID of the connection.", + "type": "string", + "markdownDescription": "The ID of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxcon-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "RequestMACSec": { + "description": "Indicates whether you want the connection to support MAC Security (MACsec).", + "type": "boolean", + "markdownDescription": "Indicates whether you want the connection to support MAC Security (MACsec).\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "Bandwidth": { + "description": "The bandwidth of the connection.", + "type": "string", + "markdownDescription": "The bandwidth of the connection.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[1-9][0-9]*(M|G)bps$ \nUpdate requires: Replacement\n" + }, + "ConnectionArn": { + "description": "The ARN of the connection.", + "type": "string", + "markdownDescription": "The ARN of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxcon/dxcon-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectionState": { + "description": "The state of the connection.", + "type": "string", + "markdownDescription": "The state of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^(ordering|requested|pending|available|down|deleting|deleted|rejected|unknown)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "uniqueItems": true, + "description": "The tags associated with the connection.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with the connection.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Location": { + "description": "The location of the connection.", + "type": "string", + "markdownDescription": "The location of the connection.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: Replacement\n" + } + }, + "attributes": { + "ConnectionId": { + "description": "The ID of the connection.", + "type": "string", + "markdownDescription": "The ID of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxcon-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectionArn": { + "description": "The ARN of the connection.", + "type": "string", + "markdownDescription": "The ARN of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxcon/dxcon-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectionState": { + "description": "The state of the connection.", + "type": "string", + "markdownDescription": "The state of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^(ordering|requested|pending|available|down|deleting|deleted|rejected|unknown)$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-directconnectgateway.json b/server/schema/resources/aws-directconnect-directconnectgateway.json new file mode 100644 index 00000000..247adf2d --- /dev/null +++ b/server/schema/resources/aws-directconnect-directconnectgateway.json @@ -0,0 +1,140 @@ +{ + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "description": "Resource Type definition for AWS::DirectConnect::DirectConnectGateway", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "description": "The tags associated with the Direct Connect gateway.", + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "uniqueItems": true, + "insertionOrder": false, + "markdownDescription": "The tags associated with the Direct Connect gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "DirectConnectGatewayArn": { + "description": "The ARN of the Direct Connect gateway.", + "type": "string", + "markdownDescription": "The ARN of the Direct Connect gateway.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect::[0-9]{12}:dx-gateway/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DirectConnectGatewayId": { + "description": "The ID of the Direct Connect gateway.", + "type": "string", + "markdownDescription": "The ID of the Direct Connect gateway.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DirectConnectGatewayName": { + "description": "The name of the Direct Connect gateway.", + "type": "string", + "markdownDescription": "The name of the Direct Connect gateway.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[\\w \\-_,\\/]{1,100}$ \nUpdate requires: No interruption\n" + }, + "AmazonSideAsn": { + "description": "The autonomous system number (ASN) for the Amazon side of the connection.", + "type": "string", + "markdownDescription": "The autonomous system number (ASN) for the Amazon side of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^[1-9][0-9]*$ \nUpdate requires: Replacement\n" + } + }, + "additionalProperties": false, + "required": [ + "DirectConnectGatewayName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "directconnect:TagResource", + "directconnect:UntagResource" + ] + }, + "readOnlyProperties": [ + "/properties/DirectConnectGatewayArn", + "/properties/DirectConnectGatewayId" + ], + "createOnlyProperties": [ + "/properties/AmazonSideAsn" + ], + "primaryIdentifier": [ + "/properties/DirectConnectGatewayArn" + ], + "additionalIdentifiers": [ + [ + "/properties/DirectConnectGatewayId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "directconnect:DescribeDirectConnectGateways", + "directconnect:CreateDirectConnectGateway", + "directconnect:TagResource" + ] + }, + "read": { + "permissions": [ + "directconnect:DescribeDirectConnectGateways" + ] + }, + "update": { + "permissions": [ + "directconnect:DescribeDirectConnectGateways", + "directconnect:UpdateDirectConnectGateway", + "directconnect:TagResource", + "directconnect:UntagResource" + ] + }, + "delete": { + "permissions": [ + "directconnect:DescribeDirectConnectGateways", + "directconnect:DeleteDirectConnectGateway" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeDirectConnectGateways" + ] + } + }, + "attributes": { + "DirectConnectGatewayArn": { + "description": "The ARN of the Direct Connect gateway.", + "type": "string", + "markdownDescription": "The ARN of the Direct Connect gateway.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect::[0-9]{12}:dx-gateway/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DirectConnectGatewayId": { + "description": "The ID of the Direct Connect gateway.", + "type": "string", + "markdownDescription": "The ID of the Direct Connect gateway.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-directconnectgatewayassociation.json b/server/schema/resources/aws-directconnect-directconnectgatewayassociation.json new file mode 100644 index 00000000..83c1e1cf --- /dev/null +++ b/server/schema/resources/aws-directconnect-directconnectgatewayassociation.json @@ -0,0 +1,162 @@ +{ + "tagging": { + "taggable": false + }, + "typeName": "AWS::DirectConnect::DirectConnectGatewayAssociation", + "readOnlyProperties": [ + "/properties/AssociationId" + ], + "description": "Resource Type definition for AWS::DirectConnect::DirectConnectGatewayAssociation", + "createOnlyProperties": [ + "/properties/AcceptDirectConnectGatewayAssociationProposalRoleArn", + "/properties/AssociatedGatewayId", + "/properties/DirectConnectGatewayId" + ], + "primaryIdentifier": [ + "/properties/AssociationId" + ], + "required": [ + "DirectConnectGatewayId", + "AssociatedGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-directconnect", + "propertyTransform": { + "/properties/AssociatedGatewayId": "$lowercase($substringAfter(AssociatedGatewayId, \"/\"))", + "/properties/DirectConnectGatewayId": "$substringAfter(DirectConnectGatewayId, \"/\")" + }, + "handlers": { + "read": { + "permissions": [ + "directconnect:DescribeDirectConnectGatewayAssociations" + ] + }, + "create": { + "permissions": [ + "directconnect:CreateDirectConnectGatewayAssociationProposal", + "directconnect:CreateDirectConnectGatewayAssociation", + "directconnect:DescribeDirectConnectGatewayAssociations", + "sts:AssumeRole" + ] + }, + "update": { + "permissions": [ + "directconnect:DescribeDirectConnectGatewayAssociations", + "directconnect:UpdateDirectConnectGatewayAssociation", + "sts:AssumeRole" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeDirectConnectGatewayAssociations" + ], + "handlerSchema": { + "oneOf": [ + { + "required": [ + "AssociatedGatewayId" + ] + }, + { + "required": [ + "DirectConnectGatewayId" + ] + } + ], + "properties": { + "DirectConnectGatewayId": { + "$ref": "resource-schema.json#/properties/DirectConnectGatewayId" + }, + "AssociatedGatewayId": { + "$ref": "resource-schema.json#/properties/AssociatedGatewayId" + } + } + } + }, + "delete": { + "permissions": [ + "directconnect:DeleteDirectConnectGatewayAssociation", + "directconnect:DescribeDirectConnectGatewayAssociations" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AcceptDirectConnectGatewayAssociationProposalRoleArn" + ], + "additionalProperties": false, + "properties": { + "AcceptDirectConnectGatewayAssociationProposalRoleArn": { + "description": "The Amazon Resource Name (ARN) of the role to accept the Direct Connect Gateway association proposal. Needs directconnect:AcceptDirectConnectGatewayAssociationProposal permissions.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to accept the Direct Connect Gateway association proposal. Needs directconnect:AcceptDirectConnectGatewayAssociationProposal permissions.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: Replacement\n" + }, + "DirectConnectGatewayId": { + "description": "The ID or ARN of the Direct Connect gateway.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "propertyPath": "/properties/DirectConnectGatewayId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "propertyPath": "/properties/DirectConnectGatewayArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the Direct Connect gateway.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(arn:aws[a-z-]*:directconnect::[0-9]{12}:dx-gateway/)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: Replacement\n" + }, + "AssociatedGatewayId": { + "description": "The ID or ARN of the virtual private gateway or transit gateway.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::EC2::VPNGateway", + "propertyPath": "/properties/VPNGatewayId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::TransitGateway", + "propertyPath": "/properties/Id" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::TransitGateway", + "propertyPath": "/properties/TransitGatewayArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the virtual private gateway or transit gateway.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^((arn:aws[a-z-]*:ec2:[a-z0-9-]+:[0-9]{12}:(vpn-gateway/vgw|transit-gateway/tgw))|(vgw|tgw))-[a-zA-Z0-9]{8,32}$ \nUpdate requires: Replacement\n" + }, + "AllowedPrefixesToDirectConnectGateway": { + "minItems": 1, + "uniqueItems": true, + "description": "The Amazon VPC prefixes to advertise to the Direct Connect gateway. This parameter is required when you create an association to a transit gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "description": "A CIDR block for the advertised route. An IPv6 CIDR must use /64 or shorter.", + "type": "string", + "markdownDescription": "A CIDR block for the advertised route. An IPv6 CIDR must use /64 or shorter.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The Amazon VPC prefixes to advertise to the Direct Connect gateway. This parameter is required when you create an association to a transit gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AssociationId": { + "description": "The ID of the Direct Connect gateway association.", + "type": "string", + "markdownDescription": "The ID of the Direct Connect gateway association.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "attributes": { + "AssociationId": { + "description": "The ID of the Direct Connect gateway association.", + "type": "string", + "markdownDescription": "The ID of the Direct Connect gateway association.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-lag.json b/server/schema/resources/aws-directconnect-lag.json new file mode 100644 index 00000000..c30f5e84 --- /dev/null +++ b/server/schema/resources/aws-directconnect-lag.json @@ -0,0 +1,184 @@ +{ + "tagging": { + "permissions": [ + "directconnect:TagResource", + "directconnect:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::DirectConnect::Lag", + "readOnlyProperties": [ + "/properties/LagArn", + "/properties/LagId", + "/properties/LagState" + ], + "description": "Resource Type definition for AWS::DirectConnect::Lag", + "createOnlyProperties": [ + "/properties/ConnectionsBandwidth", + "/properties/Location", + "/properties/ProviderName", + "/properties/RequestMACSec" + ], + "primaryIdentifier": [ + "/properties/LagArn" + ], + "required": [ + "LagName", + "Location", + "ConnectionsBandwidth" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "propertyTransform": { + "/properties/Location": "\"^[a-zA-Z0-9-]+$\"" + }, + "handlers": { + "read": { + "permissions": [ + "directconnect:DescribeLags" + ] + }, + "create": { + "permissions": [ + "directconnect:CreateLag", + "directconnect:DeleteConnection", + "directconnect:DescribeLags", + "directconnect:TagResource" + ] + }, + "update": { + "permissions": [ + "directconnect:DescribeLags", + "directconnect:TagResource", + "directconnect:UntagResource", + "directconnect:UpdateLag" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeLags" + ] + }, + "delete": { + "permissions": [ + "directconnect:DeleteLag", + "directconnect:DescribeLags" + ] + } + }, + "writeOnlyProperties": [ + "/properties/RequestMACSec" + ], + "additionalIdentifiers": [ + [ + "/properties/LagId" + ] + ], + "additionalProperties": false, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -.", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -.", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "replacementStrategy": "delete_then_create", + "properties": { + "LagId": { + "description": "The ID of the LAG.", + "type": "string", + "markdownDescription": "The ID of the LAG.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxlag-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ProviderName": { + "description": "The name of the service provider associated with the requested LAG.", + "type": "string", + "markdownDescription": "The name of the service provider associated with the requested LAG.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "RequestMACSec": { + "description": "Indicates whether you want the LAG to support MAC Security (MACsec).", + "type": "boolean", + "markdownDescription": "Indicates whether you want the LAG to support MAC Security (MACsec).\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "ConnectionsBandwidth": { + "description": "The bandwidth of the individual physical dedicated connections bundled by the LAG.", + "type": "string", + "markdownDescription": "The bandwidth of the individual physical dedicated connections bundled by the LAG.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[1-9][0-9]*(M|G)bps$ \nUpdate requires: Replacement\n" + }, + "LagArn": { + "description": "The ARN of the LAG.", + "type": "string", + "markdownDescription": "The ARN of the LAG.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxlag/dxlag-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LagName": { + "description": "The name of the LAG.", + "type": "string", + "markdownDescription": "The name of the LAG.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[\\w \\-_,\\/]{1,200}$ \nUpdate requires: No interruption\n" + }, + "MinimumLinks": { + "description": "The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.", + "type": "integer", + "markdownDescription": "The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Tags": { + "uniqueItems": true, + "description": "The tags associated with the LAG.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with the LAG.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LagState": { + "description": "The state of the LAG.", + "type": "string", + "markdownDescription": "The state of the LAG.\n\n---\n\nRequired: No \nType: String \nPattern: ^(requested|pending|available|down|deleting|deleted|unknown)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Location": { + "description": "The location for the LAG.", + "type": "string", + "markdownDescription": "The location for the LAG.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: Replacement\n" + } + }, + "attributes": { + "LagId": { + "description": "The ID of the LAG.", + "type": "string", + "markdownDescription": "The ID of the LAG.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxlag-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LagArn": { + "description": "The ARN of the LAG.", + "type": "string", + "markdownDescription": "The ARN of the LAG.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxlag/dxlag-[a-z0-9]{8,21}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LagState": { + "description": "The state of the LAG.", + "type": "string", + "markdownDescription": "The state of the LAG.\n\n---\n\nRequired: No \nType: String \nPattern: ^(requested|pending|available|down|deleting|deleted|unknown)$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-privatevirtualinterface.json b/server/schema/resources/aws-directconnect-privatevirtualinterface.json new file mode 100644 index 00000000..b411cafb --- /dev/null +++ b/server/schema/resources/aws-directconnect-privatevirtualinterface.json @@ -0,0 +1,300 @@ +{ + "tagging": { + "permissions": [ + "directconnect:TagResource", + "directconnect:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::DirectConnect::PrivateVirtualInterface", + "readOnlyProperties": [ + "/properties/BgpPeers/*/BgpPeerId", + "/properties/VirtualInterfaceArn", + "/properties/VirtualInterfaceId" + ], + "description": "Resource Type definition for AWS::DirectConnect::PrivateVirtualInterface", + "createOnlyProperties": [ + "/properties/AllocatePrivateVirtualInterfaceRoleArn", + "/properties/DirectConnectGatewayId", + "/properties/VirtualGatewayId", + "/properties/Vlan" + ], + "primaryIdentifier": [ + "/properties/VirtualInterfaceArn" + ], + "required": [ + "BgpPeers", + "ConnectionId", + "VirtualInterfaceName", + "Vlan" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "propertyTransform": { + "/properties/DirectConnectGatewayId": "$substringAfter(DirectConnectGatewayId, \"/\")", + "/properties/ConnectionId": "$lowercase($substringAfter(ConnectionId, \"/\"))", + "/properties/VirtualGatewayId": "$lowercase($substringAfter(VirtualGatewayId, \"/\"))" + }, + "oneOf": [ + { + "required": [ + "DirectConnectGatewayId" + ] + }, + { + "required": [ + "VirtualGatewayId" + ] + } + ], + "handlers": { + "read": { + "permissions": [ + "directconnect:DescribeVirtualInterfaces" + ] + }, + "create": { + "permissions": [ + "directconnect:ConfirmPrivateVirtualInterface", + "directconnect:CreateBGPPeer", + "directconnect:CreatePrivateVirtualInterface", + "directconnect:DescribeVirtualInterfaces", + "directconnect:TagResource", + "sts:AssumeRole" + ] + }, + "update": { + "permissions": [ + "directconnect:AssociateVirtualInterface", + "directconnect:CreateBGPPeer", + "directconnect:DeleteBGPPeer", + "directconnect:DescribeVirtualInterfaces", + "directconnect:TagResource", + "directconnect:UntagResource", + "directconnect:UpdateVirtualInterfaceAttributes" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeVirtualInterfaces" + ] + }, + "delete": { + "permissions": [ + "directconnect:DeleteVirtualInterface", + "directconnect:DescribeVirtualInterfaces" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AllocatePrivateVirtualInterfaceRoleArn" + ], + "additionalIdentifiers": [ + [ + "/properties/VirtualInterfaceId" + ] + ], + "additionalProperties": false, + "definitions": { + "BgpPeer": { + "description": "Information about a BGP peer.", + "additionalProperties": false, + "type": "object", + "properties": { + "BgpPeerId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^dxpeer-[a-z0-9]{8}$ \nUpdate requires: No interruption\n" + }, + "AuthKey": { + "description": "The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximum length of 80 characters.", + "type": "string", + "markdownDescription": "The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximum length of 80 characters.\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9\\\\!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\^_`{|}~]{6,80}$ \nUpdate requires: No interruption\n" + }, + "AddressFamily": { + "description": "The address family for the BGP peer.", + "type": "string", + "markdownDescription": "The address family for the BGP peer.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(ipv4)|(ipv6)$ \nUpdate requires: No interruption\n" + }, + "AmazonAddress": { + "description": "The IP address assigned to the Amazon interface.", + "type": "string", + "markdownDescription": "The IP address assigned to the Amazon interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Asn": { + "description": "The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.", + "type": "string", + "markdownDescription": "The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[1-9][0-9]*$ \nUpdate requires: No interruption\n" + }, + "CustomerAddress": { + "description": "The IP address assigned to the customer interface.", + "type": "string", + "markdownDescription": "The IP address assigned to the customer interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AddressFamily", + "Asn" + ], + "markdownDescription": "Information about a BGP peer.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -.", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -.", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "replacementStrategy": "delete_then_create", + "properties": { + "BgpPeers": { + "minItems": 1, + "maxItems": 2, + "uniqueItems": true, + "description": "The BGP peers configured on this virtual interface.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/BgpPeer" + }, + "markdownDescription": "The BGP peers configured on this virtual interface.\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" + }, + "ConnectionId": { + "description": "The ID or ARN of the connection or LAG.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Connection", + "propertyPath": "/properties/ConnectionId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Connection", + "propertyPath": "/properties/ConnectionArn" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the connection or LAG.\n\n---\n\nRequired: Conditional \nType: String \nPattern: ^((arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:(dxcon/dxcon|dxlag/dxlag))|dx(con|lag))-[a-z0-9A-Z]{8,21}$ \nUpdate requires: No interruption\n" + }, + "AllocatePrivateVirtualInterfaceRoleArn": { + "description": "The Amazon Resource Name (ARN) of the role to allocate the private virtual interface. Needs directconnect:AllocatePrivateVirtualInterface permissions and tag permissions if applicable.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to allocate the private virtual interface. Needs directconnect:AllocatePrivateVirtualInterface permissions and tag permissions if applicable.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: Replacement\n" + }, + "DirectConnectGatewayId": { + "description": "The ID or ARN of the Direct Connect gateway.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "propertyPath": "/properties/DirectConnectGatewayId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "propertyPath": "/properties/DirectConnectGatewayArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the Direct Connect gateway.\n\n---\n\nRequired: Conditional \nType: String \nPattern: ^(arn:aws[a-z-]*:directconnect::[0-9]{12}:dx-gateway/)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: Replacement\n" + }, + "EnableSiteLink": { + "description": "Indicates whether to enable or disable SiteLink.", + "type": "boolean", + "markdownDescription": "Indicates whether to enable or disable SiteLink.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "VirtualInterfaceId": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VirtualInterfaceName": { + "description": "The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).", + "type": "string", + "markdownDescription": "The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).\n\n---\n\nRequired: Conditional \nType: String \nPattern: ^[\\w \\-_,\\/]{1,100}$ \nUpdate requires: No interruption\n" + }, + "VirtualInterfaceArn": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxvif/dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Vlan": { + "description": "The ID of the VLAN.", + "maximum": 4095, + "type": "integer", + "minimum": 0, + "markdownDescription": "The ID of the VLAN.\n\n---\n\nRequired: Conditional \nType: Integer \nUpdate requires: Replacement\n" + }, + "VirtualGatewayId": { + "description": "The ID or ARN of the virtual private gateway.", + "type": "string", + "markdownDescription": "The ID or ARN of the virtual private gateway.\n\n---\n\nRequired: Conditional \nType: String \nPattern: ^(arn:aws[a-z-]*:ec2:[a-z0-9-]+:[0-9]{12}:vpn-gateway/)?vgw-[a-zA-Z0-9]{8,32}$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "minItems": 1, + "uniqueItems": true, + "description": "The tags associated with the private virtual interface.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with the private virtual interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Mtu": { + "description": "The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.", + "type": "integer", + "markdownDescription": "The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "attributes": { + "VirtualInterfaceId": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VirtualInterfaceArn": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxvif/dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-publicvirtualinterface.json b/server/schema/resources/aws-directconnect-publicvirtualinterface.json new file mode 100644 index 00000000..bb999c8f --- /dev/null +++ b/server/schema/resources/aws-directconnect-publicvirtualinterface.json @@ -0,0 +1,264 @@ +{ + "tagging": { + "permissions": [ + "directconnect:TagResource", + "directconnect:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::DirectConnect::PublicVirtualInterface", + "readOnlyProperties": [ + "/properties/BgpPeers/*/BgpPeerId", + "/properties/VirtualInterfaceArn", + "/properties/VirtualInterfaceId" + ], + "description": "Resource Type definition for AWS::DirectConnect::PublicVirtualInterface", + "createOnlyProperties": [ + "/properties/AllocatePublicVirtualInterfaceRoleArn", + "/properties/RouteFilterPrefixes", + "/properties/Vlan" + ], + "primaryIdentifier": [ + "/properties/VirtualInterfaceArn" + ], + "required": [ + "BgpPeers", + "ConnectionId", + "VirtualInterfaceName", + "Vlan" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "propertyTransform": { + "/properties/ConnectionId": "$lowercase($substringAfter(ConnectionId, \"/\"))" + }, + "handlers": { + "read": { + "permissions": [ + "directconnect:DescribeVirtualInterfaces" + ] + }, + "create": { + "permissions": [ + "directconnect:ConfirmPublicVirtualInterface", + "directconnect:CreateBGPPeer", + "directconnect:CreatePublicVirtualInterface", + "directconnect:DescribeVirtualInterfaces", + "directconnect:TagResource", + "sts:AssumeRole" + ] + }, + "update": { + "permissions": [ + "directconnect:AssociateVirtualInterface", + "directconnect:CreateBGPPeer", + "directconnect:DeleteBGPPeer", + "directconnect:DescribeVirtualInterfaces", + "directconnect:TagResource", + "directconnect:UntagResource", + "directconnect:UpdateVirtualInterfaceAttributes" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeVirtualInterfaces" + ] + }, + "delete": { + "permissions": [ + "directconnect:DeleteVirtualInterface", + "directconnect:DescribeVirtualInterfaces" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AllocatePublicVirtualInterfaceRoleArn" + ], + "additionalIdentifiers": [ + [ + "/properties/VirtualInterfaceId" + ] + ], + "additionalProperties": false, + "definitions": { + "BgpPeer": { + "description": "Information about a BGP peer.", + "additionalProperties": false, + "type": "object", + "properties": { + "BgpPeerId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^dxpeer-[a-z0-9]{8}$ \nUpdate requires: No interruption\n" + }, + "AuthKey": { + "description": "The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximum length of 80 characters.", + "type": "string", + "markdownDescription": "The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximum length of 80 characters.\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9\\\\!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\^_`{|}~]{6,80}$ \nUpdate requires: No interruption\n" + }, + "AddressFamily": { + "description": "The address family for the BGP peer.", + "type": "string", + "markdownDescription": "The address family for the BGP peer.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(ipv4)|(ipv6)$ \nUpdate requires: No interruption\n" + }, + "AmazonAddress": { + "description": "The IP address assigned to the Amazon interface.", + "type": "string", + "markdownDescription": "The IP address assigned to the Amazon interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Asn": { + "description": "The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.", + "type": "string", + "markdownDescription": "The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[1-9][0-9]*$ \nUpdate requires: No interruption\n" + }, + "CustomerAddress": { + "description": "The IP address assigned to the customer interface.", + "type": "string", + "markdownDescription": "The IP address assigned to the customer interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AddressFamily", + "Asn" + ], + "markdownDescription": "Information about a BGP peer.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -.", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -.", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "replacementStrategy": "delete_then_create", + "properties": { + "BgpPeers": { + "minItems": 1, + "maxItems": 2, + "uniqueItems": true, + "description": "The BGP peers configured on this virtual interface.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/BgpPeer" + }, + "markdownDescription": "The BGP peers configured on this virtual interface.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ConnectionId": { + "description": "The ID or ARN of the connection or LAG.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Connection", + "propertyPath": "/properties/ConnectionId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Connection", + "propertyPath": "/properties/ConnectionArn" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the connection or LAG.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^((arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:(dxcon/dxcon|dxlag/dxlag))|dx(con|lag))-[a-z0-9A-Z]{8,21}$ \nUpdate requires: No interruption\n" + }, + "RouteFilterPrefixes": { + "minItems": 1, + "uniqueItems": true, + "description": "The routes to be advertised to the AWS network in this region.", + "insertionOrder": false, + "type": "array", + "items": { + "description": "A CIDR block for the advertised route. An IPv6 CIDR must use /64 or shorter.", + "type": "string", + "markdownDescription": "A CIDR block for the advertised route. An IPv6 CIDR must use /64 or shorter.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The routes to be advertised to the AWS network in this region.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "VirtualInterfaceId": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VirtualInterfaceName": { + "description": "The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).", + "type": "string", + "markdownDescription": "The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[\\w \\-_,\\/]{1,100}$ \nUpdate requires: No interruption\n" + }, + "VirtualInterfaceArn": { + "description": "The ARN of the virtual interface.", + "type": "string", + "markdownDescription": "The ARN of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxvif/dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Vlan": { + "description": "The ID of the VLAN.", + "maximum": 4095, + "type": "integer", + "minimum": 0, + "markdownDescription": "The ID of the VLAN.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + }, + "Tags": { + "minItems": 1, + "uniqueItems": true, + "description": "The tags associated with the public virtual interface.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with the public virtual interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllocatePublicVirtualInterfaceRoleArn": { + "description": "The Amazon Resource Name (ARN) of the role to allocate the public virtual interface. Needs directconnect:AllocatePublicVirtualInterface permissions and tag permissions if applicable.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to allocate the public virtual interface. Needs directconnect:AllocatePublicVirtualInterface permissions and tag permissions if applicable.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: Replacement\n" + } + }, + "attributes": { + "VirtualInterfaceId": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VirtualInterfaceArn": { + "description": "The ARN of the virtual interface.", + "type": "string", + "markdownDescription": "The ARN of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxvif/dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directconnect-transitvirtualinterface.json b/server/schema/resources/aws-directconnect-transitvirtualinterface.json new file mode 100644 index 00000000..4c046386 --- /dev/null +++ b/server/schema/resources/aws-directconnect-transitvirtualinterface.json @@ -0,0 +1,282 @@ +{ + "tagging": { + "permissions": [ + "directconnect:TagResource", + "directconnect:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::DirectConnect::TransitVirtualInterface", + "readOnlyProperties": [ + "/properties/BgpPeers/*/BgpPeerId", + "/properties/VirtualInterfaceArn", + "/properties/VirtualInterfaceId" + ], + "description": "Resource Type definition for AWS::DirectConnect::TransitVirtualInterface", + "createOnlyProperties": [ + "/properties/AllocateTransitVirtualInterfaceRoleArn", + "/properties/DirectConnectGatewayId", + "/properties/Vlan" + ], + "primaryIdentifier": [ + "/properties/VirtualInterfaceArn" + ], + "required": [ + "BgpPeers", + "ConnectionId", + "DirectConnectGatewayId", + "VirtualInterfaceName", + "Vlan" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "propertyTransform": { + "/properties/DirectConnectGatewayId": "$substringAfter(DirectConnectGatewayId, \"/\")", + "/properties/ConnectionId": "$lowercase($substringAfter(ConnectionId, \"/\"))" + }, + "handlers": { + "read": { + "permissions": [ + "directconnect:DescribeVirtualInterfaces" + ] + }, + "create": { + "permissions": [ + "directconnect:CreateTransitVirtualInterface", + "directconnect:ConfirmTransitVirtualInterface", + "directconnect:DescribeVirtualInterfaces", + "directconnect:CreateBGPPeer", + "directconnect:TagResource", + "sts:AssumeRole" + ] + }, + "update": { + "permissions": [ + "directconnect:UpdateVirtualInterfaceAttributes", + "directconnect:AssociateVirtualInterface", + "directconnect:DescribeVirtualInterfaces", + "directconnect:CreateBGPPeer", + "directconnect:DeleteBGPPeer", + "directconnect:TagResource", + "directconnect:UntagResource" + ] + }, + "list": { + "permissions": [ + "directconnect:DescribeVirtualInterfaces" + ] + }, + "delete": { + "permissions": [ + "directconnect:DeleteVirtualInterface", + "directconnect:DescribeVirtualInterfaces" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AllocateTransitVirtualInterfaceRoleArn" + ], + "additionalIdentifiers": [ + [ + "/properties/VirtualInterfaceId" + ] + ], + "additionalProperties": false, + "definitions": { + "BgpPeer": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "BgpPeerId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^dxpeer-[a-z0-9]{8}$ \nUpdate requires: No interruption\n" + }, + "AuthKey": { + "description": "The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximum length of 80 characters.", + "type": "string", + "markdownDescription": "The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximum length of 80 characters.\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9\\\\!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\^_`{|}~]{6,80}$ \nUpdate requires: No interruption\n" + }, + "AddressFamily": { + "description": "The address family for the BGP peer.", + "type": "string", + "markdownDescription": "The address family for the BGP peer.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(ipv4)|(ipv6)$ \nUpdate requires: No interruption\n" + }, + "AmazonAddress": { + "description": "The IP address assigned to the Amazon interface.", + "type": "string", + "markdownDescription": "The IP address assigned to the Amazon interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Asn": { + "description": "The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.", + "type": "string", + "markdownDescription": "The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[1-9][0-9]*$ \nUpdate requires: No interruption\n" + }, + "CustomerAddress": { + "description": "The IP address assigned to the customer interface.", + "type": "string", + "markdownDescription": "The IP address assigned to the customer interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F:.]+/[0-9]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AddressFamily", + "Asn" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -.", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -.", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "replacementStrategy": "delete_then_create", + "properties": { + "BgpPeers": { + "minItems": 1, + "maxItems": 2, + "uniqueItems": true, + "description": "The BGP peers configured on this virtual interface..", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/BgpPeer" + }, + "markdownDescription": "The BGP peers configured on this virtual interface..\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ConnectionId": { + "description": "The ID or ARN of the connection or LAG.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Connection", + "propertyPath": "/properties/ConnectionId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Connection", + "propertyPath": "/properties/ConnectionArn" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::Lag", + "propertyPath": "/properties/LagArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the connection or LAG.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^((arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:(dxcon/dxcon|dxlag/dxlag))|dx(con|lag))-[a-z0-9A-Z]{8,21}$ \nUpdate requires: No interruption\n" + }, + "DirectConnectGatewayId": { + "description": "The ID or ARN of the Direct Connect gateway.", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "propertyPath": "/properties/DirectConnectGatewayId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::DirectConnect::DirectConnectGateway", + "propertyPath": "/properties/DirectConnectGatewayArn" + } + } + ], + "type": "string", + "markdownDescription": "The ID or ARN of the Direct Connect gateway.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(arn:aws[a-z-]*:directconnect::[0-9]{12}:dx-gateway/)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: Replacement\n" + }, + "EnableSiteLink": { + "description": "Indicates whether to enable or disable SiteLink.", + "type": "boolean", + "markdownDescription": "Indicates whether to enable or disable SiteLink.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "VirtualInterfaceId": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VirtualInterfaceName": { + "description": "The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).", + "type": "string", + "markdownDescription": "The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[\\w \\-_,\\/]{1,100}$ \nUpdate requires: No interruption\n" + }, + "VirtualInterfaceArn": { + "description": "The ARN of the virtual interface.", + "type": "string", + "markdownDescription": "The ARN of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxvif/dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Vlan": { + "description": "The ID of the VLAN.", + "maximum": 4095, + "type": "integer", + "minimum": 0, + "markdownDescription": "The ID of the VLAN.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + }, + "AllocateTransitVirtualInterfaceRoleArn": { + "description": "The Amazon Resource Name (ARN) of the role to allocate the TransitVifAllocation. Needs directconnect:AllocateTransitVirtualInterface permissions and tag permissions if applicable.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to allocate the TransitVifAllocation. Needs directconnect:AllocateTransitVirtualInterface permissions and tag permissions if applicable.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:iam::[0-9]{12}:role/.+$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "minItems": 1, + "uniqueItems": true, + "description": "The tags associated with the private virtual interface.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with the private virtual interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Mtu": { + "description": "The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.", + "type": "integer", + "markdownDescription": "The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "attributes": { + "VirtualInterfaceId": { + "description": "The ID of the virtual interface.", + "type": "string", + "markdownDescription": "The ID of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VirtualInterfaceArn": { + "description": "The ARN of the virtual interface.", + "type": "string", + "markdownDescription": "The ARN of the virtual interface.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:directconnect:[a-z0-9-]+:[0-9]{12}:dxvif/dxvif-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-directoryservice-simplead.json b/server/schema/resources/aws-directoryservice-simplead.json index e812fbbd..d530322f 100644 --- a/server/schema/resources/aws-directoryservice-simplead.json +++ b/server/schema/resources/aws-directoryservice-simplead.json @@ -4,6 +4,32 @@ "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html", "additionalProperties": false, "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "description": "The key name of the tag", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The value for the tag.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "VpcSettings": { "$comment": "Contains VPC information", "type": "object", @@ -94,6 +120,15 @@ "description": "VPC settings of the Simple AD directory server in AWS.", "$ref": "#/definitions/VpcSettings", "markdownDescription": "VPC settings of the Simple AD directory server in AWS.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ @@ -102,10 +137,16 @@ "Name" ], "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ds:AddTagsToResource", + "ds:RemoveTagsFromResource", + "ds:ListTagsForResource" + ] }, "readOnlyProperties": [ "/properties/Alias", @@ -134,6 +175,8 @@ "ds:CreateAlias", "ds:EnableSso", "ds:DescribeDirectories", + "ds:AddTagsToResource", + "ds:ListTagsForResource", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:CreateSecurityGroup", @@ -142,6 +185,7 @@ "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:CreateTags", + "ec2:DescribeTags", "ec2:RevokeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress" ], @@ -149,14 +193,21 @@ }, "read": { "permissions": [ - "ds:DescribeDirectories" + "ds:DescribeDirectories", + "ds:ListTagsForResource" ] }, "update": { "permissions": [ "ds:EnableSso", "ds:DisableSso", - "ds:DescribeDirectories" + "ds:DescribeDirectories", + "ds:AddTagsToResource", + "ds:RemoveTagsFromResource", + "ds:ListTagsForResource", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags" ] }, "delete": { diff --git a/server/schema/resources/aws-dlm-lifecyclepolicy.json b/server/schema/resources/aws-dlm-lifecyclepolicy.json index 4157e7de..4ebed689 100644 --- a/server/schema/resources/aws-dlm-lifecyclepolicy.json +++ b/server/schema/resources/aws-dlm-lifecyclepolicy.json @@ -35,7 +35,12 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "CrossRegionCopyTargets": { - "$ref": "#/definitions/CrossRegionCopyTargets" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/CrossRegionCopyTarget" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "PolicyDetails": { "$ref": "#/definitions/PolicyDetails" @@ -62,119 +67,19 @@ } }, "definitions": { - "Action": { - "type": "object", - "additionalProperties": false, - "properties": { - "CrossRegionCopy": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/CrossRegionCopyAction" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "CrossRegionCopy", - "Name" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Exclusions": { - "type": "object", - "additionalProperties": false, - "properties": { - "ExcludeTags": { - "$ref": "#/definitions/ExcludeTags" - }, - "ExcludeVolumeTypes": { - "$ref": "#/definitions/ExcludeVolumeTypesList" - }, - "ExcludeBootVolumes": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ArchiveRule": { - "type": "object", - "additionalProperties": false, - "properties": { - "RetainRule": { - "$ref": "#/definitions/ArchiveRetainRule" - } - }, - "required": [ - "RetainRule" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ExcludeVolumeTypesList": { - "type": "object", - "additionalProperties": false, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "DeprecateRule": { + "Script": { "type": "object", "additionalProperties": false, "properties": { - "IntervalUnit": { + "ExecutionHandlerService": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Count": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Interval": { + "ExecutionTimeout": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CrossRegionCopyDeprecateRule": { - "type": "object", - "additionalProperties": false, - "properties": { - "IntervalUnit": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Interval": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "required": [ - "IntervalUnit", - "Interval" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CreateRule": { - "type": "object", - "additionalProperties": false, - "properties": { - "IntervalUnit": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Scripts": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Script" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "Times": { + "Stages": { "type": "array", "uniqueItems": false, "items": { @@ -183,165 +88,101 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "CronExpression": { + "ExecutionHandler": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Interval": { + "MaximumRetryCount": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Location": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "ExecuteOperationOnScriptFailure": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "PolicyDetails": { + "Action": { "type": "object", "additionalProperties": false, "properties": { - "PolicyLanguage": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ResourceTypes": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Schedules": { + "CrossRegionCopy": { "type": "array", "uniqueItems": false, "items": { - "$ref": "#/definitions/Schedule" + "$ref": "#/definitions/CrossRegionCopyAction" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "PolicyType": { + "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "CreateInterval": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Parameters": { - "$ref": "#/definitions/Parameters" - }, - "ExtendDeletion": { + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CrossRegionCopy", + "Name" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Parameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "ExcludeBootVolume": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "Exclusions": { - "$ref": "#/definitions/Exclusions" - }, - "Actions": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Action" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ResourceType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "RetainInterval": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "EventSource": { - "$ref": "#/definitions/EventSource" - }, - "CrossRegionCopyTargets": { - "$ref": "#/definitions/CrossRegionCopyTargets" + "NoReboot": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "TargetTags": { + "ExcludeDataVolumeTags": { "type": "array", "uniqueItems": false, "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ResourceLocations": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "CopyTags": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Script": { + "CrossRegionCopyTarget": { "type": "object", "additionalProperties": false, "properties": { - "ExecutionHandlerService": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ExecutionTimeout": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Stages": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ExecutionHandler": { + "TargetRegion": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "MaximumRetryCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "ExecuteOperationOnScriptFailure": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Parameters": { + "Exclusions": { "type": "object", "additionalProperties": false, "properties": { - "ExcludeBootVolume": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "NoReboot": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "ExcludeDataVolumeTags": { + "ExcludeTags": { "type": "array", "uniqueItems": false, "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ExcludeVolumeTypes": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/VolumeTypeValues" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ExcludeBootVolumes": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -419,9 +260,17 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ExcludeTags": { + "ArchiveRule": { "type": "object", "additionalProperties": false, + "properties": { + "RetainRule": { + "$ref": "#/definitions/ArchiveRetainRule" + } + }, + "required": [ + "RetainRule" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EventParameters": { @@ -509,6 +358,44 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DeprecateRule": { + "type": "object", + "additionalProperties": false, + "properties": { + "IntervalUnit": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Count": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Interval": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CrossRegionCopyDeprecateRule": { + "type": "object", + "additionalProperties": false, + "properties": { + "IntervalUnit": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Interval": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IntervalUnit", + "Interval" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ArchiveRetainRule": { "type": "object", "additionalProperties": false, @@ -522,9 +409,44 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CrossRegionCopyTargets": { + "CreateRule": { "type": "object", "additionalProperties": false, + "properties": { + "IntervalUnit": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Scripts": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Script" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Times": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CronExpression": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Interval": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Location": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Schedule": { @@ -601,6 +523,15 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "AvailabilityZoneIds": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "AvailabilityZones": { "type": "array", "uniqueItems": false, @@ -617,6 +548,100 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "PolicyDetails": { + "type": "object", + "additionalProperties": false, + "properties": { + "PolicyLanguage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceTypes": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Schedules": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Schedule" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PolicyType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CreateInterval": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Parameters": { + "$ref": "#/definitions/Parameters" + }, + "ExtendDeletion": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Exclusions": { + "$ref": "#/definitions/Exclusions" + }, + "Actions": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Action" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ResourceType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RetainInterval": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "EventSource": { + "$ref": "#/definitions/EventSource" + }, + "CrossRegionCopyTargets": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/CrossRegionCopyTarget" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TargetTags": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ResourceLocations": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CopyTags": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RetentionArchiveTier": { "type": "object", "additionalProperties": false, @@ -678,6 +703,11 @@ } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VolumeTypeValues": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "primaryIdentifier": [ diff --git a/server/schema/resources/aws-dms-dataprovider.json b/server/schema/resources/aws-dms-dataprovider.json index 346f9e1a..d527bdff 100644 --- a/server/schema/resources/aws-dms-dataprovider.json +++ b/server/schema/resources/aws-dms-dataprovider.json @@ -84,6 +84,15 @@ "scram_sha_1" ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: default | mongodb_cr | scram_sha_1 \nUpdate requires: No interruption\n" + }, + "SybaseSslModeValue": { + "type": "string", + "enum": [ + "none", + "require", + "verify-ca" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: none | require | verify-ca \nUpdate requires: No interruption\n" } }, "properties": { @@ -137,9 +146,10 @@ "mongodb", "docdb", "db2", - "db2_zos" + "db2_zos", + "sybase" ], - "markdownDescription": "The property describes a data engine for the data provider.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aurora | aurora_postgresql | mysql | oracle | postgres | sqlserver | redshift | mariadb | mongodb | docdb | db2 | db2_zos \nUpdate requires: No interruption\n" + "markdownDescription": "The property describes a data engine for the data provider.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aurora | aurora_postgresql | mysql | oracle | postgres | sqlserver | redshift | mariadb | mongodb | docdb | db2 | db2_zos | sybase \nUpdate requires: No interruption\n" }, "ExactSettings": { "description": "The property describes the exact settings which can be modified", @@ -489,6 +499,42 @@ ], "additionalProperties": false, "markdownDescription": "IbmDb2zOsSettings property identifier.\n\n---\n\nRequired: Conditional \nUpdate requires: No interruption\n" + }, + "SybaseAseSettings": { + "description": "SybaseAseSettings property identifier.", + "type": "object", + "properties": { + "ServerName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Port": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "DatabaseName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EncryptPassword": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "SslMode": { + "$ref": "#/definitions/SybaseSslModeValue" + }, + "CertificateArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ServerName", + "Port", + "SslMode" + ], + "additionalProperties": false, + "markdownDescription": "SybaseAseSettings property identifier.\n\n---\n\nRequired: Conditional \nUpdate requires: No interruption\n" } }, "anyOf": [ @@ -541,6 +587,11 @@ "required": [ "IbmDb2zOsSettings" ] + }, + { + "required": [ + "SybaseAseSettings" + ] } ], "additionalProperties": false, diff --git a/server/schema/resources/aws-docdb-dbcluster.json b/server/schema/resources/aws-docdb-dbcluster.json index 69933ba9..e3edbf1f 100644 --- a/server/schema/resources/aws-docdb-dbcluster.json +++ b/server/schema/resources/aws-docdb-dbcluster.json @@ -58,7 +58,7 @@ }, "GlobalClusterIdentifier": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "RestoreType": { "type": "string", @@ -203,7 +203,6 @@ "/properties/KmsKeyId", "/properties/MasterUsername", "/properties/SourceDBClusterIdentifier", - "/properties/GlobalClusterIdentifier", "/properties/DBClusterIdentifier", "/properties/AvailabilityZones", "/properties/DBSubnetGroupName", diff --git a/server/schema/resources/aws-docdb-globalcluster.json b/server/schema/resources/aws-docdb-globalcluster.json new file mode 100644 index 00000000..0d64cca2 --- /dev/null +++ b/server/schema/resources/aws-docdb-globalcluster.json @@ -0,0 +1,199 @@ +{ + "typeName": "AWS::DocDB::GlobalCluster", + "description": "The AWS::DocDB::GlobalCluster resource represents an Amazon DocumentDB Global Cluster.", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rds:AddTagsToResource", + "rds:ListTagsForResource", + "rds:RemoveTagsFromResource" + ] + }, + "properties": { + "GlobalClusterIdentifier": { + "description": "The cluster identifier of the global cluster.", + "type": "string", + "minLength": 1, + "maxLength": 63, + "markdownDescription": "The cluster identifier of the global cluster.\n\n---\n\nRequired: Conditional \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$ \nUpdate requires: Replacement\n" + }, + "SourceDBClusterIdentifier": { + "description": "The Amazon Resource Name (ARN) to use as the primary cluster of the global cluster. You may also choose to instead specify the DBClusterIdentifier. If you provide a value for this parameter, don't specify values for the following settings because Amazon DocumentDB uses the values from the specified source DB cluster: Engine, EngineVersion, StorageEncrypted", + "type": "string", + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "markdownDescription": "The Amazon Resource Name (ARN) to use as the primary cluster of the global cluster. You may also choose to instead specify the DBClusterIdentifier. If you provide a value for this parameter, don't specify values for the following settings because Amazon DocumentDB uses the values from the specified source DB cluster: Engine, EngineVersion, StorageEncrypted\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" + }, + "Engine": { + "description": "The database engine to use for this global cluster.", + "type": "string", + "default": "docdb", + "enum": [ + "docdb" + ], + "markdownDescription": "The database engine to use for this global cluster.\n\n---\n\nRequired: Conditional \nType: String \nAllowed Values: docdb \nUpdate requires: Replacement\n" + }, + "EngineVersion": { + "description": "The engine version to use for this global cluster.", + "type": "string", + "markdownDescription": "The engine version to use for this global cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "DeletionProtection": { + "description": "Indicates whether the global cluster has deletion protection enabled. The global cluster can't be deleted when deletion protection is enabled.", + "type": "boolean", + "markdownDescription": "Indicates whether the global cluster has deletion protection enabled. The global cluster can't be deleted when deletion protection is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "StorageEncrypted": { + "description": "Indicates whether the global cluster has storage encryption enabled.", + "type": "boolean", + "markdownDescription": "Indicates whether the global cluster has storage encryption enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "description": "The tags to be assigned to the Amazon DocumentDB resource.", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to be assigned to the Amazon DocumentDB resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "GlobalClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.", + "type": "string", + "markdownDescription": "The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GlobalClusterArn": { + "description": "The Amazon Resource Name (ARN) for the global cluster.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) for the global cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with an Amazon DocumentDB resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with an Amazon DocumentDB resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "required": [ + "GlobalClusterIdentifier" + ], + "oneOf": [ + { + "required": [ + "Engine" + ] + }, + { + "required": [ + "SourceDBClusterIdentifier" + ] + } + ], + "createOnlyProperties": [ + "/properties/Engine", + "/properties/EngineVersion", + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted" + ], + "readOnlyProperties": [ + "/properties/GlobalClusterArn", + "/properties/GlobalClusterResourceId" + ], + "writeOnlyProperties": [ + "/properties/SourceDBClusterIdentifier" + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeGlobalClusters", + "rds:DescribeDBClusters", + "rds:AddTagsToResource", + "rds:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters", + "rds:AddTagsToResource", + "rds:ListTagsForResource", + "rds:RemoveTagsFromResource" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteGlobalCluster", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource" + ] + } + }, + "attributes": { + "GlobalClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.", + "type": "string", + "markdownDescription": "The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GlobalClusterArn": { + "description": "The Amazon Resource Name (ARN) for the global cluster.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) for the global cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-dsql-cluster.json b/server/schema/resources/aws-dsql-cluster.json index 8fd418b2..f2c1b069 100644 --- a/server/schema/resources/aws-dsql-cluster.json +++ b/server/schema/resources/aws-dsql-cluster.json @@ -120,6 +120,26 @@ } }, "markdownDescription": "The encryption configuration details for the cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Endpoint": { + "description": "The DSQL cluster endpoint.", + "type": "string", + "markdownDescription": "The DSQL cluster endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcEndpoint": { + "description": "The DSQL cluster VPC endpoint.", + "type": "string", + "markdownDescription": "The DSQL cluster VPC endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyVersion": { + "description": "The version number of the cluster's resource based policy", + "type": "string", + "markdownDescription": "The version number of the cluster's resource based policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyDocument": { + "description": "The IAM policy applied to the cluster resource.", + "type": "string", + "markdownDescription": "The IAM policy applied to the cluster resource.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -145,7 +165,10 @@ "/properties/CreationTime", "/properties/Status", "/properties/VpcEndpointServiceName", - "/properties/EncryptionDetails" + "/properties/EncryptionDetails", + "/properties/PolicyVersion", + "/properties/Endpoint", + "/properties/VpcEndpoint" ], "writeOnlyProperties": [ "/properties/KmsEncryptionKey" @@ -156,12 +179,14 @@ "dsql:CreateCluster", "dsql:UpdateCluster", "dsql:GetCluster", + "dsql:GetClusterPolicy", "dsql:TagResource", "dsql:GetVpcEndpointServiceName", "dsql:ListTagsForResource", "iam:CreateServiceLinkedRole", "dsql:PutMultiRegionProperties", "dsql:AddPeerCluster", + "dsql:PutClusterPolicy", "dsql:PutWitnessRegion", "kms:Decrypt", "kms:Encrypt", @@ -172,24 +197,26 @@ "read": { "permissions": [ "dsql:GetCluster", + "dsql:GetClusterPolicy", "dsql:GetVpcEndpointServiceName", - "dsql:ListTagsForResource", - "tag:GetTagKeys", - "tag:GetTagValues" + "dsql:ListTagsForResource" ] }, "update": { "permissions": [ "dsql:UpdateCluster", "dsql:GetCluster", + "dsql:GetClusterPolicy", "dsql:UntagResource", "dsql:TagResource", "dsql:GetVpcEndpointServiceName", "dsql:ListTagsForResource", + "dsql:PutClusterPolicy", "dsql:PutMultiRegionProperties", "dsql:PutWitnessRegion", "dsql:AddPeerCluster", "dsql:RemovePeerCluster", + "dsql:DeleteClusterPolicy", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey", @@ -206,9 +233,7 @@ "list": { "permissions": [ "dsql:ListClusters", - "dsql:ListTagsForResource", - "tag:GetTagKeys", - "tag:GetTagValues" + "dsql:ListTagsForResource" ] } }, @@ -260,6 +285,21 @@ } }, "markdownDescription": "The encryption configuration details for the cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Endpoint": { + "description": "The DSQL cluster endpoint.", + "type": "string", + "markdownDescription": "The DSQL cluster endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcEndpoint": { + "description": "The DSQL cluster VPC endpoint.", + "type": "string", + "markdownDescription": "The DSQL cluster VPC endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PolicyVersion": { + "description": "The version number of the cluster's resource based policy", + "type": "string", + "markdownDescription": "The version number of the cluster's resource based policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-dynamodb-globaltable.json b/server/schema/resources/aws-dynamodb-globaltable.json index ebf4e5c1..95ad7f60 100644 --- a/server/schema/resources/aws-dynamodb-globaltable.json +++ b/server/schema/resources/aws-dynamodb-globaltable.json @@ -1,4 +1,28 @@ { + "typeName": "AWS::DynamoDB::GlobalTable", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "createOnlyProperties": [ + "/properties/TableName" + ], + "primaryIdentifier": [ + "/properties/TableName" + ], + "required": [ + "Replicas" + ], + "conditionalCreateOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/GlobalTableSourceArn", + "/properties/KeySchema" + ], + "propertyTransform": { + "/properties/Replicas/*/GlobalTableSettingsReplicationMode": "GlobalTableSettingsReplicationMode $OR ($exists(GlobalTableSettingsReplicationMode) ? null : \"DISABLED\") $OR ($exists(GlobalTableSettingsReplicationMode) ? null : \"ENABLED_WITH_OVERRIDES\")" + }, "handlers": { "read": { "permissions": [ @@ -118,13 +142,6 @@ ] } }, - "typeName": "AWS::DynamoDB::GlobalTable", - "readOnlyProperties": [ - "/properties/Arn", - "/properties/StreamArn", - "/properties/TableId" - ], - "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", "additionalIdentifiers": [ [ "/properties/Arn" @@ -140,16 +157,7 @@ "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", "/properties/GlobalTableSourceArn" ], - "createOnlyProperties": [ - "/properties/LocalSecondaryIndexes", - "/properties/TableName", - "/properties/KeySchema", - "/properties/GlobalTableSourceArn" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/TableName" - ], "definitions": { "LocalSecondaryIndex": { "additionalProperties": false, @@ -194,6 +202,14 @@ "ContributorInsightsSpecification": { "$ref": "#/definitions/ContributorInsightsSpecification" }, + "GlobalTableSettingsReplicationMode": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, "PointInTimeRecoverySpecification": { "$ref": "#/definitions/PointInTimeRecoverySpecification" }, @@ -350,7 +366,7 @@ }, "KeySchema": { "minItems": 1, - "maxItems": 2, + "maxItems": 8, "uniqueItems": true, "type": "array", "items": { @@ -361,9 +377,15 @@ "WarmThroughput": { "$ref": "#/definitions/WarmThroughput" }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/GlobalReadProvisionedThroughputSettings" + }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" + }, "WriteOnDemandThroughputSettings": { "$ref": "#/definitions/WriteOnDemandThroughputSettings" } @@ -717,6 +739,18 @@ "Enabled" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GlobalReadProvisionedThroughputSettings": { + "additionalProperties": false, + "type": "object", + "properties": { + "ReadCapacityUnits": { + "type": "integer", + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -738,14 +772,6 @@ "StreamSpecification": { "$ref": "#/definitions/StreamSpecification" }, - "GlobalTableSettingsReplicationMode": { - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" - }, "WarmThroughput": { "$ref": "#/definitions/WarmThroughput" }, @@ -764,7 +790,7 @@ }, "GlobalTableSourceArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Some interruptions\n" }, "WriteOnDemandThroughputSettings": { "$ref": "#/definitions/WriteOnDemandThroughputSettings" @@ -792,7 +818,7 @@ "items": { "$ref": "#/definitions/AttributeDefinition" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "BillingMode": { "type": "string", @@ -815,7 +841,7 @@ "items": { "$ref": "#/definitions/KeySchema" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" }, "LocalSecondaryIndexes": { "uniqueItems": true, @@ -824,7 +850,7 @@ "items": { "$ref": "#/definitions/LocalSecondaryIndex" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" }, "Arn": { "type": "string", @@ -834,15 +860,16 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/GlobalReadProvisionedThroughputSettings" + }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" + }, "TimeToLiveSpecification": { "$ref": "#/definitions/TimeToLiveSpecification" } }, - "required": [ - "KeySchema", - "AttributeDefinitions", - "Replicas" - ], "attributes": { "TableId": { "type": "string", diff --git a/server/schema/resources/aws-dynamodb-table.json b/server/schema/resources/aws-dynamodb-table.json index 0e8750ae..45bb9ee5 100644 --- a/server/schema/resources/aws-dynamodb-table.json +++ b/server/schema/resources/aws-dynamodb-table.json @@ -739,15 +739,6 @@ "$ref": "#/definitions/ImportSourceSpecification", "markdownDescription": "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" }, - "GlobalTableSettingsReplicationMode": { - "description": "", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" - }, "PointInTimeRecoverySpecification": { "description": "The settings used to enable point in time recovery.", "$ref": "#/definitions/PointInTimeRecoverySpecification", diff --git a/server/schema/resources/aws-ec2-capacitymanagerdataexport.json b/server/schema/resources/aws-ec2-capacitymanagerdataexport.json new file mode 100644 index 00000000..d477a0d4 --- /dev/null +++ b/server/schema/resources/aws-ec2-capacitymanagerdataexport.json @@ -0,0 +1,147 @@ +{ + "typeName": "AWS::EC2::CapacityManagerDataExport", + "description": "Resource Type definition for AWS::EC2::CapacityManagerDataExport", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-capacity-manager-data-export.git", + "additionalProperties": false, + "properties": { + "CapacityManagerDataExportId": { + "type": "string", + "description": "The unique identifier of the capacity manager data export.", + "markdownDescription": "The unique identifier of the capacity manager data export.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "S3BucketName": { + "type": "string", + "description": "The name of the Amazon S3 bucket where the capacity manager data export will be stored. The bucket must exist and be accessible by EC2 Capacity Manager service.", + "markdownDescription": "The name of the Amazon S3 bucket where the capacity manager data export will be stored. The bucket must exist and be accessible by EC2 Capacity Manager service.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "S3BucketPrefix": { + "type": "string", + "description": "The prefix for the S3 bucket location where exported files will be placed. If not specified, files will be placed in the root of the bucket.", + "markdownDescription": "The prefix for the S3 bucket location where exported files will be placed. If not specified, files will be placed in the root of the bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Schedule": { + "type": "string", + "enum": [ + "hourly" + ], + "description": "The schedule for the capacity manager data export. Currently supports hourly exports that provide periodic snapshots of capacity manager data.", + "markdownDescription": "The schedule for the capacity manager data export. Currently supports hourly exports that provide periodic snapshots of capacity manager data.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: hourly \nUpdate requires: Replacement\n" + }, + "OutputFormat": { + "type": "string", + "enum": [ + "csv", + "parquet" + ], + "description": "The format of the exported capacity manager data. Choose 'csv' for comma-separated values or 'parquet' for optimized columnar storage format.", + "markdownDescription": "The format of the exported capacity manager data. Choose 'csv' for comma-separated values or 'parquet' for optimized columnar storage format.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: csv | parquet \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "An array of key-value pairs to apply to the capacity manager data export.", + "markdownDescription": "An array of key-value pairs to apply to the capacity manager data export.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "S3BucketName", + "Schedule", + "OutputFormat" + ], + "primaryIdentifier": [ + "/properties/CapacityManagerDataExportId" + ], + "readOnlyProperties": [ + "/properties/CapacityManagerDataExportId" + ], + "createOnlyProperties": [ + "/properties/S3BucketName", + "/properties/S3BucketPrefix", + "/properties/OutputFormat", + "/properties/Schedule" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityManagerDataExport", + "ec2:CreateTags", + "ec2:DescribeCapacityManagerDataExports" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports", + "ec2:DeleteCapacityManagerDataExport", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "attributes": { + "CapacityManagerDataExportId": { + "type": "string", + "description": "The unique identifier of the capacity manager data export.", + "markdownDescription": "The unique identifier of the capacity manager data export.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-capacityreservation.json b/server/schema/resources/aws-ec2-capacityreservation.json index 62cdc9fc..5ba23dfb 100644 --- a/server/schema/resources/aws-ec2-capacityreservation.json +++ b/server/schema/resources/aws-ec2-capacityreservation.json @@ -1,7 +1,151 @@ { + "tagging": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/TagSpecifications/*/Tags", + "cloudFormationSystemTags": true + }, + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeCapacityReservations" + ] + }, + "create": { + "permissions": [ + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:CreateTags" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyCapacityReservation", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:AssociateCapacityReservationBillingOwner", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservations" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + } + }, "typeName": "AWS::EC2::CapacityReservation", + "readOnlyProperties": [ + "/properties/Id", + "/properties/AvailableInstanceCount", + "/properties/TotalInstanceCount", + "/properties/StartDate", + "/properties/CapacityReservationArn", + "/properties/CreateDate", + "/properties/State", + "/properties/OwnerId", + "/properties/ReservationType", + "/properties/CapacityAllocationSet", + "/properties/CommitmentInfo", + "/properties/DeliveryPreference", + "/properties/CapacityReservationFleetId" + ], "description": "Resource Type definition for AWS::EC2::CapacityReservation", + "writeOnlyProperties": [ + "/properties/UnusedReservationBillingOwnerId" + ], + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/InstancePlatform", + "/properties/InstanceType", + "/properties/AvailabilityZone", + "/properties/TagSpecifications", + "/properties/OutPostArn", + "/properties/EphemeralStorage", + "/properties/EbsOptimized", + "/properties/PlacementGroupArn", + "/properties/AvailabilityZoneId" + ], "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "definitions": { + "CapacityAllocation": { + "additionalProperties": false, + "type": "object", + "properties": { + "AllocationType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Count": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TagSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "ResourceType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Tags": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "InstanceCount", + "InstancePlatform", + "InstanceType" + ], "properties": { "Tenancy": { "type": "string", @@ -12,25 +156,25 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TagSpecifications": { - "type": "array", - "insertionOrder": false, "uniqueItems": false, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/TagSpecification" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, - "AvailabilityZone": { + "UnusedReservationBillingOwnerId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TotalInstanceCount": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" }, - "EndDate": { + "CreateDate": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "EbsOptimized": { "type": "boolean", @@ -40,23 +184,11 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "InstanceCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" - }, - "PlacementGroupArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "AvailableInstanceCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" - }, - "InstancePlatform": { + "StartDate": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Id": { + "OwnerId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, @@ -64,221 +196,89 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "EphemeralStorage": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" - }, - "InstanceMatchCriteria": { + "CapacityReservationFleetId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "UnusedReservationBillingOwnerId": { + "AvailabilityZoneId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "AvailabilityZoneId": { + "AvailabilityZone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "StartDate": { + "EndDate": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "InstanceCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, "CapacityReservationArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "CreateDate": { + "PlacementGroupArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "State": { + "DeliveryPreference": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "OwnerId": { + "CommitmentInfo": { + "additionalProperties": false, + "type": "object", + "properties": { + "CommittedInstanceCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "CommitmentEndDate": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "DeliveryPreference": { + "AvailableInstanceCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReservationType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "CapacityReservationFleetId": { + "InstancePlatform": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "ReservationType": { + "Id": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "CapacityAllocationSet": { - "type": "array", - "insertionOrder": false, "uniqueItems": false, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/CapacityAllocation" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, - "CommitmentInfo": { - "type": "object", - "additionalProperties": false, - "properties": { - "CommitmentEndDate": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "CommittedInstanceCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" - } - }, - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TagSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "ResourceType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Tags": { - "type": "array", - "insertionOrder": false, - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CapacityAllocation": { - "type": "object", - "additionalProperties": false, - "properties": { - "AllocationType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Count": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "required": [ - "InstanceCount", - "InstancePlatform", - "InstanceType" - ], - "createOnlyProperties": [ - "/properties/Tenancy", - "/properties/InstancePlatform", - "/properties/InstanceType", - "/properties/AvailabilityZone", - "/properties/TagSpecifications", - "/properties/OutPostArn", - "/properties/EphemeralStorage", - "/properties/EbsOptimized", - "/properties/PlacementGroupArn", - "/properties/AvailabilityZoneId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id", - "/properties/AvailableInstanceCount", - "/properties/TotalInstanceCount", - "/properties/StartDate", - "/properties/CapacityReservationArn", - "/properties/CreateDate", - "/properties/State", - "/properties/OwnerId", - "/properties/ReservationType", - "/properties/CapacityAllocationSet", - "/properties/CommitmentInfo", - "/properties/DeliveryPreference", - "/properties/CapacityReservationFleetId" - ], - "writeOnlyProperties": [ - "/properties/UnusedReservationBillingOwnerId" - ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/TagSpecifications", - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCapacityReservation", - "ec2:DescribeCapacityReservations", - "ec2:CancelCapacityReservation", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:CreateCapacityReservation", - "ec2:DescribeCapacityReservations", - "ec2:CancelCapacityReservation", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCapacityReservations" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCapacityReservations" - ] + "EphemeralStorage": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, - "update": { - "permissions": [ - "ec2:ModifyCapacityReservation", - "ec2:CreateCapacityReservation", - "ec2:DescribeCapacityReservations", - "ec2:CancelCapacityReservation", - "ec2:AssociateCapacityReservationBillingOwner", - "ec2:CreateTags", - "ec2:DeleteTags" - ] + "InstanceMatchCriteria": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "attributes": { @@ -286,11 +286,7 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" }, - "AvailableInstanceCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Id": { + "CreateDate": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, @@ -298,57 +294,61 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "CapacityReservationArn": { + "OwnerId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "CreateDate": { + "CapacityReservationFleetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "State": { + "CapacityReservationArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "OwnerId": { + "DeliveryPreference": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "DeliveryPreference": { + "CommitmentInfo": { + "additionalProperties": false, + "type": "object", + "properties": { + "CommittedInstanceCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "CommitmentEndDate": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "CapacityReservationFleetId": { + "AvailableInstanceCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReservationType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "ReservationType": { + "Id": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "CapacityAllocationSet": { - "type": "array", - "insertionOrder": false, "uniqueItems": false, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/CapacityAllocation" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" - }, - "CommitmentInfo": { - "type": "object", - "additionalProperties": false, - "properties": { - "CommitmentEndDate": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "CommittedInstanceCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-capacityreservationfleet.json b/server/schema/resources/aws-ec2-capacityreservationfleet.json index c172b9a7..994ed8ee 100644 --- a/server/schema/resources/aws-ec2-capacityreservationfleet.json +++ b/server/schema/resources/aws-ec2-capacityreservationfleet.json @@ -7,7 +7,7 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/TagSpecifications", + "tagProperty": "/properties/TagSpecifications/*/Tags", "permissions": [ "ec2:CreateTags", "ec2:DeleteTags" diff --git a/server/schema/resources/aws-ec2-clientvpnendpoint.json b/server/schema/resources/aws-ec2-clientvpnendpoint.json index ccf4ff93..aa288f3e 100644 --- a/server/schema/resources/aws-ec2-clientvpnendpoint.json +++ b/server/schema/resources/aws-ec2-clientvpnendpoint.json @@ -70,6 +70,10 @@ "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "TrafficIpAddressType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "ClientLoginBannerOptions": { "$ref": "#/definitions/ClientLoginBannerOptions" }, @@ -81,6 +85,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "TransitGatewayConfiguration": { + "$ref": "#/definitions/TransitGatewayConfiguration" + }, "TransportProtocol": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" @@ -89,6 +96,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "EndpointIpAddressType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "VpnPort": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" @@ -196,6 +207,38 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TransitGatewayConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "TransitGatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AvailabilityZoneIds": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AvailabilityZones": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TransitGatewayId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CertificateAuthenticationRequest": { "type": "object", "additionalProperties": false, @@ -285,7 +328,10 @@ "/properties/TransportProtocol", "/properties/ClientCidrBlock", "/properties/TagSpecifications", - "/properties/AuthenticationOptions" + "/properties/AuthenticationOptions", + "/properties/TransitGatewayConfiguration", + "/properties/EndpointIpAddressType", + "/properties/TrafficIpAddressType" ], "primaryIdentifier": [ "/properties/Id" diff --git a/server/schema/resources/aws-ec2-clientvpnroute.json b/server/schema/resources/aws-ec2-clientvpnroute.json index 2c87b533..d90c5762 100644 --- a/server/schema/resources/aws-ec2-clientvpnroute.json +++ b/server/schema/resources/aws-ec2-clientvpnroute.json @@ -3,17 +3,13 @@ "description": "Resource Type definition for AWS::EC2::ClientVpnRoute", "additionalProperties": false, "properties": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "ClientVpnEndpointId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "TargetVpcSubnetId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "Description": { "type": "string", @@ -22,11 +18,14 @@ "DestinationCidrBlock": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ "ClientVpnEndpointId", - "TargetVpcSubnetId", "DestinationCidrBlock" ], "createOnlyProperties": [ diff --git a/server/schema/resources/aws-ec2-clientvpntargetnetworkassociation.json b/server/schema/resources/aws-ec2-clientvpntargetnetworkassociation.json index 0e0e2567..d7546ef5 100644 --- a/server/schema/resources/aws-ec2-clientvpntargetnetworkassociation.json +++ b/server/schema/resources/aws-ec2-clientvpntargetnetworkassociation.json @@ -3,9 +3,13 @@ "description": "Resource Type definition for AWS::EC2::ClientVpnTargetNetworkAssociation", "additionalProperties": false, "properties": { - "Id": { + "AvailabilityZoneId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "AvailabilityZone": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "ClientVpnEndpointId": { "type": "string", @@ -13,21 +17,26 @@ }, "SubnetId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ - "ClientVpnEndpointId", - "SubnetId" + "ClientVpnEndpointId" ], "createOnlyProperties": [ "/properties/ClientVpnEndpointId", + "/properties/AvailabilityZoneId", + "/properties/AvailabilityZone", "/properties/SubnetId" ], - "readOnlyProperties": [ + "primaryIdentifier": [ "/properties/Id" ], - "primaryIdentifier": [ + "readOnlyProperties": [ "/properties/Id" ], "attributes": { diff --git a/server/schema/resources/aws-ec2-ec2fleet.json b/server/schema/resources/aws-ec2-ec2fleet.json index 5a53e477..1741f200 100644 --- a/server/schema/resources/aws-ec2-ec2fleet.json +++ b/server/schema/resources/aws-ec2-ec2fleet.json @@ -1,81 +1,267 @@ { + "tagging": { + "taggable": false + }, "typeName": "AWS::EC2::EC2Fleet", + "readOnlyProperties": [ + "/properties/FleetId" + ], "description": "Resource Type definition for AWS::EC2::EC2Fleet", + "createOnlyProperties": [ + "/properties/LaunchTemplateConfigs", + "/properties/OnDemandOptions", + "/properties/ReservedCapacityOptions", + "/properties/ReplaceUnhealthyInstances", + "/properties/SpotOptions", + "/properties/TagSpecifications", + "/properties/TerminateInstancesWithExpiration", + "/properties/Type", + "/properties/ValidFrom", + "/properties/ValidUntil", + "/properties/TargetCapacitySpecification/TargetCapacityUnitType", + "/properties/TargetCapacitySpecification/DefaultTargetCapacityType" + ], + "primaryIdentifier": [ + "/properties/FleetId" + ], + "required": [ + "TargetCapacitySpecification", + "LaunchTemplateConfigs" + ], "sourceUrl": "https://github.com/aws-cloudformation", - "additionalProperties": false, - "properties": { - "TargetCapacitySpecification": { - "$ref": "#/definitions/TargetCapacitySpecificationRequest" + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeFleets" + ] }, - "OnDemandOptions": { - "$ref": "#/definitions/OnDemandOptionsRequest" + "create": { + "permissions": [ + "ec2:CreateFleet", + "ec2:DescribeFleets", + "ec2:CreateTags", + "ec2:RunInstances", + "iam:PassRole", + "ec2:DescribeCapacityReservations" + ] }, - "Type": { - "type": "string", - "enum": [ - "maintain", - "request", - "instant" + "update": { + "permissions": [ + "ec2:ModifyFleet", + "ec2:DescribeFleets" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeFleets" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: maintain | request | instant \nUpdate requires: Replacement\n" + "handlerSchema": { + "properties": { + "Type": { + "$ref": "resource-schema.json#/properties/Type" + } + } + } }, - "ExcessCapacityTerminationPolicy": { - "type": "string", - "enum": [ - "termination", - "no-termination" + "delete": { + "permissions": [ + "ec2:DescribeFleets", + "ec2:DescribeFleetInstances", + "ec2:DescribeInstanceStatus", + "ec2:DeleteFleets", + "ec2:TerminateInstances" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: termination | no-termination \nUpdate requires: No interruption\n" + "timeoutInMinutes": 40 + } + }, + "writeOnlyProperties": [ + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/HostResourceGroupArn", + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/Affinity", + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/SpreadDomain", + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/AvailabilityZone", + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/PartitionNumber", + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/HostId", + "/properties/LaunchTemplateConfigs/*/Overrides/*/Placement/Tenancy" + ], + "additionalProperties": false, + "definitions": { + "TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "DefaultTargetCapacityType": { + "type": "string", + "enum": [ + "on-demand", + "spot", + "capacity-block", + "reserved-capacity" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: on-demand | spot | capacity-block | reserved-capacity \nUpdate requires: No interruption\n" + }, + "TotalTargetCapacity": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "OnDemandTargetCapacity": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "SpotTargetCapacity": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TargetCapacityUnitType": { + "type": "string", + "enum": [ + "vcpu", + "memory-mib", + "units" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vcpu | memory-mib | units \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TotalTargetCapacity" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" }, - "TagSpecifications": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/TagSpecification" + "FleetLaunchTemplateSpecificationRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "LaunchTemplateName": { + "minLength": 3, + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9\\(\\)\\.\\-/_]+ \nUpdate requires: No interruption\n" + }, + "Version": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "LaunchTemplateId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LaunchTemplateSpecificationUserData": { + "format": "password", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "required": [ + "Version" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "SpotOptions": { - "$ref": "#/definitions/SpotOptionsRequest" + "MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ValidFrom": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "CapacityReservationOptionsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "UsageStrategy": { + "type": "string", + "enum": [ + "use-capacity-reservations-first" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: use-capacity-reservations-first \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ReplaceUnhealthyInstances": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "LaunchTemplateConfigs": { - "type": "array", - "uniqueItems": false, - "maxItems": 50, - "items": { - "$ref": "#/definitions/FleetLaunchTemplateConfigRequest" + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "FleetId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "VCpuCountRangeRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TerminateInstancesWithExpiration": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ValidUntil": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Context": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "definitions": { "OnDemandOptionsRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "SingleAvailabilityZone": { "type": "boolean", @@ -104,12 +290,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SpotOptionsRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { - "MaintenanceStrategies": { - "$ref": "#/definitions/MaintenanceStrategies" - }, "SingleAvailabilityZone": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" @@ -141,6 +324,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "MaintenanceStrategies": { + "$ref": "#/definitions/MaintenanceStrategies" + }, "InstanceInterruptionBehavior": { "type": "string", "enum": [ @@ -157,72 +343,9 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TargetCapacitySpecificationRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "DefaultTargetCapacityType": { - "type": "string", - "enum": [ - "on-demand", - "spot" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: on-demand | spot \nUpdate requires: No interruption\n" - }, - "TargetCapacityUnitType": { - "type": "string", - "enum": [ - "vcpu", - "memory-mib", - "units" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vcpu | memory-mib | units \nUpdate requires: No interruption\n" - }, - "TotalTargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" - }, - "OnDemandTargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "SpotTargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "required": [ - "TotalTargetCapacity" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "FleetLaunchTemplateSpecificationRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "LaunchTemplateName": { - "type": "string", - "minLength": 3, - "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9\\(\\)\\.\\-/_]+ \nUpdate requires: No interruption\n" - }, - "LaunchTemplateId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Version": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Version" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "Placement": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "GroupName": { "type": "string", @@ -259,14 +382,46 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BlockDeviceMapping": { - "type": "object", + "PerformanceFactorReferenceRequest": { "additionalProperties": false, + "type": "object", "properties": { - "DeviceName": { + "InstanceFamily": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CpuPerformanceFactorRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "References": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/PerformanceFactorReferenceRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MaintenanceStrategies": { + "additionalProperties": false, + "type": "object", + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/CapacityRebalance" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "type": "object", + "properties": { "Ebs": { "$ref": "#/definitions/EbsBlockDevice" }, @@ -274,297 +429,305 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "VirtualName": { + "VirtualName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DeviceName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkInterfaceSpecificationRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PrivateIpAddress": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PrivateIpAddresses": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecificationRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DeviceIndex": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Ipv6Addresses": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Ipv6AddressRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "EbsBlockDevice": { - "type": "object", - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "Encrypted": { + "AssociatePublicIpAddress": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "Iops": { + "NetworkCardIndex": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "KmsKeyId": { + "NetworkInterfaceId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SnapshotId": { + "InterfaceType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "VolumeSize": { + "Groups": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Ipv6AddressCount": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "VolumeType": { - "type": "string", - "enum": [ - "gp2", - "gp3", - "io1", - "io2", - "sc1", - "st1", - "standard" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gp2 | gp3 | io1 | io2 | sc1 | st1 | standard \nUpdate requires: No interruption\n" + "DeleteOnTermination": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "FleetLaunchTemplateConfigRequest": { - "type": "object", + "ReservedCapacityOptionsRequest": { "additionalProperties": false, + "type": "object", "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/FleetLaunchTemplateSpecificationRequest" - }, - "Overrides": { - "type": "array", + "ReservationTypes": { "uniqueItems": false, + "type": "array", "items": { - "$ref": "#/definitions/FleetLaunchTemplateOverridesRequest" + "type": "string", + "enum": [ + "interruptible-capacity-reservation" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: interruptible-capacity-reservation \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CapacityReservationOptionsRequest": { + "AcceleratorCountRequest": { + "additionalProperties": false, "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CapacityRebalance": { "additionalProperties": false, + "type": "object", "properties": { - "UsageStrategy": { + "TerminationDelay": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ReplacementStrategy": { "type": "string", "enum": [ - "use-capacity-reservations-first" + "launch", + "launch-before-terminate" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: use-capacity-reservations-first \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: launch | launch-before-terminate \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "FleetLaunchTemplateOverridesRequest": { + "IamInstanceProfileSpecification": { + "additionalProperties": false, "type": "object", + "properties": { + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FleetLaunchTemplateConfigRequest": { "additionalProperties": false, + "type": "object", "properties": { - "WeightedCapacity": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecificationRequest" }, - "Placement": { - "$ref": "#/definitions/Placement" + "Overrides": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/FleetLaunchTemplateOverridesRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "MetadataOptions": { + "$ref": "#/definitions/InstanceMetadataOptionsRequest" }, "Priority": { "type": "number", "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, + "AvailabilityZoneId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "BlockDeviceMappings": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "AvailabilityZone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "IamInstanceProfile": { + "$ref": "#/definitions/IamInstanceProfileSpecification" + }, "SubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "InstanceType": { + "KeyName": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "InstanceRequirements": { - "$ref": "#/definitions/InstanceRequirementsRequest" + "WeightedCapacity": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "MaxPrice": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Placement": { + "$ref": "#/definitions/Placement" }, - "BlockDeviceMappings": { + "NetworkInterfaces": { + "uniqueItems": false, "type": "array", - "uniqueItems": true, "items": { - "$ref": "#/definitions/BlockDeviceMapping" + "$ref": "#/definitions/NetworkInterfaceSpecificationRequest" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TagSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "ResourceType": { + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { "type": "string", - "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" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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 \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "MaxPrice": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "InstanceRequirementsRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { - "VCpuCount": { - "$ref": "#/definitions/VCpuCountRangeRequest" - }, - "MemoryMiB": { - "$ref": "#/definitions/MemoryMiBRequest" - }, - "CpuManufacturers": { - "type": "array", + "InstanceGenerations": { "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ - "intel", - "amd", - "amazon-web-services", - "apple" + "current", + "previous" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: intel | amd | amazon-web-services | apple \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: current | previous \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "RequireEncryptionInTransit": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "MemoryGiBPerVCpu": { "$ref": "#/definitions/MemoryGiBPerVCpuRequest" }, - "AllowedInstanceTypes": { - "type": "array", + "AcceleratorTypes": { "uniqueItems": false, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ExcludedInstanceTypes": { "type": "array", - "uniqueItems": false, "items": { "type": "string", - "minLength": 1, - "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" + "enum": [ + "gpu", + "fpga", + "inference", + "media" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference | media \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "InstanceGenerations": { - "type": "array", + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRangeRequest" + }, + "AcceleratorManufacturers": { "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ - "current", - "previous" + "amazon-web-services", + "amd", + "habana", + "nvidia", + "xilinx" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: current | previous \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: amazon-web-services | amd | habana | nvidia | xilinx \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "SpotMaxPricePercentageOverLowestPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "OnDemandMaxPricePercentageOverLowestPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "BareMetal": { + "LocalStorage": { "type": "string", "enum": [ "included", @@ -573,7 +736,22 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" }, - "BurstablePerformance": { + "CpuManufacturers": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "intel", + "amd", + "amazon-web-services", + "apple" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: intel | amd | amazon-web-services | apple \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BareMetal": { "type": "string", "enum": [ "included", @@ -586,24 +764,20 @@ "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "NetworkBandwidthGbps": { - "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "NetworkInterfaceCount": { - "$ref": "#/definitions/NetworkInterfaceCountRequest" + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "LocalStorage": { - "type": "string", - "enum": [ - "included", - "required", - "excluded" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" }, "LocalStorageTypes": { - "type": "array", "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ @@ -614,48 +788,50 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "TotalLocalStorageGB": { - "$ref": "#/definitions/TotalLocalStorageGBRequest" - }, - "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" }, - "AcceleratorTypes": { - "type": "array", + "ExcludedInstanceTypes": { "uniqueItems": false, + "type": "array", "items": { + "minLength": 1, "type": "string", - "enum": [ - "gpu", - "fpga", - "inference" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference \nUpdate requires: No interruption\n" + "maxLength": 30, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "AcceleratorCount": { - "$ref": "#/definitions/AcceleratorCountRequest" - }, - "AcceleratorManufacturers": { - "type": "array", + "AllowedInstanceTypes": { "uniqueItems": false, + "type": "array", "items": { + "minLength": 1, "type": "string", - "enum": [ - "amazon-web-services", - "amd", - "habana", - "nvidia", - "xilinx" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: amazon-web-services | amd | habana | nvidia | xilinx \nUpdate requires: No interruption\n" + "maxLength": 30, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "BaselinePerformanceFactors": { + "$ref": "#/definitions/BaselinePerformanceFactorsRequest" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, "AcceleratorNames": { - "type": "array", "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ @@ -670,39 +846,40 @@ "t4", "t4g", "vu9p", - "v100" + "v100", + "l40s", + "l4", + "gaudi-hl-205", + "inferentia2", + "trainium", + "trainium2", + "u30" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 | l40s | l4 | gaudi-hl-205 | inferentia2 | trainium | trainium2 | u30 \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "AcceleratorTotalMemoryMiB": { "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" }, - "BaselinePerformanceFactors": { - "$ref": "#/definitions/BaselinePerformanceFactorsRequest" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "VCpuCountRangeRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "BurstablePerformance": { + "type": "string", + "enum": [ + "included", + "required", + "excluded" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MemoryMiBRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "Min": { "type": "integer", @@ -715,69 +892,98 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "MemoryGiBPerVCpuRequest": { - "type": "object", + "TagSpecification": { "additionalProperties": false, - "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "NetworkBandwidthGbpsRequest": { "type": "object", - "additionalProperties": false, "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "ResourceType": { + "type": "string", + "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" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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 \nUpdate requires: No interruption\n" }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "Tags": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "NetworkInterfaceCountRequest": { - "type": "object", + "BaselinePerformanceFactorsRequest": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "Cpu": { + "$ref": "#/definitions/CpuPerformanceFactorRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TotalLocalStorageGBRequest": { - "type": "object", + "Ipv6AddressRequest": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "Ipv6Address": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BaselineEbsBandwidthMbpsRequest": { - "type": "object", + "AcceleratorTotalMemoryMiBRequest": { "additionalProperties": false, + "type": "object", "properties": { "Min": { "type": "integer", @@ -790,163 +996,184 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AcceleratorCountRequest": { - "type": "object", + "EbsBlockDevice": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { + "SnapshotId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VolumeType": { + "type": "string", + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gp2 | gp3 | io1 | io2 | sc1 | st1 | standard \nUpdate requires: No interruption\n" + }, + "KmsKeyId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Encrypted": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Iops": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Max": { + "VolumeSize": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DeleteOnTermination": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AcceleratorTotalMemoryMiBRequest": { - "type": "object", + "InstanceMetadataOptionsRequest": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { + "HttpPutResponseHopLimit": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "BaselinePerformanceFactorsRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Cpu": { - "$ref": "#/definitions/CpuPerformanceFactorRequest" + "HttpTokens": { + "type": "string", + "enum": [ + "optional", + "required" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: optional | required \nUpdate requires: No interruption\n" + }, + "HttpEndpoint": { + "type": "string", + "enum": [ + "disabled", + "enabled" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: disabled | enabled \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CpuPerformanceFactorRequest": { - "type": "object", + "PrivateIpAddressSpecificationRequest": { "additionalProperties": false, - "properties": { - "References": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/PerformanceFactorReferenceRequest" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "PerformanceFactorReferenceRequest": { "type": "object", - "additionalProperties": false, "properties": { - "InstanceFamily": { + "PrivateIpAddress": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Primary": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "MaintenanceStrategies": { - "type": "object", + "Tag": { "additionalProperties": false, - "properties": { - "CapacityRebalance": { - "$ref": "#/definitions/CapacityRebalance" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CapacityRebalance": { "type": "object", - "additionalProperties": false, "properties": { - "ReplacementStrategy": { + "Value": { "type": "string", - "enum": [ - "launch", - "launch-before-terminate" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: launch | launch-before-terminate \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "TerminationDelay": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, + "required": [ + "Value", + "Key" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "TargetCapacitySpecification", - "LaunchTemplateConfigs" - ], - "createOnlyProperties": [ - "/properties/LaunchTemplateConfigs", - "/properties/OnDemandOptions", - "/properties/ReplaceUnhealthyInstances", - "/properties/SpotOptions", - "/properties/TagSpecifications", - "/properties/TerminateInstancesWithExpiration", - "/properties/Type", - "/properties/ValidFrom", - "/properties/ValidUntil" - ], - "primaryIdentifier": [ - "/properties/FleetId" - ], - "readOnlyProperties": [ - "/properties/FleetId" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:CreateFleet", - "ec2:DescribeFleets" - ] + "properties": { + "Context": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "ec2:DescribeFleets", - "ec2:DeleteFleets" - ] + "TargetCapacitySpecification": { + "$ref": "#/definitions/TargetCapacitySpecificationRequest" }, - "list": { - "handlerSchema": { - "properties": { - "Type": { - "$ref": "resource-schema.json#/properties/Type" - } - } + "OnDemandOptions": { + "$ref": "#/definitions/OnDemandOptionsRequest" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string", + "enum": [ + "termination", + "no-termination" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: termination | no-termination \nUpdate requires: No interruption\n" + }, + "TagSpecifications": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/TagSpecification" }, - "permissions": [ - "ec2:DescribeFleets" - ] + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, - "read": { - "permissions": [ - "ec2:DescribeFleets" - ] + "SpotOptions": { + "$ref": "#/definitions/SpotOptionsRequest" }, - "update": { - "permissions": [ - "ec2:ModifyFleet", - "ec2:DescribeFleets" - ] + "LaunchTemplateConfigs": { + "maxItems": 50, + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/FleetLaunchTemplateConfigRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "ValidUntil": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "type": "string", + "enum": [ + "maintain", + "request", + "instant" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: maintain | request | instant \nUpdate requires: Replacement\n" + }, + "ReservedCapacityOptions": { + "$ref": "#/definitions/ReservedCapacityOptionsRequest" + }, + "FleetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ValidFrom": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" } }, - "tagging": { - "taggable": false - }, "attributes": { "FleetId": { "type": "string", diff --git a/server/schema/resources/aws-ec2-flowlog.json b/server/schema/resources/aws-ec2-flowlog.json index 284f0f5e..e724edf5 100644 --- a/server/schema/resources/aws-ec2-flowlog.json +++ b/server/schema/resources/aws-ec2-flowlog.json @@ -82,9 +82,10 @@ "Subnet", "VPC", "TransitGateway", - "TransitGatewayAttachment" + "TransitGatewayAttachment", + "RegionalNatGateway" ], - "markdownDescription": "The type of resource for which to create the flow log. For example, if you specified a VPC ID for the ResourceId property, specify VPC for this property.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NetworkInterface | Subnet | VPC | TransitGateway | TransitGatewayAttachment \nUpdate requires: Replacement\n" + "markdownDescription": "The type of resource for which to create the flow log. For example, if you specified a VPC ID for the ResourceId property, specify VPC for this property.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NetworkInterface | Subnet | VPC | TransitGateway | TransitGatewayAttachment | RegionalNatGateway \nUpdate requires: Replacement\n" }, "Tags": { "description": "The tags to apply to the flow logs.", diff --git a/server/schema/resources/aws-ec2-host.json b/server/schema/resources/aws-ec2-host.json index a67d23ec..399e8b4d 100644 --- a/server/schema/resources/aws-ec2-host.json +++ b/server/schema/resources/aws-ec2-host.json @@ -8,7 +8,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] }, "definitions": { "Tag": { @@ -40,7 +44,12 @@ "AutoPlacement": { "description": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.", "type": "string", - "markdownDescription": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "on", + "off" + ], + "default": "on", + "markdownDescription": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.\n\n---\n\nRequired: No \nType: String \nAllowed Values: on | off \nUpdate requires: No interruption\n" }, "AvailabilityZone": { "description": "The Availability Zone in which to allocate the Dedicated Host.", @@ -50,7 +59,12 @@ "HostRecovery": { "description": "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.", "type": "string", - "markdownDescription": "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "on", + "off" + ], + "default": "off", + "markdownDescription": "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.\n\n---\n\nRequired: No \nType: String \nAllowed Values: on | off \nUpdate requires: No interruption\n" }, "InstanceType": { "description": "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.", @@ -70,7 +84,12 @@ "HostMaintenance": { "description": "Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.", "type": "string", - "markdownDescription": "Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "on", + "off" + ], + "default": "off", + "markdownDescription": "Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.\n\n---\n\nRequired: No \nType: String \nAllowed Values: on | off \nUpdate requires: No interruption\n" }, "AssetId": { "description": "The ID of the Outpost hardware asset.", diff --git a/server/schema/resources/aws-ec2-instanceconnectendpoint.json b/server/schema/resources/aws-ec2-instanceconnectendpoint.json index 27291389..6e4ced14 100644 --- a/server/schema/resources/aws-ec2-instanceconnectendpoint.json +++ b/server/schema/resources/aws-ec2-instanceconnectendpoint.json @@ -24,21 +24,64 @@ "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SecurityGroupId": { - "description": "A key-value pair to associate with a resource.", + "description": "The ID of the security group.", + "type": "string", + "markdownDescription": "The ID of the security group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NetworkInterfaceId": { + "description": "The ID of the network interface.", "type": "string", - "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The ID of the network interface.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "InstanceConnectEndpointPublicDnsNames": { + "description": "The public DNS names of the endpoint, including IPv4-only and dualstack DNS names.", + "type": "object", + "additionalProperties": false, + "properties": { + "Ipv4": { + "description": "The IPv4-only DNS name of the EC2 Instance Connect Endpoint.", + "type": "object", + "$ref": "#/definitions/InstanceConnectEndpointDnsNames", + "markdownDescription": "The IPv4-only DNS name of the EC2 Instance Connect Endpoint.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Dualstack": { + "description": "The dualstack DNS name of the EC2 Instance Connect Endpoint. A dualstack DNS name supports connections from both IPv4 and IPv6 clients.", + "type": "object", + "$ref": "#/definitions/InstanceConnectEndpointDnsNames", + "markdownDescription": "The dualstack DNS name of the EC2 Instance Connect Endpoint. A dualstack DNS name supports connections from both IPv4 and IPv6 clients.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The public DNS names of the endpoint, including IPv4-only and dualstack DNS names.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InstanceConnectEndpointDnsNames": { + "description": "The DNS names of the endpoint.", + "type": "object", + "additionalProperties": false, + "properties": { + "DnsName": { + "description": "The DNS name of the EC2 Instance Connect Endpoint.", + "type": "string", + "markdownDescription": "The DNS name of the EC2 Instance Connect Endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "FipsDnsName": { + "description": "The Federal Information Processing Standards (FIPS) compliant DNS name of the EC2 Instance Connect Endpoint.", + "type": "string", + "markdownDescription": "The Federal Information Processing Standards (FIPS) compliant DNS name of the EC2 Instance Connect Endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The DNS names of the endpoint.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { "Id": { - "description": "The id of the instance connect endpoint", + "description": "The ID of the EC2 Instance Connect Endpoint.", "type": "string", - "markdownDescription": "The id of the instance connect endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The ID of the EC2 Instance Connect Endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "SubnetId": { - "description": "The subnet id of the instance connect endpoint", + "description": "The ID of the subnet in which the EC2 Instance Connect Endpoint was created.", "type": "string", - "markdownDescription": "The subnet id of the instance connect endpoint\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The ID of the subnet in which the EC2 Instance Connect Endpoint was created.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "ClientToken": { "description": "The client token of the instance connect endpoint.", @@ -46,29 +89,94 @@ "markdownDescription": "The client token of the instance connect endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "PreserveClientIp": { - "description": "If true, the address of the instance connect endpoint client is preserved when connecting to the end resource", + "description": "Indicates whether your client's IP address is preserved as the source when you connect to a resource.", "type": "boolean", - "markdownDescription": "If true, the address of the instance connect endpoint client is preserved when connecting to the end resource\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "markdownDescription": "Indicates whether your client's IP address is preserved as the source when you connect to a resource.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "Tags": { - "description": "The tags of the instance connect endpoint.", + "description": "The tags assigned to the EC2 Instance Connect Endpoint.", "type": "array", "uniqueItems": false, "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "The tags of the instance connect endpoint.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The tags assigned to the EC2 Instance Connect Endpoint.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SecurityGroupIds": { - "description": "The security group IDs of the instance connect endpoint.", + "description": "The security groups associated with the endpoint.", "type": "array", "uniqueItems": true, "insertionOrder": false, "items": { "$ref": "#/definitions/SecurityGroupId" }, - "markdownDescription": "The security group IDs of the instance connect endpoint.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "The security groups associated with the endpoint.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "AvailabilityZone": { + "description": "The Availability Zone of the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The Availability Zone of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AvailabilityZoneId": { + "description": "The ID of the Availability Zone of the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The ID of the Availability Zone of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The date and time that the EC2 Instance Connect Endpoint was created", + "type": "string", + "markdownDescription": "The date and time that the EC2 Instance Connect Endpoint was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "InstanceConnectEndpointArn": { + "description": "The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NetworkInterfaceIds": { + "description": "The ID of the elastic network interface that Amazon EC2 automatically created when creating the EC2 Instance Connect Endpoint", + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceId" + }, + "markdownDescription": "The ID of the elastic network interface that Amazon EC2 automatically created when creating the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "description": "The ID of the AWS account that created the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The ID of the AWS account that created the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PublicDnsNames": { + "description": "The public DNS names of the endpoint", + "type": "object", + "$ref": "#/definitions/InstanceConnectEndpointPublicDnsNames", + "markdownDescription": "The public DNS names of the endpoint\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The current state of the EC2 Instance Connect Endpoint", + "type": "string", + "enum": [ + "create-in-progress", + "create-complete", + "create-failed", + "delete-in-progress", + "delete-complete", + "delete-failed", + "update-in-progress", + "update-complete", + "update-failed" + ], + "markdownDescription": "The current state of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nAllowed Values: create-in-progress | create-complete | create-failed | delete-in-progress | delete-complete | delete-failed | update-in-progress | update-complete | update-failed \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StateMessage": { + "description": "The message for the current state of the EC2 Instance Connect Endpoint. Can include a failure message", + "type": "string", + "markdownDescription": "The message for the current state of the EC2 Instance Connect Endpoint. Can include a failure message\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcId": { + "description": "The ID of the VPC in which the EC2 Instance Connect Endpoint was created", + "type": "string", + "markdownDescription": "The ID of the VPC in which the EC2 Instance Connect Endpoint was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, "additionalProperties": false, @@ -76,7 +184,17 @@ "SubnetId" ], "readOnlyProperties": [ - "/properties/Id" + "/properties/Id", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CreatedAt", + "/properties/InstanceConnectEndpointArn", + "/properties/NetworkInterfaceIds", + "/properties/OwnerId", + "/properties/PublicDnsNames", + "/properties/State", + "/properties/StateMessage", + "/properties/VpcId" ], "createOnlyProperties": [ "/properties/SubnetId", @@ -137,9 +255,74 @@ }, "attributes": { "Id": { - "description": "The id of the instance connect endpoint", + "description": "The ID of the EC2 Instance Connect Endpoint.", + "type": "string", + "markdownDescription": "The ID of the EC2 Instance Connect Endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AvailabilityZone": { + "description": "The Availability Zone of the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The Availability Zone of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AvailabilityZoneId": { + "description": "The ID of the Availability Zone of the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The ID of the Availability Zone of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The date and time that the EC2 Instance Connect Endpoint was created", + "type": "string", + "markdownDescription": "The date and time that the EC2 Instance Connect Endpoint was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "InstanceConnectEndpointArn": { + "description": "The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NetworkInterfaceIds": { + "description": "The ID of the elastic network interface that Amazon EC2 automatically created when creating the EC2 Instance Connect Endpoint", + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceId" + }, + "markdownDescription": "The ID of the elastic network interface that Amazon EC2 automatically created when creating the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "description": "The ID of the AWS account that created the EC2 Instance Connect Endpoint", + "type": "string", + "markdownDescription": "The ID of the AWS account that created the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PublicDnsNames": { + "description": "The public DNS names of the endpoint", + "type": "object", + "$ref": "#/definitions/InstanceConnectEndpointPublicDnsNames", + "markdownDescription": "The public DNS names of the endpoint\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The current state of the EC2 Instance Connect Endpoint", + "type": "string", + "enum": [ + "create-in-progress", + "create-complete", + "create-failed", + "delete-in-progress", + "delete-complete", + "delete-failed", + "update-in-progress", + "update-complete", + "update-failed" + ], + "markdownDescription": "The current state of the EC2 Instance Connect Endpoint\n\n---\n\nRequired: No \nType: String \nAllowed Values: create-in-progress | create-complete | create-failed | delete-in-progress | delete-complete | delete-failed | update-in-progress | update-complete | update-failed \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StateMessage": { + "description": "The message for the current state of the EC2 Instance Connect Endpoint. Can include a failure message", + "type": "string", + "markdownDescription": "The message for the current state of the EC2 Instance Connect Endpoint. Can include a failure message\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcId": { + "description": "The ID of the VPC in which the EC2 Instance Connect Endpoint was created", "type": "string", - "markdownDescription": "The id of the instance connect endpoint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The ID of the VPC in which the EC2 Instance Connect Endpoint was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-ipampool.json b/server/schema/resources/aws-ec2-ipampool.json index 8f8d2abd..a31d5c90 100644 --- a/server/schema/resources/aws-ec2-ipampool.json +++ b/server/schema/resources/aws-ec2-ipampool.json @@ -129,9 +129,10 @@ "description": "Limits which service in Amazon Web Services that the pool can be used in.", "type": "string", "enum": [ - "ec2" + "ec2", + "global-services" ], - "markdownDescription": "Limits which service in Amazon Web Services that the pool can be used in.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ec2 \nUpdate requires: Replacement\n" + "markdownDescription": "Limits which service in Amazon Web Services that the pool can be used in.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ec2 | global-services \nUpdate requires: Replacement\n" }, "Description": { "type": "string", diff --git a/server/schema/resources/aws-ec2-ipamprefixlistresolver.json b/server/schema/resources/aws-ec2-ipamprefixlistresolver.json new file mode 100644 index 00000000..f80cdd77 --- /dev/null +++ b/server/schema/resources/aws-ec2-ipamprefixlistresolver.json @@ -0,0 +1,302 @@ +{ + "typeName": "AWS::EC2::IPAMPrefixListResolver", + "description": "Resource Type definition for AWS::EC2::IPAMPrefixListResolver", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpamPrefixListResolverRuleCondition": { + "description": "Two of the rule types allow you to add conditions to the rules. (1) For IPAM Pool CIDR rules, you can specify an ipamPoolId; if not specified, the rule will apply to all IPAM Pool CIDRs in the scope. (2) For IPAM Resource CIDR rules, you can specify resourceId, resourceOwner, resourceRegion, cidr, or resourceTag.", + "type": "object", + "additionalProperties": false, + "properties": { + "Operation": { + "description": "Equals, Not equals, or Subnet Of. The subnet-of operation only applies to cidr conditions.", + "type": "string", + "enum": [ + "equals", + "not-equals", + "subnet-of" + ], + "markdownDescription": "Equals, Not equals, or Subnet Of. The subnet-of operation only applies to cidr conditions.\n\n---\n\nRequired: Conditional \nType: String \nAllowed Values: equals | not-equals | subnet-of \nUpdate requires: No interruption\n" + }, + "IpamPoolId": { + "description": "Condition for the IPAM Pool CIDR rule type. If not chosen, the resolver applies to all IPAM Pool CIDRs in the scope.", + "type": "string", + "markdownDescription": "Condition for the IPAM Pool CIDR rule type. If not chosen, the resolver applies to all IPAM Pool CIDRs in the scope.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceId": { + "description": "Condition for the IPAM Resource CIDR rule type. The unique ID of a resource (like vpc-1234567890abcdef0).", + "type": "string", + "markdownDescription": "Condition for the IPAM Resource CIDR rule type. The unique ID of a resource (like vpc-1234567890abcdef0).\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceOwner": { + "description": "Condition for the IPAM Resource CIDR rule type. Resource owner (like 111122223333).", + "type": "string", + "markdownDescription": "Condition for the IPAM Resource CIDR rule type. Resource owner (like 111122223333).\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceRegion": { + "description": "Condition for the IPAM Resource CIDR rule type. Resource region (like us-east-1).", + "type": "string", + "markdownDescription": "Condition for the IPAM Resource CIDR rule type. Resource region (like us-east-1).\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "Cidr": { + "description": "Condition for the IPAM Resource CIDR rule type. CIDR (like 10.24.34.0/23).", + "type": "string", + "markdownDescription": "Condition for the IPAM Resource CIDR rule type. CIDR (like 10.24.34.0/23).\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceTag": { + "description": "Condition for the IPAM Resource CIDR rule type. Resource Tag (like dev-vpc-1).", + "$ref": "#/definitions/Tag", + "markdownDescription": "Condition for the IPAM Resource CIDR rule type. Resource Tag (like dev-vpc-1).\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: No interruption\n" + } + }, + "oneOf": [ + { + "required": [ + "Operation", + "IpamPoolId" + ] + }, + { + "required": [ + "Operation", + "ResourceId" + ] + }, + { + "required": [ + "Operation", + "ResourceOwner" + ] + }, + { + "required": [ + "Operation", + "ResourceRegion" + ] + }, + { + "required": [ + "Operation", + "Cidr" + ] + }, + { + "required": [ + "Operation", + "ResourceTag" + ] + } + ], + "markdownDescription": "Two of the rule types allow you to add conditions to the rules. (1) For IPAM Pool CIDR rules, you can specify an ipamPoolId; if not specified, the rule will apply to all IPAM Pool CIDRs in the scope. (2) For IPAM Resource CIDR rules, you can specify resourceId, resourceOwner, resourceRegion, cidr, or resourceTag.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpamPrefixListResolverRule": { + "description": "CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without rules, but you'll need to add at least one rule before it can actually automate your prefix list updates.", + "type": "object", + "properties": { + "RuleType": { + "description": "There are three rule types: (1) Static CIDR: A fixed list of CIDRs that don't change (like a manual list replicated across Regions). (2) IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool). (3) IPAM resource CIDR: CIDRs for AWS resources like VPCs, subnets, and EIPs within a specific IPAM scope.", + "type": "string", + "enum": [ + "static-cidr", + "ipam-resource-cidr", + "ipam-pool-cidr" + ], + "markdownDescription": "There are three rule types: (1) Static CIDR: A fixed list of CIDRs that don't change (like a manual list replicated across Regions). (2) IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool). (3) IPAM resource CIDR: CIDRs for AWS resources like VPCs, subnets, and EIPs within a specific IPAM scope.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: static-cidr | ipam-resource-cidr | ipam-pool-cidr \nUpdate requires: No interruption\n" + }, + "StaticCidr": { + "description": "A fixed CIDR that doesn't change", + "type": "string", + "markdownDescription": "A fixed CIDR that doesn't change\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IpamScopeId": { + "description": "This rule will only match resources that are in this IPAM Scope.", + "type": "string", + "markdownDescription": "This rule will only match resources that are in this IPAM Scope.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ResourceType": { + "description": "The resourceType property only applies to ipam-resource-cidr rules; this property specifies what type of resources this rule will apply to, such as VPCs or Subnets.", + "type": "string", + "enum": [ + "vpc", + "subnet", + "eip", + "public-ipv4-pool" + ], + "markdownDescription": "The resourceType property only applies to ipam-resource-cidr rules; this property specifies what type of resources this rule will apply to, such as VPCs or Subnets.\n\n---\n\nRequired: No \nType: String \nAllowed Values: vpc | subnet | eip | public-ipv4-pool \nUpdate requires: No interruption\n" + }, + "Conditions": { + "description": "Two of the rule types allow you to add conditions to the rules. (1) For IPAM Pool CIDR rules, you can specify an ipamPoolId; if not specified, the rule will apply to all IPAM Pool CIDRs in the scope. (2) For IPAM Resource CIDR rules, you can specify resourceId, resourceOwner, resourceRegion, cidr, or resourceTag.", + "type": "array", + "items": { + "$ref": "#/definitions/IpamPrefixListResolverRuleCondition" + }, + "markdownDescription": "Two of the rule types allow you to add conditions to the rules. (1) For IPAM Pool CIDR rules, you can specify an ipamPoolId; if not specified, the rule will apply to all IPAM Pool CIDRs in the scope. (2) For IPAM Resource CIDR rules, you can specify resourceId, resourceOwner, resourceRegion, cidr, or resourceTag.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "RuleType" + ], + "markdownDescription": "CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without rules, but you'll need to add at least one rule before it can actually automate your prefix list updates.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "IpamId": { + "description": "The Id of the IPAM this Prefix List Resolver is a part of.", + "type": "string", + "markdownDescription": "The Id of the IPAM this Prefix List Resolver is a part of.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "IpamArn": { + "description": "The Amazon Resource Name (ARN) of the IPAM this Prefix List Resolver is a part of.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the IPAM this Prefix List Resolver is a part of.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamPrefixListResolverId": { + "description": "Id of the IPAM Prefix List Resolver.", + "type": "string", + "markdownDescription": "Id of the IPAM Prefix List Resolver.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamPrefixListResolverArn": { + "description": "The Amazon Resource Name (ARN) of the IPAM Prefix List Resolver", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the IPAM Prefix List Resolver\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AddressFamily": { + "description": "The address family of the address space in this Prefix List Resolver. Either IPv4 or IPv6.", + "type": "string", + "markdownDescription": "The address family of the address space in this Prefix List Resolver. Either IPv4 or IPv6.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Rules": { + "description": "Rules define the business logic for selecting CIDRs from IPAM.", + "type": "array", + "items": { + "$ref": "#/definitions/IpamPrefixListResolverRule" + }, + "markdownDescription": "Rules define the business logic for selecting CIDRs from IPAM.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "AddressFamily" + ], + "primaryIdentifier": [ + "/properties/IpamPrefixListResolverId" + ], + "readOnlyProperties": [ + "/properties/IpamArn", + "/properties/IpamPrefixListResolverId", + "/properties/IpamPrefixListResolverArn" + ], + "createOnlyProperties": [ + "/properties/IpamId", + "/properties/AddressFamily" + ], + "writeOnlyProperties": [ + "/properties/IpamId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpamPrefixListResolver", + "ec2:DescribeIpamPrefixListResolvers", + "ec2:GetIpamPrefixListResolverRules", + "ec2:CreateTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpamPrefixListResolvers", + "ec2:GetIpamPrefixListResolverRules" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpamPrefixListResolver", + "ec2:DescribeIpamPrefixListResolvers", + "ec2:GetIpamPrefixListResolverRules", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpamPrefixListResolver", + "ec2:DescribeIpamPrefixListResolvers", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpamPrefixListResolvers" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags" + ] + }, + "attributes": { + "IpamArn": { + "description": "The Amazon Resource Name (ARN) of the IPAM this Prefix List Resolver is a part of.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the IPAM this Prefix List Resolver is a part of.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamPrefixListResolverId": { + "description": "Id of the IPAM Prefix List Resolver.", + "type": "string", + "markdownDescription": "Id of the IPAM Prefix List Resolver.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamPrefixListResolverArn": { + "description": "The Amazon Resource Name (ARN) of the IPAM Prefix List Resolver", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the IPAM Prefix List Resolver\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-ipamprefixlistresolvertarget.json b/server/schema/resources/aws-ec2-ipamprefixlistresolvertarget.json new file mode 100644 index 00000000..d7b6b63a --- /dev/null +++ b/server/schema/resources/aws-ec2-ipamprefixlistresolvertarget.json @@ -0,0 +1,160 @@ +{ + "typeName": "AWS::EC2::IPAMPrefixListResolverTarget", + "description": "Resource Type definition for AWS::EC2::IPAMPrefixListResolverTarget", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "IpamPrefixListResolverId": { + "description": "The Id of the IPAM Prefix List Resolver associated with this Target.", + "type": "string", + "markdownDescription": "The Id of the IPAM Prefix List Resolver associated with this Target.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "IpamPrefixListResolverTargetId": { + "description": "Id of the IPAM Prefix List Resolver Target.", + "type": "string", + "markdownDescription": "Id of the IPAM Prefix List Resolver Target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamPrefixListResolverTargetArn": { + "description": "Id of the IPAM Prefix List Resolver Target.", + "type": "string", + "markdownDescription": "Id of the IPAM Prefix List Resolver Target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PrefixListId": { + "description": "The Id of the Managed Prefix List.", + "type": "string", + "markdownDescription": "The Id of the Managed Prefix List.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "PrefixListRegion": { + "description": "The region that the Managed Prefix List is located in.", + "type": "string", + "markdownDescription": "The region that the Managed Prefix List is located in.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "DesiredVersion": { + "description": "The desired version of the Prefix List Resolver that this Target should synchronize with.", + "type": "integer", + "format": "int64", + "markdownDescription": "The desired version of the Prefix List Resolver that this Target should synchronize with.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TrackLatestVersion": { + "description": "Indicates whether this Target automatically tracks the latest version of the Prefix List Resolver.", + "type": "boolean", + "markdownDescription": "Indicates whether this Target automatically tracks the latest version of the Prefix List Resolver.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "IpamPrefixListResolverId", + "PrefixListId", + "PrefixListRegion", + "TrackLatestVersion" + ], + "primaryIdentifier": [ + "/properties/IpamPrefixListResolverTargetId" + ], + "readOnlyProperties": [ + "/properties/IpamPrefixListResolverTargetId", + "/properties/IpamPrefixListResolverTargetArn" + ], + "createOnlyProperties": [ + "/properties/IpamPrefixListResolverId", + "/properties/PrefixListId", + "/properties/PrefixListRegion" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpamPrefixListResolverTarget", + "ec2:DescribeIpamPrefixListResolverTargets", + "ec2:DescribeManagedPrefixLists", + "ec2:GetManagedPrefixListEntries", + "ec2:ModifyManagedPrefixList", + "ec2:CreateTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpamPrefixListResolverTargets" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpamPrefixListResolverTarget", + "ec2:DescribeIpamPrefixListResolverTargets", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpamPrefixListResolverTarget", + "ec2:DescribeIpamPrefixListResolverTargets", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpamPrefixListResolverTargets" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags" + ] + }, + "attributes": { + "IpamPrefixListResolverTargetId": { + "description": "Id of the IPAM Prefix List Resolver Target.", + "type": "string", + "markdownDescription": "Id of the IPAM Prefix List Resolver Target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpamPrefixListResolverTargetArn": { + "description": "Id of the IPAM Prefix List Resolver Target.", + "type": "string", + "markdownDescription": "Id of the IPAM Prefix List Resolver Target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-ipamscope.json b/server/schema/resources/aws-ec2-ipamscope.json index 9c9fc646..e6b20441 100644 --- a/server/schema/resources/aws-ec2-ipamscope.json +++ b/server/schema/resources/aws-ec2-ipamscope.json @@ -3,6 +3,31 @@ "description": "Resource Schema of AWS::EC2::IPAMScope Type", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", "definitions": { + "IpamScopeExternalAuthorityConfiguration": { + "description": "External service configuration to connect your AWS IPAM scope.", + "type": "object", + "properties": { + "IpamScopeExternalAuthorityType": { + "description": "An external service connecting to your AWS IPAM scope.", + "type": "string", + "enum": [ + "infoblox" + ], + "markdownDescription": "An external service connecting to your AWS IPAM scope.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: infoblox \nUpdate requires: No interruption\n" + }, + "ExternalResourceIdentifier": { + "description": "Resource identifier of the scope in the external service connecting to your AWS IPAM scope.", + "type": "string", + "markdownDescription": "Resource identifier of the scope in the external service connecting to your AWS IPAM scope.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IpamScopeExternalAuthorityType", + "ExternalResourceIdentifier" + ], + "additionalProperties": false, + "markdownDescription": "External service configuration to connect your AWS IPAM scope.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", @@ -83,6 +108,9 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ExternalAuthorityConfiguration": { + "$ref": "#/definitions/IpamScopeExternalAuthorityConfiguration" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-ec2-launchtemplate.json b/server/schema/resources/aws-ec2-launchtemplate.json index 3c5454c6..dc477508 100644 --- a/server/schema/resources/aws-ec2-launchtemplate.json +++ b/server/schema/resources/aws-ec2-launchtemplate.json @@ -480,15 +480,20 @@ "type": "boolean", "markdownDescription": "Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "EbsCardIndex": { + "description": "", + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "Throughput": { - "description": "The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s.\n Valid Range: Minimum value of 125. Maximum value of 1000.", + "description": "The throughput to provision for a ``gp3`` volume, with a maximum of 2,000 MiB/s.\n Valid Range: Minimum value of 125. Maximum value of 2,000.", "type": "integer", - "markdownDescription": "The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s.\n Valid Range: Minimum value of 125. Maximum value of 1000.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The throughput to provision for a ``gp3`` volume, with a maximum of 2,000 MiB/s.\n Valid Range: Minimum value of 125. Maximum value of 2,000.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Iops": { - "description": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 16,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.", + "description": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 80,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.", "type": "integer", - "markdownDescription": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 16,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 80,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "VolumeInitializationRate": { "description": "Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.\n This parameter is supported only for volumes created from snapshots. Omit this parameter if:\n + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.\n If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.\n + You want to create a volume that is initialized at the default rate.\n \n For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.\n Valid range: 100 - 300 MiB/s", @@ -496,9 +501,9 @@ "markdownDescription": "Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.\n This parameter is supported only for volumes created from snapshots. Omit this parameter if:\n + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.\n If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.\n + You want to create a volume that is initialized at the default rate.\n \n For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.\n Valid range: 100 - 300 MiB/s\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "VolumeSize": { - "description": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:\n + ``gp2`` and ``gp3``: 1 - 16,384 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB", + "description": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:\n + ``gp2``: 1 - 16,384 GiB\n + ``gp3``: 1 - 65,536 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB", "type": "integer", - "markdownDescription": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:\n + ``gp2`` and ``gp3``: 1 - 16,384 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:\n + ``gp2``: 1 - 16,384 GiB\n + ``gp3``: 1 - 65,536 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "DeleteOnTermination": { "description": "Indicates whether the EBS volume is deleted on instance termination.", diff --git a/server/schema/resources/aws-ec2-natgateway.json b/server/schema/resources/aws-ec2-natgateway.json index d3e4601f..5a19fc9c 100644 --- a/server/schema/resources/aws-ec2-natgateway.json +++ b/server/schema/resources/aws-ec2-natgateway.json @@ -1,83 +1,130 @@ { - "tagging": { - "permissions": [ - "ec2:DeleteTags", - "ec2:CreateTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "ec2:DescribeNatGateways" - ] + "typeName": "AWS::EC2::NatGateway", + "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string", + "description": "The ID of the subnet in which the NAT gateway is located.", + "markdownDescription": "The ID of the subnet in which the NAT gateway is located.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "create": { - "permissions": [ - "ec2:CreateNatGateway", - "ec2:DescribeNatGateways", - "ec2:CreateTags" - ] + "NatGatewayId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "update": { - "permissions": [ - "ec2:DescribeNatGateways", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:AssociateNatGatewayAddress", - "ec2:DisassociateNatGatewayAddress", - "ec2:AssignPrivateNatGatewayAddress", - "ec2:UnassignPrivateNatGatewayAddress" - ] + "ConnectivityType": { + "type": "string", + "description": "Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity.", + "markdownDescription": "Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "list": { - "permissions": [ - "ec2:DescribeNatGateways" - ] + "PrivateIpAddress": { + "type": "string", + "description": "The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.", + "markdownDescription": "The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "delete": { - "permissions": [ - "ec2:DeleteNatGateway", - "ec2:DescribeNatGateways" - ] + "Tags": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "The tags for the NAT gateway.", + "markdownDescription": "The tags for the NAT gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllocationId": { + "type": "string", + "description": "[Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway.", + "markdownDescription": "[Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "SecondaryAllocationIds": { + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "description": "Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) in the *Amazon VPC User Guide*.", + "markdownDescription": "Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) in the *Amazon VPC User Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecondaryPrivateIpAddresses": { + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.", + "markdownDescription": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer", + "minimum": 1, + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.", + "markdownDescription": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxDrainDurationSeconds": { + "type": "integer", + "description": "The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.", + "markdownDescription": "The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "VpcId": { + "type": "string", + "description": "The ID of the VPC in which the NAT gateway is located.", + "markdownDescription": "The ID of the VPC in which the NAT gateway is located.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "EniId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "RouteTableId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AvailabilityMode": { + "type": "string", + "description": "Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.\n A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.", + "markdownDescription": "Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.\n A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "AvailabilityZoneAddresses": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AvailabilityZoneAddress" + }, + "description": "For regional NAT gateways only: Specifies which Availability Zones you want the NAT gateway to support and the Elastic IP addresses (EIPs) to use in each AZ. The regional NAT gateway uses these EIPs to handle outbound NAT traffic from their respective AZs. If not specified, the NAT gateway will automatically expand to new AZs and associate EIPs upon detection of an elastic network interface. If you specify this parameter, auto-expansion is disabled and you must manually manage AZ coverage.\n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.", + "markdownDescription": "For regional NAT gateways only: Specifies which Availability Zones you want the NAT gateway to support and the Elastic IP addresses (EIPs) to use in each AZ. The regional NAT gateway uses these EIPs to handle outbound NAT traffic from their respective AZs. If not specified, the NAT gateway will automatically expand to new AZs and associate EIPs upon detection of an elastic network interface. If you specify this parameter, auto-expansion is disabled and you must manually manage AZ coverage.\n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AutoProvisionZones": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AutoScalingIps": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, - "typeName": "AWS::EC2::NatGateway", - "readOnlyProperties": [ - "/properties/NatGatewayId" - ], - "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", - "writeOnlyProperties": [ - "/properties/MaxDrainDurationSeconds" - ], - "createOnlyProperties": [ - "/properties/SubnetId", - "/properties/ConnectivityType", - "/properties/AllocationId", - "/properties/PrivateIpAddress" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/NatGatewayId" - ], "definitions": { "Tag": { - "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Value": { - "description": "The tag value.", "type": "string", + "description": "The tag value.", "markdownDescription": "The tag value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { - "description": "The tag key.", "type": "string", + "description": "The tag key.", "markdownDescription": "The tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, @@ -85,109 +132,135 @@ "Value", "Key" ], + "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", "markdownDescription": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AvailabilityZoneAddress": { - "description": "", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "AvailabilityZone": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "For regional NAT gateways only: The Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. \n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.", + "markdownDescription": "For regional NAT gateways only: The Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. \n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AvailabilityZoneId": { + "type": "string", + "description": "For regional NAT gateways only: The ID of the Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. Use this instead of AvailabilityZone for consistent identification of AZs across AWS Regions. \n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.", + "markdownDescription": "For regional NAT gateways only: The ID of the Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. Use this instead of AvailabilityZone for consistent identification of AZs across AWS Regions. \n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AllocationIds": { + "type": "array", "uniqueItems": true, "insertionOrder": false, - "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "description": "The allocation IDs of the Elastic IP addresses (EIPs) to be used for handling outbound NAT traffic in this specific Availability Zone.", + "markdownDescription": "The allocation IDs of the Elastic IP addresses (EIPs) to be used for handling outbound NAT traffic in this specific Availability Zone.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ - "AvailabilityZone", "AllocationIds" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "For regional NAT gateways only: The configuration specifying which Elastic IP address (EIP) to use for handling outbound NAT traffic from a specific Availability Zone. \n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.", + "markdownDescription": "For regional NAT gateways only: The configuration specifying which Elastic IP address (EIP) to use for handling outbound NAT traffic from a specific Availability Zone. \n A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.\n For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "properties": { - "SecondaryAllocationIds": { - "uniqueItems": true, - "description": "Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) in the *Amazon VPC User Guide*.", - "insertionOrder": true, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) in the *Amazon VPC User Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/SubnetId", + "/properties/ConnectivityType", + "/properties/AllocationId", + "/properties/PrivateIpAddress", + "/properties/AvailabilityMode" + ], + "primaryIdentifier": [ + "/properties/NatGatewayId" + ], + "readOnlyProperties": [ + "/properties/NatGatewayId", + "/properties/EniId", + "/properties/AutoProvisionZones", + "/properties/AutoScalingIps", + "/properties/RouteTableId" + ], + "writeOnlyProperties": [ + "/properties/MaxDrainDurationSeconds" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNatGateway", + "ec2:DescribeNatGateways", + "ec2:CreateTags" + ] }, - "PrivateIpAddress": { - "description": "The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.", - "type": "string", - "markdownDescription": "The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "delete": { + "permissions": [ + "ec2:DeleteNatGateway", + "ec2:DescribeNatGateways" + ] }, - "SecondaryPrivateIpAddressCount": { - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.", - "type": "integer", - "minimum": 1, - "markdownDescription": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "list": { + "permissions": [ + "ec2:DescribeNatGateways" + ] }, - "AllocationId": { - "description": "[Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway.", - "type": "string", - "markdownDescription": "[Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "read": { + "permissions": [ + "ec2:DescribeNatGateways" + ] }, - "SubnetId": { - "description": "The ID of the subnet in which the NAT gateway is located.", + "update": { + "permissions": [ + "ec2:DescribeNatGateways", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateNatGatewayAddress", + "ec2:DisassociateNatGatewayAddress", + "ec2:AssignPrivateNatGatewayAddress", + "ec2:UnassignPrivateNatGatewayAddress" + ], + "timeoutInMinutes": 90 + } + }, + "attributes": { + "NatGatewayId": { "type": "string", - "markdownDescription": "The ID of the subnet in which the NAT gateway is located.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "ConnectivityType": { - "description": "Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity.", + "EniId": { "type": "string", - "markdownDescription": "Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "SecondaryPrivateIpAddresses": { - "uniqueItems": true, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.", - "insertionOrder": true, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "NatGatewayId": { "description": "", - "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Tags": { - "uniqueItems": false, - "description": "The tags for the NAT gateway.", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "The tags for the NAT gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "RouteTableId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "MaxDrainDurationSeconds": { - "description": "The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.", - "type": "integer", - "markdownDescription": "The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "attributes": { - "NatGatewayId": { + "AutoProvisionZones": { + "type": "string", "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AutoScalingIps": { "type": "string", + "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } diff --git a/server/schema/resources/aws-ec2-networkaclentry.json b/server/schema/resources/aws-ec2-networkaclentry.json index 1e212cd5..e248270c 100644 --- a/server/schema/resources/aws-ec2-networkaclentry.json +++ b/server/schema/resources/aws-ec2-networkaclentry.json @@ -1,13 +1,78 @@ { + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkAclEntry", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:ReplaceNetworkAclEntry", + "ec2:DescribeNetworkAcls" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteNetworkAclEntry", + "ec2:DescribeNetworkAcls" + ] + } + }, "typeName": "AWS::EC2::NetworkAclEntry", + "readOnlyProperties": [ + "/properties/Id" + ], "description": "Resource Type definition for AWS::EC2::NetworkAclEntry", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "createOnlyProperties": [ + "/properties/Egress", + "/properties/RuleNumber", + "/properties/NetworkAclId" + ], "additionalProperties": false, - "properties": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "primaryIdentifier": [ + "/properties/Id" + ], + "definitions": { + "PortRange": { + "additionalProperties": false, + "type": "object", + "properties": { + "From": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "To": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "Icmp": { + "additionalProperties": false, + "type": "object", + "properties": { + "Type": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Code": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { "PortRange": { "description": "The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24). We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18", "$ref": "#/definitions/PortRange", @@ -38,6 +103,10 @@ "type": "integer", "markdownDescription": "Rule number to assign to the entry, such as 100. ACL entries are processed in ascending order by rule number. Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "Ipv6CidrBlock": { "description": "The IPv6 network range to allow or deny, in CIDR notation (for example 2001:db8:1234:1a00::/64)", "type": "string", @@ -54,81 +123,12 @@ "markdownDescription": "The Internet Control Message Protocol (ICMP) code and type. Requirement is conditional: Required if specifying 1 (ICMP) for the protocol parameter\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "definitions": { - "PortRange": { - "type": "object", - "additionalProperties": false, - "properties": { - "From": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "To": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Icmp": { - "type": "object", - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Type": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, "required": [ "NetworkAclId", "RuleAction", "RuleNumber", "Protocol" ], - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, "attributes": { "Id": { "type": "string", diff --git a/server/schema/resources/aws-ec2-networkinterface.json b/server/schema/resources/aws-ec2-networkinterface.json index 3d6bb807..97478f97 100644 --- a/server/schema/resources/aws-ec2-networkinterface.json +++ b/server/schema/resources/aws-ec2-networkinterface.json @@ -1,184 +1,9 @@ { - "tagging": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", "typeName": "AWS::EC2::NetworkInterface", - "readOnlyProperties": [ - "/properties/Id", - "/properties/SecondaryPrivateIpAddresses", - "/properties/PrimaryPrivateIpAddress", - "/properties/PrimaryIpv6Address", - "/properties/VpcId" - ], - "description": "The AWS::EC2::NetworkInterface resource creates network interface", - "createOnlyProperties": [ - "/properties/PrivateIpAddress", - "/properties/InterfaceType", - "/properties/SubnetId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "required": [ - "SubnetId" - ], - "conditionalCreateOnlyProperties": [ - "/properties/PrivateIpAddresses", - "/properties/EnablePrimaryIpv6", - "/properties/ConnectionTrackingSpecification" - ], + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/networkinterface", - "handlers": { - "read": { - "permissions": [ - "ec2:DescribeNetworkInterfaces" - ] - }, - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:CreateTags", - "ec2:ModifyNetworkInterfaceAttribute", - "ec2:ModifyPublicIpDnsNameOptions" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeNetworkInterfaces", - "ec2:ModifyNetworkInterfaceAttribute", - "ec2:UnassignIpv6Addresses", - "ec2:AssignIpv6Addresses", - "ec2:DeleteTags", - "ec2:CreateTags", - "ec2:UnassignPrivateIpAddresses", - "ec2:AssignPrivateIpAddresses", - "ec2:ModifyPublicIpDnsNameOptions" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeNetworkInterfaces", - "ec2:DeleteNetworkInterface" - ] - } - }, + "description": "The AWS::EC2::NetworkInterface resource creates network interface", "additionalProperties": false, - "definitions": { - "PrivateIpAddressSpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "PrivateIpAddress": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Primary": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" - } - }, - "required": [ - "PrivateIpAddress", - "Primary" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Ipv4PrefixSpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "Ipv4Prefix": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Ipv4Prefix" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "InstanceIpv6Address": { - "additionalProperties": false, - "type": "object", - "properties": { - "Ipv6Address": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Ipv6Address" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Ipv6PrefixSpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "Ipv6Prefix": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Ipv6Prefix" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Tag": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ConnectionTrackingSpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "UdpTimeout": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "TcpEstablishedTimeout": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "UdpStreamTimeout": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, "properties": { "Description": { "description": "A description for the network interface.", @@ -190,16 +15,11 @@ "type": "string", "markdownDescription": "Assigns a single private IP address to the network interface, which is used as the primary private IP address. If you want to specify multiple private IP address, use the PrivateIpAddresses property. \n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "PrimaryIpv6Address": { - "description": "The primary IPv6 address", - "type": "string", - "markdownDescription": "The primary IPv6 address\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "PrivateIpAddresses": { - "uniqueItems": false, "description": "Assigns a list of private IP addresses to the network interface. You can specify a primary private IP address by setting the value of the Primary property to true in the PrivateIpAddressSpecification property. If you want EC2 to automatically assign private IP addresses, use the SecondaryPrivateIpAddressCount property and do not specify this property.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/PrivateIpAddressSpecification" }, @@ -210,21 +30,16 @@ "type": "integer", "markdownDescription": "The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using privateIpAddresses\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Ipv6PrefixCount": { - "description": "The number of IPv6 prefixes to assign to a network interface. When you specify a number of IPv6 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /80 prefixes. You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", - "type": "integer", - "markdownDescription": "The number of IPv6 prefixes to assign to a network interface. When you specify a number of IPv6 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /80 prefixes. You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, "PrimaryPrivateIpAddress": { "description": "Returns the primary private IP address of the network interface.", "type": "string", "markdownDescription": "Returns the primary private IP address of the network interface.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Ipv4Prefixes": { - "uniqueItems": false, "description": "Assigns a list of IPv4 prefixes to the network interface. If you want EC2 to automatically assign IPv4 prefixes, use the Ipv4PrefixCount property and do not specify this property. Presently, only /28 prefixes are supported. You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/Ipv4PrefixSpecification" }, @@ -235,16 +50,11 @@ "type": "integer", "markdownDescription": "The number of IPv4 prefixes to assign to a network interface. When you specify a number of IPv4 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /28 prefixes. You can't specify a count of IPv4 prefixes if you've specified one of the following: specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "EnablePrimaryIpv6": { - "description": "If you have instances or ENIs that rely on the IPv6 address not changing, to avoid disrupting traffic to instances or ENIs, you can enable a primary IPv6 address. Enable this option to automatically assign an IPv6 associated with the ENI attached to your instance to be the primary IPv6 address. When you enable an IPv6 address to be a primary IPv6, you cannot disable it. Traffic will be routed to the primary IPv6 address until the instance is terminated or the ENI is detached. If you have multiple IPv6 addresses associated with an ENI and you enable a primary IPv6 address, the first IPv6 address associated with the ENI becomes the primary IPv6 address.", - "type": "boolean", - "markdownDescription": "If you have instances or ENIs that rely on the IPv6 address not changing, to avoid disrupting traffic to instances or ENIs, you can enable a primary IPv6 address. Enable this option to automatically assign an IPv6 associated with the ENI attached to your instance to be the primary IPv6 address. When you enable an IPv6 address to be a primary IPv6, you cannot disable it. Traffic will be routed to the primary IPv6 address until the instance is terminated or the ENI is detached. If you have multiple IPv6 addresses associated with an ENI and you enable a primary IPv6 address, the first IPv6 address associated with the ENI becomes the primary IPv6 address.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Some interruptions\n" - }, "GroupSet": { - "uniqueItems": false, "description": "A list of security group IDs associated with this network interface.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -252,25 +62,30 @@ "markdownDescription": "A list of security group IDs associated with this network interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Ipv6Addresses": { - "uniqueItems": true, "description": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface. If you're specifying a number of IPv6 addresses, use the Ipv6AddressCount property and don't specify this property.", - "insertionOrder": false, "type": "array", + "uniqueItems": true, + "insertionOrder": false, "items": { "$ref": "#/definitions/InstanceIpv6Address" }, "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface. If you're specifying a number of IPv6 addresses, use the Ipv6AddressCount property and don't specify this property.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Ipv6Prefixes": { - "uniqueItems": false, "description": "Assigns a list of IPv6 prefixes to the network interface. If you want EC2 to automatically assign IPv6 prefixes, use the Ipv6PrefixCount property and do not specify this property. Presently, only /80 prefixes are supported. You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/Ipv6PrefixSpecification" }, "markdownDescription": "Assigns a list of IPv6 prefixes to the network interface. If you want EC2 to automatically assign IPv6 prefixes, use the Ipv6PrefixCount property and do not specify this property. Presently, only /80 prefixes are supported. You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "Ipv6PrefixCount": { + "description": "The number of IPv6 prefixes to assign to a network interface. When you specify a number of IPv6 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /80 prefixes. You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", + "type": "integer", + "markdownDescription": "The number of IPv6 prefixes to assign to a network interface. When you specify a number of IPv6 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /80 prefixes. You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "SubnetId": { "description": "The ID of the subnet to associate with the network interface.", "type": "string", @@ -287,76 +102,305 @@ "markdownDescription": "Indicates the type of network interface.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "SecondaryPrivateIpAddresses": { - "uniqueItems": false, "description": "Returns the secondary private IP addresses of the network interface.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "Returns the secondary private IP addresses of the network interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, - "VpcId": { - "description": "The ID of the VPC", - "type": "string", - "markdownDescription": "The ID of the VPC\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "Ipv6AddressCount": { "description": "The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify specific IPv6 addresses, use the Ipv6Addresses property and don't specify this property.", "type": "integer", "markdownDescription": "The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify specific IPv6 addresses, use the Ipv6Addresses property and don't specify this property.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "EnablePrimaryIpv6": { + "description": "If you have instances or ENIs that rely on the IPv6 address not changing, to avoid disrupting traffic to instances or ENIs, you can enable a primary IPv6 address. Enable this option to automatically assign an IPv6 associated with the ENI attached to your instance to be the primary IPv6 address. When you enable an IPv6 address to be a primary IPv6, you cannot disable it. Traffic will be routed to the primary IPv6 address until the instance is terminated or the ENI is detached. If you have multiple IPv6 addresses associated with an ENI and you enable a primary IPv6 address, the first IPv6 address associated with the ENI becomes the primary IPv6 address.", + "type": "boolean", + "markdownDescription": "If you have instances or ENIs that rely on the IPv6 address not changing, to avoid disrupting traffic to instances or ENIs, you can enable a primary IPv6 address. Enable this option to automatically assign an IPv6 associated with the ENI attached to your instance to be the primary IPv6 address. When you enable an IPv6 address to be a primary IPv6, you cannot disable it. Traffic will be routed to the primary IPv6 address until the instance is terminated or the ENI is detached. If you have multiple IPv6 addresses associated with an ENI and you enable a primary IPv6 address, the first IPv6 address associated with the ENI becomes the primary IPv6 address.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Some interruptions\n" + }, + "PrimaryIpv6Address": { + "description": "The primary IPv6 address", + "type": "string", + "markdownDescription": "The primary IPv6 address\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectionTrackingSpecification": { + "$ref": "#/definitions/ConnectionTrackingSpecification" + }, "Id": { "description": "Network interface id.", "type": "string", "markdownDescription": "Network interface id.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Tags": { - "uniqueItems": false, "description": "An arbitrary set of tags (key-value pairs) for this network interface.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "An arbitrary set of tags (key-value pairs) for this network interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "VpcId": { + "description": "The ID of the VPC", + "type": "string", + "markdownDescription": "The ID of the VPC\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PublicIpDnsHostnameTypeSpecification": { + "description": "Public IP DNS hostname type", + "type": "string", + "enum": [ + "public-dual-stack-dns-name", + "public-ipv4-dns-name", + "public-ipv6-dns-name" + ], + "markdownDescription": "Public IP DNS hostname type\n\n---\n\nRequired: No \nType: String \nAllowed Values: public-dual-stack-dns-name | public-ipv4-dns-name | public-ipv6-dns-name \nUpdate requires: No interruption\n" + }, + "PublicIpDnsNameOptions": { + "$ref": "#/definitions/PublicIpDnsNameOptions" + } + }, + "definitions": { + "PrivateIpAddressSpecification": { + "type": "object", + "additionalProperties": false, + "properties": { + "PrivateIpAddress": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Primary": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InstanceIpv6Address": { + "type": "object", + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Ipv6Address" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Ipv4PrefixSpecification": { + "type": "object", + "additionalProperties": false, + "properties": { + "Ipv4Prefix": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Ipv4Prefix" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Ipv6PrefixSpecification": { + "type": "object", + "additionalProperties": false, + "properties": { + "Ipv6Prefix": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Ipv6Prefix" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ConnectionTrackingSpecification": { - "$ref": "#/definitions/ConnectionTrackingSpecification" + "type": "object", + "additionalProperties": false, + "properties": { + "TcpEstablishedTimeout": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "UdpStreamTimeout": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "UdpTimeout": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PublicIpDnsNameOptions": { + "description": "Describes the public hostname type options, including public hostname type, IPv4-enabled public hostname, IPv6-enabled public hostname, and dual-stack public hostname.", + "type": "object", + "additionalProperties": false, + "properties": { + "DnsHostnameType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PublicIpv4DnsName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PublicIpv6DnsName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PublicDualStackDnsName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Describes the public hostname type options, including public hostname type, IPv4-enabled public hostname, IPv6-enabled public hostname, and dual-stack public hostname.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "attributes": { - "PrimaryIpv6Address": { - "description": "The primary IPv6 address", - "type": "string", - "markdownDescription": "The primary IPv6 address\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "required": [ + "SubnetId" + ], + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress", + "/properties/PrimaryIpv6Address", + "/properties/VpcId", + "/properties/PublicIpDnsNameOptions" + ], + "conditionalCreateOnlyProperties": [ + "/properties/PrivateIpAddresses", + "/properties/EnablePrimaryIpv6", + "/properties/ConnectionTrackingSpecification" + ], + "writeOnlyProperties": [ + "/properties/PublicIpDnsHostnameTypeSpecification" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:CreateTags", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:ModifyPublicIpDnsNameOptions" + ] }, + "delete": { + "permissions": [ + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeNetworkInterfaces" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeNetworkInterfaces" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeNetworkInterfaces", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:UnassignIpv6Addresses", + "ec2:AssignIpv6Addresses", + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:UnassignPrivateIpAddresses", + "ec2:AssignPrivateIpAddresses", + "ec2:ModifyPublicIpDnsNameOptions" + ] + } + }, + "attributes": { "PrimaryPrivateIpAddress": { "description": "Returns the primary private IP address of the network interface.", "type": "string", "markdownDescription": "Returns the primary private IP address of the network interface.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "SecondaryPrivateIpAddresses": { - "uniqueItems": false, "description": "Returns the secondary private IP addresses of the network interface.", - "insertionOrder": false, "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "Returns the secondary private IP addresses of the network interface.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, - "VpcId": { - "description": "The ID of the VPC", + "PrimaryIpv6Address": { + "description": "The primary IPv6 address", "type": "string", - "markdownDescription": "The ID of the VPC\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The primary IPv6 address\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Id": { "description": "Network interface id.", "type": "string", "markdownDescription": "Network interface id.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcId": { + "description": "The ID of the VPC", + "type": "string", + "markdownDescription": "The ID of the VPC\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PublicIpDnsNameOptions": { + "$ref": "#/definitions/PublicIpDnsNameOptions" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-networkinterfaceattachment.json b/server/schema/resources/aws-ec2-networkinterfaceattachment.json index a767460c..e7bc7347 100644 --- a/server/schema/resources/aws-ec2-networkinterfaceattachment.json +++ b/server/schema/resources/aws-ec2-networkinterfaceattachment.json @@ -1,23 +1,23 @@ { "typeName": "AWS::EC2::NetworkInterfaceAttachment", - "description": "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment", + "description": "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", "properties": { "AttachmentId": { - "description": "The ID of the network interface attachment.", + "description": "", "type": "string", - "markdownDescription": "The ID of the network interface attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "DeleteOnTermination": { - "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", "type": "boolean", "default": true, - "markdownDescription": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "DeviceIndex": { - "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", "type": "string", - "markdownDescription": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "InstanceId": { "description": "The ID of the instance to which you will attach the ENI.", @@ -30,12 +30,14 @@ "markdownDescription": "The ID of the ENI that you want to attach.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "EnaSrdSpecification": { - "$ref": "#/definitions/EnaSrdSpecification" + "$ref": "#/definitions/EnaSrdSpecification", + "description": "Configures ENA Express for the network interface that this action attaches to the instance.", + "markdownDescription": "Configures ENA Express for the network interface that this action attaches to the instance.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "EnaQueueCount": { - "description": "The number of ENA queues to be created with the instance.", + "description": "The number of ENA queues created with the instance.", "type": "integer", - "markdownDescription": "The number of ENA queues to be created with the instance.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The number of ENA queues created with the instance.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -74,7 +76,8 @@ "properties": { "EnaSrdEnabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether ENA Express is enabled for the network interface.", + "markdownDescription": "Indicates whether ENA Express is enabled for the network interface.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "EnaSrdUdpSpecification": { "type": "object", @@ -85,10 +88,12 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Configures ENA Express for UDP network traffic.", + "markdownDescription": "Configures ENA Express for UDP network traffic.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "ENA Express uses AWS Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.\n To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.", + "markdownDescription": "ENA Express uses AWS Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.\n To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "handlers": { @@ -126,9 +131,9 @@ }, "attributes": { "AttachmentId": { - "description": "The ID of the network interface attachment.", + "description": "", "type": "string", - "markdownDescription": "The ID of the network interface attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-spotfleet.json b/server/schema/resources/aws-ec2-spotfleet.json index e294e34a..25bfe6ab 100644 --- a/server/schema/resources/aws-ec2-spotfleet.json +++ b/server/schema/resources/aws-ec2-spotfleet.json @@ -9,6 +9,15 @@ }, "SpotFleetRequestConfigData": { "$ref": "#/definitions/SpotFleetRequestConfigData" + }, + "Tags": { + "type": "array", + "description": "The tags to specify in SpotFleetRequestConfigData", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to specify in SpotFleetRequestConfigData\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "definitions": { @@ -450,6 +459,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "AvailabilityZoneId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "InstanceType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -496,6 +509,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "AvailabilityZoneId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "GroupName": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -877,9 +894,10 @@ "enum": [ "gpu", "fpga", - "inference" + "inference", + "media" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference | media \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, @@ -919,9 +937,16 @@ "t4", "t4g", "vu9p", - "v100" + "v100", + "l40s", + "l4", + "gaudi-hl-205", + "inferentia2", + "trainium", + "trainium2", + "u30" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 | l40s | l4 | gaudi-hl-205 | inferentia2 | trainium | trainium2 | u30 \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, @@ -930,6 +955,10 @@ }, "BaselinePerformanceFactors": { "$ref": "#/definitions/BaselinePerformanceFactorsRequest" + }, + "RequireEncryptionInTransit": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -1153,8 +1182,11 @@ "delete": { "permissions": [ "ec2:DescribeSpotFleetRequests", + "ec2:DescribeSpotFleetInstances", + "ec2:DescribeInstanceStatus", "ec2:CancelSpotFleetRequests" - ] + ], + "timeoutInMinutes": 40 }, "list": { "permissions": [ diff --git a/server/schema/resources/aws-ec2-sqlhastandbydetectedinstance.json b/server/schema/resources/aws-ec2-sqlhastandbydetectedinstance.json new file mode 100644 index 00000000..55fe64c1 --- /dev/null +++ b/server/schema/resources/aws-ec2-sqlhastandbydetectedinstance.json @@ -0,0 +1,134 @@ +{ + "typeName": "AWS::EC2::SqlHaStandbyDetectedInstance", + "description": "Resource Type definition for AWS::EC2::SqlHaStandbyDetectedInstance", + "sourceUrl": "https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-high-availability.html", + "definitions": { + "InstanceId": { + "description": "The ID of the EC2 instance to enable for SQL Server high availability standby detection.", + "type": "string", + "markdownDescription": "The ID of the EC2 instance to enable for SQL Server high availability standby detection.\n\n---\n\nRequired: No \nType: String \nPattern: ^i-[0-9a-f]{8,17}$ \nUpdate requires: No interruption\n" + }, + "SqlServerCredentials": { + "description": "The ARN of the AWS Secrets Manager secret containing SQL Server access credentials to the EC2 instance. If not specified, AWS Systems Manager agent will use default local user credentials.", + "type": "string", + "markdownDescription": "The ARN of the AWS Secrets Manager secret containing SQL Server access credentials to the EC2 instance. If not specified, AWS Systems Manager agent will use default local user credentials.\n\n---\n\nRequired: No \nType: String \nPattern: ^(?=.{20,2048}$)arn:aws[a-z-]*:secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=.@-]+$ \nUpdate requires: No interruption\n" + }, + "HaStatus": { + "description": "The SQL Server high availability status of the EC2 instance.", + "type": "string", + "enum": [ + "processing", + "active", + "standby", + "invalid" + ], + "markdownDescription": "The SQL Server high availability status of the EC2 instance.\n\n---\n\nRequired: No \nType: String \nAllowed Values: processing | active | standby | invalid \nUpdate requires: No interruption\n" + }, + "SqlServerLicenseUsage": { + "description": "The SQL Server license type of the EC2 instance.", + "type": "string", + "enum": [ + "full", + "waived" + ], + "markdownDescription": "The SQL Server license type of the EC2 instance.\n\n---\n\nRequired: No \nType: String \nAllowed Values: full | waived \nUpdate requires: No interruption\n" + }, + "LastUpdatedTime": { + "description": "The timestamp when the EC2 instance's SQL Server high availability status was last updated.", + "type": "string", + "markdownDescription": "The timestamp when the EC2 instance's SQL Server high availability status was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "properties": { + "InstanceId": { + "$ref": "#/definitions/InstanceId" + }, + "SqlServerCredentials": { + "$ref": "#/definitions/SqlServerCredentials" + }, + "HaStatus": { + "$ref": "#/definitions/HaStatus" + }, + "SqlServerLicenseUsage": { + "$ref": "#/definitions/SqlServerLicenseUsage" + }, + "LastUpdatedTime": { + "$ref": "#/definitions/LastUpdatedTime" + } + }, + "additionalProperties": false, + "required": [ + "InstanceId" + ], + "readOnlyProperties": [ + "/properties/HaStatus", + "/properties/SqlServerLicenseUsage", + "/properties/LastUpdatedTime" + ], + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "createOnlyProperties": [ + "/properties/InstanceId" + ], + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DeleteTags", + "secretsmanager:DescribeSecret", + "secretsmanager:TagResource", + "secretsmanager:UntagResource", + "ec2:EnableInstanceSqlHaStandbyDetections", + "ec2:DescribeInstanceSqlHaStates" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInstanceSqlHaStates" + ] + }, + "update": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DeleteTags", + "secretsmanager:DescribeSecret", + "secretsmanager:TagResource", + "secretsmanager:UntagResource", + "ec2:EnableInstanceSqlHaStandbyDetections", + "ec2:DescribeInstanceSqlHaStates" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "secretsmanager:TagResource", + "secretsmanager:UntagResource", + "ec2:DisableInstanceSqlHaStandbyDetections", + "ec2:DescribeInstanceSqlHaStates" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstanceSqlHaStates" + ] + } + }, + "tagging": { + "taggable": false + }, + "attributes": { + "HaStatus": { + "$ref": "#/definitions/HaStatus" + }, + "SqlServerLicenseUsage": { + "$ref": "#/definitions/SqlServerLicenseUsage" + }, + "LastUpdatedTime": { + "$ref": "#/definitions/LastUpdatedTime" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-subnet.json b/server/schema/resources/aws-ec2-subnet.json index f30bc96c..df970c33 100644 --- a/server/schema/resources/aws-ec2-subnet.json +++ b/server/schema/resources/aws-ec2-subnet.json @@ -2,6 +2,10 @@ "typeName": "AWS::EC2::Subnet", "description": "Specifies a subnet for the specified VPC.\n For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.\n For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*.", "additionalProperties": false, + "propertyTransform": { + "/properties/Ipv6CidrBlock": "Ipv6CidrBlock~>function($c){$split($c,\"/\")~>function($p){$number($p[1])~>function($n){$split($p[0],\":\")~>function($r){($map([0,1,2,3,4,5,6,7],function($i){$pad($r[$i],-4,\"0\")~>function($h){($i<$floor($n/16)?$h:($i=$floor($n/16)?$floor(($n%16)/4)~>function($k){($h~>$substring(0,$k))&$substring(\"0000\",0,4-$k)}:\"0000\"))~>$replace(/^0{1,3}/,\"\")}})~>$join(\":\")~>$replace(/(:0)+$/,\"::\"))&\"/\"&$p[1]}}}}", + "/properties/CidrBlock": "CidrBlock~>function($cidr){$split($cidr,\"/\")~>function($split_cidr){$number($split_cidr[1])~>function($sub_mask){$split($split_cidr[0],/[.]/).$number()~>function($octets){($octets.$formatBase($,2).$pad(-8,\"0\")~>$join())~>function($ip_bin_str){$substring($ip_bin_str,0,$sub_mask).$pad(32,\"0\")~>function($canon_ip_bin_str){$map($map([0..3],function($i){$substring($canon_ip_bin_str,$i*8,8)}),function($s){$split($s,\"\")})~>function($canon_octet_arrs){$map($canon_octet_arrs,function($section){$sum($map([0..7],function($bit){$number($section[$bit])*$power(2,7-$bit)}))})~>function($canon_octets){($canon_octets.$string()~>$join(\".\"))&\"/\"&$sub_mask}}}}}}}}" + }, "properties": { "AssignIpv6AddressOnCreation": { "type": "boolean", diff --git a/server/schema/resources/aws-ec2-transitgateway.json b/server/schema/resources/aws-ec2-transitgateway.json index 31299dc5..1975f531 100644 --- a/server/schema/resources/aws-ec2-transitgateway.json +++ b/server/schema/resources/aws-ec2-transitgateway.json @@ -1,105 +1,10 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", - "tagging": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "ec2:DescribeTransitGateways", - "ec2:DescribeTags" - ] - }, - "create": { - "permissions": [ - "ec2:CreateTransitGateway", - "ec2:CreateTags", - "ec2:DescribeTransitGateways", - "ec2:DescribeTags", - "ec2:ModifyTransitGateway", - "ec2:ModifyTransitGatewayOptions" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTransitGateway", - "ec2:CreateTags", - "ec2:DescribeTransitGateways", - "ec2:DescribeTags", - "ec2:DeleteTransitGateway", - "ec2:DeleteTags", - "ec2:ModifyTransitGateway", - "ec2:ModifyTransitGatewayOptions" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeTransitGateways", - "ec2:DescribeTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeTransitGateways", - "ec2:DescribeTags", - "ec2:DeleteTransitGateway", - "ec2:DeleteTags" - ] - } - }, "typeName": "AWS::EC2::TransitGateway", - "readOnlyProperties": [ - "/properties/Id", - "/properties/TransitGatewayArn" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", "description": "Resource Type definition for AWS::EC2::TransitGateway", - "createOnlyProperties": [ - "/properties/AmazonSideAsn", - "/properties/MulticastSupport" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, "properties": { - "Description": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "AssociationDefaultRouteTableId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "AutoAcceptSharedAttachments": { + "DefaultRouteTablePropagation": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, @@ -107,19 +12,11 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "DefaultRouteTablePropagation": { + "Description": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "TransitGatewayCidrBlocks": { - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "PropagationDefaultRouteTableId": { + "AutoAcceptSharedAttachments": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, @@ -135,11 +32,11 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SecurityGroupReferencingSupport": { + "DnsSupport": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "DnsSupport": { + "SecurityGroupReferencingSupport": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, @@ -148,17 +45,136 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "AmazonSideAsn": { - "format": "int64", "type": "integer", + "format": "int64", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" }, + "TransitGatewayCidrBlocks": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Tags": { - "uniqueItems": false, "type": "array", + "uniqueItems": false, "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AssociationDefaultRouteTableId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PropagationDefaultRouteTableId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EncryptionSupport": { + "type": "string", + "enum": [ + "disable", + "enable" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: disable | enable \nUpdate requires: No interruption\n" + }, + "EncryptionSupportState": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/TransitGatewayArn", + "/properties/EncryptionSupportState" + ], + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/MulticastSupport" + ], + "writeOnlyProperties": [ + "/properties/EncryptionSupport" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGateways", + "ec2:DescribeTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGateways", + "ec2:DescribeTags" + ] } }, "attributes": { @@ -169,6 +185,10 @@ "Id": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EncryptionSupportState": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-transitgatewayconnect.json b/server/schema/resources/aws-ec2-transitgatewayconnect.json index 378fa1f0..a00d7fd5 100644 --- a/server/schema/resources/aws-ec2-transitgatewayconnect.json +++ b/server/schema/resources/aws-ec2-transitgatewayconnect.json @@ -81,7 +81,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ec2:CreateTags", diff --git a/server/schema/resources/aws-ec2-transitgatewaymeteringpolicy.json b/server/schema/resources/aws-ec2-transitgatewaymeteringpolicy.json new file mode 100644 index 00000000..31b44300 --- /dev/null +++ b/server/schema/resources/aws-ec2-transitgatewaymeteringpolicy.json @@ -0,0 +1,144 @@ +{ + "tagging": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayMeteringPolicies", + "ec2:DescribeTags" + ] + }, + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayMeteringPolicies", + "ec2:CreateTransitGatewayMeteringPolicy", + "ec2:CreateTags" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayMeteringPolicies", + "ec2:ModifyTransitGatewayMeteringPolicy", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayMeteringPolicies", + "ec2:DescribeTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayMeteringPolicies", + "ec2:DeleteTransitGatewayMeteringPolicy", + "ec2:DeleteTags" + ] + } + }, + "typeName": "AWS::EC2::TransitGatewayMeteringPolicy", + "readOnlyProperties": [ + "/properties/TransitGatewayMeteringPolicyId", + "/properties/State", + "/properties/UpdateEffectiveAt" + ], + "description": "AWS::EC2::TransitGatewayMeteringPolicy Resource Definition", + "createOnlyProperties": [ + "/properties/TransitGatewayId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/TransitGatewayMeteringPolicyId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "TransitGatewayId": { + "description": "The Id of transit gateway", + "type": "string", + "markdownDescription": "The Id of transit gateway\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "MiddleboxAttachmentIds": { + "description": "Middle box attachment Ids", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Middle box attachment Ids\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "State": { + "description": "State of the transit gateway metering policy", + "type": "string", + "markdownDescription": "State of the transit gateway metering policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdateEffectiveAt": { + "description": "The timestamp at which the latest action performed on the metering policy will become effective", + "type": "string", + "markdownDescription": "The timestamp at which the latest action performed on the metering policy will become effective\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TransitGatewayMeteringPolicyId": { + "description": "The Id of the transit gateway metering policy", + "type": "string", + "markdownDescription": "The Id of the transit gateway metering policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TransitGatewayId" + ], + "attributes": { + "State": { + "description": "State of the transit gateway metering policy", + "type": "string", + "markdownDescription": "State of the transit gateway metering policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdateEffectiveAt": { + "description": "The timestamp at which the latest action performed on the metering policy will become effective", + "type": "string", + "markdownDescription": "The timestamp at which the latest action performed on the metering policy will become effective\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TransitGatewayMeteringPolicyId": { + "description": "The Id of the transit gateway metering policy", + "type": "string", + "markdownDescription": "The Id of the transit gateway metering policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-transitgatewaymeteringpolicyentry.json b/server/schema/resources/aws-ec2-transitgatewaymeteringpolicyentry.json new file mode 100644 index 00000000..b9e5f72d --- /dev/null +++ b/server/schema/resources/aws-ec2-transitgatewaymeteringpolicyentry.json @@ -0,0 +1,178 @@ +{ + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "ec2:GetTransitGatewayMeteringPolicyEntries" + ] + }, + "create": { + "permissions": [ + "ec2:GetTransitGatewayMeteringPolicyEntries", + "ec2:CreateTransitGatewayMeteringPolicyEntry" + ] + }, + "list": { + "permissions": [ + "ec2:GetTransitGatewayMeteringPolicyEntries" + ], + "handlerSchema": { + "properties": { + "TransitGatewayMeteringPolicyId": { + "$ref": "resource-schema.json#/properties/TransitGatewayMeteringPolicyId" + } + }, + "required": [ + "TransitGatewayMeteringPolicyId" + ] + } + }, + "delete": { + "permissions": [ + "ec2:GetTransitGatewayMeteringPolicyEntries", + "ec2:DeleteTransitGatewayMeteringPolicyEntry" + ] + } + }, + "typeName": "AWS::EC2::TransitGatewayMeteringPolicyEntry", + "readOnlyProperties": [ + "/properties/UpdateEffectiveAt", + "/properties/State" + ], + "description": "AWS::EC2::TransitGatewayMeteringPolicyEntry Resource Definition", + "createOnlyProperties": [ + "/properties/TransitGatewayMeteringPolicyId", + "/properties/PolicyRuleNumber", + "/properties/MeteredAccount", + "/properties/SourceTransitGatewayAttachmentId", + "/properties/SourceTransitGatewayAttachmentType", + "/properties/SourceCidrBlock", + "/properties/SourcePortRange", + "/properties/DestinationTransitGatewayAttachmentId", + "/properties/DestinationTransitGatewayAttachmentType", + "/properties/DestinationCidrBlock", + "/properties/DestinationPortRange", + "/properties/Protocol" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/TransitGatewayMeteringPolicyId", + "/properties/PolicyRuleNumber" + ], + "definitions": { + "TransitGatewayAttachmentResourceType": { + "type": "string", + "enum": [ + "vpc", + "vpn", + "direct-connect-gateway", + "peering", + "network-function", + "vpn-concentrator", + "client-vpn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vpc | vpn | direct-connect-gateway | peering | network-function | vpn-concentrator | client-vpn \nUpdate requires: No interruption\n" + }, + "TransitGatewayMeteringPayerType": { + "type": "string", + "enum": [ + "source-attachment-owner", + "destination-attachment-owner", + "transit-gateway-owner" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: source-attachment-owner | destination-attachment-owner | transit-gateway-owner \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DestinationTransitGatewayAttachmentId": { + "description": "The ID of the source attachment through which traffic leaves a transit gateway", + "type": "string", + "markdownDescription": "The ID of the source attachment through which traffic leaves a transit gateway\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "SourcePortRange": { + "description": "The list of ports on source instances sending traffic to the transit gateway", + "type": "string", + "markdownDescription": "The list of ports on source instances sending traffic to the transit gateway\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "PolicyRuleNumber": { + "description": "The rule number of the metering policy entry", + "type": "integer", + "markdownDescription": "The rule number of the metering policy entry\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + }, + "DestinationTransitGatewayAttachmentType": { + "description": "The type of the attachment through which traffic leaves a transit gateway", + "$ref": "#/definitions/TransitGatewayAttachmentResourceType", + "markdownDescription": "The type of the attachment through which traffic leaves a transit gateway\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "DestinationCidrBlock": { + "description": "The list of IP addresses of the instances receiving traffic from the transit gateway", + "type": "string", + "markdownDescription": "The list of IP addresses of the instances receiving traffic from the transit gateway\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "TransitGatewayMeteringPolicyId": { + "description": "The ID of the transit gateway metering policy for which the entry is being created", + "type": "string", + "markdownDescription": "The ID of the transit gateway metering policy for which the entry is being created\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "DestinationPortRange": { + "description": "The list of ports on destination instances receiving traffic from the transit gateway", + "type": "string", + "markdownDescription": "The list of ports on destination instances receiving traffic from the transit gateway\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "MeteredAccount": { + "description": "The resource owner information responsible for paying default billable charges for the traffic flow", + "$ref": "#/definitions/TransitGatewayMeteringPayerType", + "markdownDescription": "The resource owner information responsible for paying default billable charges for the traffic flow\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "UpdateEffectiveAt": { + "description": "The timestamp at which the latest action performed on the metering policy entry will become effective", + "type": "string", + "markdownDescription": "The timestamp at which the latest action performed on the metering policy entry will become effective\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "State of the transit gateway metering policy", + "type": "string", + "markdownDescription": "State of the transit gateway metering policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SourceCidrBlock": { + "description": "The list of IP addresses of the instances sending traffic to the transit gateway for which the metering policy entry is applicable", + "type": "string", + "markdownDescription": "The list of IP addresses of the instances sending traffic to the transit gateway for which the metering policy entry is applicable\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Protocol": { + "description": "The protocol of the traffic", + "type": "string", + "markdownDescription": "The protocol of the traffic\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "SourceTransitGatewayAttachmentId": { + "description": "The ID of the source attachment through which traffic enters a transit gateway", + "type": "string", + "markdownDescription": "The ID of the source attachment through which traffic enters a transit gateway\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "SourceTransitGatewayAttachmentType": { + "description": "The type of the attachment through which traffic enters a transit gateway", + "$ref": "#/definitions/TransitGatewayAttachmentResourceType", + "markdownDescription": "The type of the attachment through which traffic enters a transit gateway\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + } + }, + "required": [ + "TransitGatewayMeteringPolicyId", + "PolicyRuleNumber", + "MeteredAccount" + ], + "attributes": { + "UpdateEffectiveAt": { + "description": "The timestamp at which the latest action performed on the metering policy entry will become effective", + "type": "string", + "markdownDescription": "The timestamp at which the latest action performed on the metering policy entry will become effective\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "State of the transit gateway metering policy", + "type": "string", + "markdownDescription": "State of the transit gateway metering policy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-transitgatewaymulticastdomain.json b/server/schema/resources/aws-ec2-transitgatewaymulticastdomain.json index 0ad63168..cdd348e9 100644 --- a/server/schema/resources/aws-ec2-transitgatewaymulticastdomain.json +++ b/server/schema/resources/aws-ec2-transitgatewaymulticastdomain.json @@ -91,7 +91,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ec2:CreateTags", diff --git a/server/schema/resources/aws-ec2-transitgatewaymulticastdomainassociation.json b/server/schema/resources/aws-ec2-transitgatewaymulticastdomainassociation.json index 9ab3eb74..13681def 100644 --- a/server/schema/resources/aws-ec2-transitgatewaymulticastdomainassociation.json +++ b/server/schema/resources/aws-ec2-transitgatewaymulticastdomainassociation.json @@ -80,6 +80,16 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "TransitGatewayMulticastDomainId": { + "$ref": "resource-schema.json#/properties/TransitGatewayMulticastDomainId" + } + }, + "required": [ + "TransitGatewayMulticastDomainId" + ] + }, "permissions": [ "ec2:GetTransitGatewayMulticastDomainAssociations" ] diff --git a/server/schema/resources/aws-ec2-transitgatewayroutetable.json b/server/schema/resources/aws-ec2-transitgatewayroutetable.json index 41699ffc..f5eb0b35 100644 --- a/server/schema/resources/aws-ec2-transitgatewayroutetable.json +++ b/server/schema/resources/aws-ec2-transitgatewayroutetable.json @@ -9,7 +9,7 @@ "tagOnCreate": true, "tagUpdatable": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false + "cloudFormationSystemTags": true }, "handlers": { "read": { diff --git a/server/schema/resources/aws-ec2-volume.json b/server/schema/resources/aws-ec2-volume.json index cbd45da3..a0bd777d 100644 --- a/server/schema/resources/aws-ec2-volume.json +++ b/server/schema/resources/aws-ec2-volume.json @@ -1,183 +1,229 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false - }, - "handlers": { - "read": { - "permissions": [ - "ec2:DescribeVolumes", - "ec2:DescribeVolumeAttribute", - "ec2:DescribeTags" - ] - }, - "create": { - "permissions": [ - "ec2:CreateVolume", - "ec2:DescribeVolumes", - "ec2:DescribeVolumeAttribute", - "ec2:ModifyVolumeAttribute", - "ec2:CreateTags", - "kms:GenerateDataKeyWithoutPlaintext", - "kms:CreateGrant" - ], - "timeoutInMinutes": 725 - }, - "update": { - "permissions": [ - "ec2:ModifyVolume", - "ec2:ModifyVolumeAttribute", - "ec2:DescribeVolumeAttribute", - "ec2:DescribeVolumesModifications", - "ec2:DescribeVolumes", - "ec2:CreateTags", - "ec2:DeleteTags" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "ec2:DescribeVolumes", - "ec2:DescribeTags", - "ec2:DescribeVolumeAttribute" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteVolume", - "ec2:CreateSnapshot", - "ec2:DescribeSnapshots", - "ec2:DeleteTags", - "ec2:DescribeVolumes" - ] - } - }, "typeName": "AWS::EC2::Volume", - "readOnlyProperties": [ - "/properties/VolumeId" - ], - "description": "Specifies an Amazon Elastic Block Store (Amazon EBS) volume.\n When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time.\n Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.", + "description": "Specifies an Amazon Elastic Block Store (Amazon EBS) volume. You can create an empty volume, a volume from a snapshot, or a volume copy from an existing source volume.\n + When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time. Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n + Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n \n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", "additionalProperties": false, - "primaryIdentifier": [ - "/properties/VolumeId" - ], - "definitions": { - "Tag": { - "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "description": "The tag value.", - "type": "string", - "markdownDescription": "The tag value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "description": "The tag key.", - "type": "string", - "markdownDescription": "The tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, "properties": { "MultiAttachEnabled": { - "description": "Indicates whether Amazon EBS Multi-Attach is enabled.\n CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.", "type": "boolean", + "description": "Indicates whether Amazon EBS Multi-Attach is enabled.\n CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.", "markdownDescription": "Indicates whether Amazon EBS Multi-Attach is enabled.\n CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "KmsKeyId": { - "description": "The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.\n If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.\n Alternatively, if you want to specify a different key, you can specify one of the following:\n + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.\n + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.\n + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.\n + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.", "type": "string", - "markdownDescription": "The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.\n If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.\n Alternatively, if you want to specify a different key, you can specify one of the following:\n + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.\n + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.\n + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.\n + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.\n If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.\n Alternatively, if you want to specify a different key, you can specify one of the following:\n + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.\n + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.\n + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.\n + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.\n \n If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.", + "markdownDescription": "The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.\n If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.\n Alternatively, if you want to specify a different key, you can specify one of the following:\n + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.\n + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.\n + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.\n + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.\n \n If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Encrypted": { - "description": "Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.\n Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances).", "type": "boolean", - "markdownDescription": "Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.\n Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances).\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new, from a snapshot, or from an existing volume), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.\n If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.", + "markdownDescription": "Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new, from a snapshot, or from an existing volume), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.\n If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Size": { - "description": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.\n The following are the supported volumes sizes for each volume type:\n + ``gp2`` and ``gp3``: 1 - 16,384 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB", "type": "integer", - "markdownDescription": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.\n The following are the supported volumes sizes for each volume type:\n + ``gp2`` and ``gp3``: 1 - 16,384 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "The size of the volume, in GiBs.\n + Required for new empty volumes.\n + Optional for volumes created from snapshots and volume copies. In this case, the size defaults to the size of the snapshot or source volume. You can optionally specify a size that is equal to or larger than the size of the source snapshot or volume.\n \n Supported volume sizes:\n + gp2: ``1 - 16,384`` GiB\n + gp3: ``1 - 65,536`` GiB\n + io1: ``4 - 16,384`` GiB\n + io2: ``4 - 65,536`` GiB\n + st1 and sc1: ``125 - 16,384`` GiB\n + standard: ``1 - 1024`` GiB", + "markdownDescription": "The size of the volume, in GiBs.\n + Required for new empty volumes.\n + Optional for volumes created from snapshots and volume copies. In this case, the size defaults to the size of the snapshot or source volume. You can optionally specify a size that is equal to or larger than the size of the source snapshot or volume.\n \n Supported volume sizes:\n + gp2: ``1 - 16,384`` GiB\n + gp3: ``1 - 65,536`` GiB\n + io1: ``4 - 16,384`` GiB\n + io2: ``4 - 65,536`` GiB\n + st1 and sc1: ``125 - 16,384`` GiB\n + standard: ``1 - 1024`` GiB\n\n---\n\nRequired: Conditional \nType: Integer \nUpdate requires: No interruption\n" }, "AutoEnableIO": { - "description": "Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.", "type": "boolean", - "markdownDescription": "Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether the volume is auto-enabled for I/O operations. By default, EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.", + "markdownDescription": "Indicates whether the volume is auto-enabled for I/O operations. By default, EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "OutpostArn": { - "description": "The Amazon Resource Name (ARN) of the Outpost.", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the Outpost.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) of the Outpost on which to create the volume.\n If you intend to use a volume with an instance running on an outpost, then you must create the volume on the same outpost as the instance. You can't use a volume created in an AWS Region with an instance on an AWS outpost, or the other way around.", + "markdownDescription": "The Amazon Resource Name (ARN) of the Outpost on which to create the volume.\n If you intend to use a volume with an instance running on an outpost, then you must create the volume on the same outpost as the instance. You can't use a volume created in an AWS Region with an instance on an AWS outpost, or the other way around.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AvailabilityZone": { - "description": "The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``.\n Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.", "type": "string", - "markdownDescription": "The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``.\n Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``.\n Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.\n If you are creating a volume copy, omit this parameter. The volume copy is created in the same Availability Zone as the source volume.", + "markdownDescription": "The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``.\n Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.\n If you are creating a volume copy, omit this parameter. The volume copy is created in the same Availability Zone as the source volume.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "AvailabilityZoneId": { + "type": "string", + "description": "The ID of the Availability Zone in which to create the volume. For example, ``use1-az1``.\n Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.\n If you are creating a volume copy, omit this parameter. The volume copy is created in the same Availability Zone as the source volume.", + "markdownDescription": "The ID of the Availability Zone in which to create the volume. For example, ``use1-az1``.\n Either ``AvailabilityZone`` or ``AvailabilityZoneId`` must be specified, but not both.\n If you are creating a volume copy, omit this parameter. The volume copy is created in the same Availability Zone as the source volume.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "Throughput": { - "description": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s.\n This parameter is valid only for ``gp3`` volumes. The default value is 125.\n Valid Range: Minimum value of 125. Maximum value of 1000.", "type": "integer", - "markdownDescription": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s.\n This parameter is valid only for ``gp3`` volumes. The default value is 125.\n Valid Range: Minimum value of 125. Maximum value of 1000.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "The throughput to provision for a volume, with a maximum of 2,000 MiB/s.\n This parameter is valid only for ``gp3`` volumes. The default value is 125.\n Valid Range: Minimum value of 125. Maximum value of 2000.\n The maximum ratio of throughput to IOPS is 0.25 MiB/s per IOPS. For example, a volume with 3,000 IOPS can have a maximum throughput of 750 MiB/s (3,000 x 0.25).", + "markdownDescription": "The throughput to provision for a volume, with a maximum of 2,000 MiB/s.\n This parameter is valid only for ``gp3`` volumes. The default value is 125.\n Valid Range: Minimum value of 125. Maximum value of 2000.\n The maximum ratio of throughput to IOPS is 0.25 MiB/s per IOPS. For example, a volume with 3,000 IOPS can have a maximum throughput of 750 MiB/s (3,000 x 0.25).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Iops": { - "description": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 16,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes.", "type": "integer", - "markdownDescription": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 16,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "VolumeInitializationRate": { - "description": "Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.\n This parameter is supported only for volumes created from snapshots. Omit this parameter if:\n + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.\n If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.\n + You want to create a volume that is initialized at the default rate.\n \n For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.\n Valid range: 100 - 300 MiB/s", - "type": "integer", - "markdownDescription": "Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.\n This parameter is supported only for volumes created from snapshots. Omit this parameter if:\n + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.\n If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.\n + You want to create a volume that is initialized at the default rate.\n \n For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.\n Valid range: 100 - 300 MiB/s\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "The number of I/O operations per second (IOPS) to provision for the volume. Required for ``io1`` and ``io2`` volumes. Optional for ``gp3`` volumes. Omit for all other volume types. \n Valid ranges:\n + gp3: ``3,000``(*default*)``- 80,000`` IOPS\n + io1: ``100 - 64,000`` IOPS\n + io2: ``100 - 256,000`` IOPS\n \n [Instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) can support up to 256,000 IOPS. Other instances can support up to 32,000 IOPS.", + "markdownDescription": "The number of I/O operations per second (IOPS) to provision for the volume. Required for ``io1`` and ``io2`` volumes. Optional for ``gp3`` volumes. Omit for all other volume types. \n Valid ranges:\n + gp3: ``3,000``(*default*)``- 80,000`` IOPS\n + io1: ``100 - 64,000`` IOPS\n + io2: ``100 - 256,000`` IOPS\n \n [Instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) can support up to 256,000 IOPS. Other instances can support up to 32,000 IOPS.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "SnapshotId": { - "description": "The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.", "type": "string", - "markdownDescription": "The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The snapshot from which to create the volume. Only specify to create a volume from a snapshot. To create a new empty volume, omit this parameter and specify a value for ``Size`` instead. To create a volume copy, omit this parameter and specify ``SourceVolumeId`` instead.", + "markdownDescription": "The snapshot from which to create the volume. Only specify to create a volume from a snapshot. To create a new empty volume, omit this parameter and specify a value for ``Size`` instead. To create a volume copy, omit this parameter and specify ``SourceVolumeId`` instead.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, - "VolumeId": { - "description": "", + "SourceVolumeId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The ID of the source EBS volume to copy. When specified, the volume is created as an exact copy of the specified volume. Only specify to create a volume copy. To create a new empty volume or to create a volume from a snapshot, omit this parameter,", + "markdownDescription": "The ID of the source EBS volume to copy. When specified, the volume is created as an exact copy of the specified volume. Only specify to create a volume copy. To create a new empty volume or to create a volume from a snapshot, omit this parameter,\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "VolumeType": { - "description": "The volume type. This parameter can be one of the following values:\n + General Purpose SSD: ``gp2`` | ``gp3``\n + Provisioned IOPS SSD: ``io1`` | ``io2``\n + Throughput Optimized HDD: ``st1``\n + Cold HDD: ``sc1``\n + Magnetic: ``standard``\n \n For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html).\n Default: ``gp2``", "type": "string", - "markdownDescription": "The volume type. This parameter can be one of the following values:\n + General Purpose SSD: ``gp2`` | ``gp3``\n + Provisioned IOPS SSD: ``io1`` | ``io2``\n + Throughput Optimized HDD: ``st1``\n + Cold HDD: ``sc1``\n + Magnetic: ``standard``\n \n For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html).\n Default: ``gp2``\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The volume type. This parameter can be one of the following values:\n + General Purpose SSD: ``gp2`` | ``gp3``\n + Provisioned IOPS SSD: ``io1`` | ``io2``\n + Throughput Optimized HDD: ``st1``\n + Cold HDD: ``sc1``\n + Magnetic: ``standard``\n \n Throughput Optimized HDD (``st1``) and Cold HDD (``sc1``) volumes can't be used as boot volumes.\n For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*.\n Default: ``gp2``", + "markdownDescription": "The volume type. This parameter can be one of the following values:\n + General Purpose SSD: ``gp2`` | ``gp3``\n + Provisioned IOPS SSD: ``io1`` | ``io2``\n + Throughput Optimized HDD: ``st1``\n + Cold HDD: ``sc1``\n + Magnetic: ``standard``\n \n Throughput Optimized HDD (``st1``) and Cold HDD (``sc1``) volumes can't be used as boot volumes.\n For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*.\n Default: ``gp2``\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VolumeId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Tags": { + "type": "array", "uniqueItems": false, "description": "The tags to apply to the volume during creation.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "The tags to apply to the volume during creation.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VolumeInitializationRate": { + "type": "integer", + "description": "Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.\n This parameter is supported only for volumes created from snapshots. Omit this parameter if:\n + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.\n If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.\n + You want to create a volume that is initialized at the default rate.\n \n For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.\n Valid range: 100 - 300 MiB/s", + "markdownDescription": "Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.\n This parameter is supported only for volumes created from snapshots. Omit this parameter if:\n + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.\n If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.\n + You want to create a volume that is initialized at the default rate.\n \n For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.\n Valid range: 100 - 300 MiB/s\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "description": "The tag key.", + "type": "string", + "markdownDescription": "The tag key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The tag value.", + "type": "string", + "markdownDescription": "The tag value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", + "markdownDescription": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "AvailabilityZone" + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVolume", + "ec2:CopyVolumes", + "ec2:DescribeVolumes", + "ec2:DescribeVolumeAttribute", + "ec2:ModifyVolumeAttribute", + "ec2:CreateTags", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:CreateGrant", + "kms:ReEncryptFrom", + "kms:ReEncryptTo" + ], + "timeoutInMinutes": 725 + }, + "read": { + "permissions": [ + "ec2:DescribeVolumes", + "ec2:DescribeVolumeAttribute", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyVolume", + "ec2:ModifyVolumeAttribute", + "ec2:DescribeVolumeAttribute", + "ec2:DescribeVolumesModifications", + "ec2:DescribeVolumes", + "ec2:CreateTags", + "ec2:DeleteTags" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "ec2:DeleteVolume", + "ec2:CreateSnapshot", + "ec2:DescribeSnapshots", + "ec2:DeleteTags", + "ec2:DescribeVolumes" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVolumes", + "ec2:DescribeTags", + "ec2:DescribeVolumeAttribute" + ] + } + }, + "anyOf": [ + { + "required": [ + "AvailabilityZone", + "Size" + ], + "description": "Create a new empty volume with specified size" + }, + { + "required": [ + "AvailabilityZone", + "SnapshotId" + ], + "description": "Create a volume from a snapshot" + }, + { + "required": [ + "AvailabilityZoneId", + "Size" + ], + "description": "Create a new empty volume with specified size" + }, + { + "required": [ + "AvailabilityZoneId", + "SnapshotId" + ], + "description": "Create a volume from a snapshot" + }, + { + "required": [ + "SourceVolumeId" + ], + "description": "Create a volume by copying from an existing volume" + } + ], + "primaryIdentifier": [ + "/properties/VolumeId" + ], + "readOnlyProperties": [ + "/properties/VolumeId" ], "attributes": { "VolumeId": { - "description": "", "type": "string", + "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } diff --git a/server/schema/resources/aws-ec2-volumeattachment.json b/server/schema/resources/aws-ec2-volumeattachment.json index cf21d01b..a58ef09a 100644 --- a/server/schema/resources/aws-ec2-volumeattachment.json +++ b/server/schema/resources/aws-ec2-volumeattachment.json @@ -23,6 +23,11 @@ "description": "The device name", "type": "string", "markdownDescription": "The device name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EbsCardIndex": { + "description": "The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.", + "type": "integer", + "markdownDescription": "The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "properties": { @@ -40,6 +45,11 @@ "$ref": "#/definitions/Device", "description": "The device name (for example, ``/dev/sdh`` or ``xvdh``).", "markdownDescription": "The device name (for example, ``/dev/sdh`` or ``xvdh``).\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "EbsCardIndex": { + "$ref": "#/definitions/EbsCardIndex", + "description": "The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.", + "markdownDescription": "The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" } }, "required": [ @@ -59,7 +69,8 @@ "createOnlyProperties": [ "/properties/Device", "/properties/InstanceId", - "/properties/VolumeId" + "/properties/VolumeId", + "/properties/EbsCardIndex" ], "handlers": { "create": { diff --git a/server/schema/resources/aws-ec2-vpcencryptioncontrol.json b/server/schema/resources/aws-ec2-vpcencryptioncontrol.json new file mode 100644 index 00000000..296e6ef0 --- /dev/null +++ b/server/schema/resources/aws-ec2-vpcencryptioncontrol.json @@ -0,0 +1,335 @@ +{ + "typeName": "AWS::EC2::VPCEncryptionControl", + "description": "Resource Type definition for AWS::EC2::VPCEncryptionControl", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-vpcencryptioncontrol.git", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceExclusions": { + "type": "object", + "additionalProperties": false, + "properties": { + "InternetGateway": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "EgressOnlyInternetGateway": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "NatGateway": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "VirtualPrivateGateway": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "VpcPeering": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "VpcLattice": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "ElasticFileSystem": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + }, + "Lambda": { + "$ref": "#/definitions/VpcEncryptionControlExclusion" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcEncryptionControlExclusion": { + "type": "object", + "additionalProperties": false, + "properties": { + "State": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "StateMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "VpcEncryptionControlId": { + "description": "The VPC encryption control resource id.", + "type": "string", + "markdownDescription": "The VPC encryption control resource id.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "The tags to assign to the VPC encryption control.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the VPC encryption control.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VpcId": { + "description": "The VPC on which this VPC encryption control is applied.", + "type": "string", + "markdownDescription": "The VPC on which this VPC encryption control is applied.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Mode": { + "description": "The VPC encryption control mode, either monitor or enforce.", + "type": "string", + "enum": [ + "monitor", + "enforce" + ], + "markdownDescription": "The VPC encryption control mode, either monitor or enforce.\n\n---\n\nRequired: No \nType: String \nAllowed Values: monitor | enforce \nUpdate requires: No interruption\n" + }, + "State": { + "description": "The current state of the VPC encryption control.", + "type": "string", + "enum": [ + "creating", + "available", + "monitor-in-progress", + "enforce-in-progress", + "monitor-failed", + "enforce-failed", + "deleting", + "deleted", + "delete-failed" + ], + "markdownDescription": "The current state of the VPC encryption control.\n\n---\n\nRequired: No \nType: String \nAllowed Values: creating | available | monitor-in-progress | enforce-in-progress | monitor-failed | enforce-failed | deleting | deleted | delete-failed \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StateMessage": { + "description": "Provides additional context on the state of the VPC encryption control.", + "type": "string", + "markdownDescription": "Provides additional context on the state of the VPC encryption control.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "InternetGatewayExclusionInput": { + "description": "Used to enable or disable IGW exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable IGW exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "EgressOnlyInternetGatewayExclusionInput": { + "description": "Used to enable or disable EIGW exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable EIGW exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "NatGatewayExclusionInput": { + "description": "Used to enable or disable Nat gateway exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable Nat gateway exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "VirtualPrivateGatewayExclusionInput": { + "description": "Used to enable or disable VGW exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable VGW exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "VpcPeeringExclusionInput": { + "description": "Used to enable or disable VPC peering exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable VPC peering exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "VpcLatticeExclusionInput": { + "description": "Used to enable or disable Vpc Lattice exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable Vpc Lattice exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "ElasticFileSystemExclusionInput": { + "description": "Used to enable or disable EFS exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable EFS exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "LambdaExclusionInput": { + "description": "Used to enable or disable Lambda exclusion", + "type": "string", + "enum": [ + "enable", + "disable" + ], + "markdownDescription": "Used to enable or disable Lambda exclusion\n\n---\n\nRequired: No \nType: String \nAllowed Values: enable | disable \nUpdate requires: No interruption\n" + }, + "ResourceExclusions": { + "description": "Enumerates the states of all the VPC encryption control resource exclusions", + "$ref": "#/definitions/ResourceExclusions", + "markdownDescription": "Enumerates the states of all the VPC encryption control resource exclusions\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [], + "createOnlyProperties": [ + "/properties/VpcId" + ], + "readOnlyProperties": [ + "/properties/VpcEncryptionControlId", + "/properties/State", + "/properties/StateMessage", + "/properties/ResourceExclusions", + "/properties/ResourceExclusions/InternetGateway", + "/properties/ResourceExclusions/InternetGateway/State", + "/properties/ResourceExclusions/InternetGateway/StateMessage", + "/properties/ResourceExclusions/EgressOnlyInternetGateway", + "/properties/ResourceExclusions/EgressOnlyInternetGateway/State", + "/properties/ResourceExclusions/EgressOnlyInternetGateway/StateMessage", + "/properties/ResourceExclusions/NatGateway", + "/properties/ResourceExclusions/NatGateway/State", + "/properties/ResourceExclusions/NatGateway/StateMessage", + "/properties/ResourceExclusions/VirtualPrivateGateway", + "/properties/ResourceExclusions/VirtualPrivateGateway/State", + "/properties/ResourceExclusions/VirtualPrivateGateway/StateMessage", + "/properties/ResourceExclusions/VpcPeering", + "/properties/ResourceExclusions/VpcPeering/State", + "/properties/ResourceExclusions/VpcPeering/StateMessage", + "/properties/ResourceExclusions/VpcLattice", + "/properties/ResourceExclusions/VpcLattice/State", + "/properties/ResourceExclusions/VpcLattice/StateMessage", + "/properties/ResourceExclusions/ElasticFileSystem", + "/properties/ResourceExclusions/ElasticFileSystem/State", + "/properties/ResourceExclusions/ElasticFileSystem/StateMessage", + "/properties/ResourceExclusions/Lambda", + "/properties/ResourceExclusions/Lambda/State", + "/properties/ResourceExclusions/Lambda/StateMessage" + ], + "writeOnlyProperties": [ + "/properties/InternetGatewayExclusionInput", + "/properties/EgressOnlyInternetGatewayExclusionInput", + "/properties/NatGatewayExclusionInput", + "/properties/VirtualPrivateGatewayExclusionInput", + "/properties/VpcPeeringExclusionInput", + "/properties/VpcLatticeExclusionInput", + "/properties/ElasticFileSystemExclusionInput", + "/properties/LambdaExclusionInput" + ], + "primaryIdentifier": [ + "/properties/VpcEncryptionControlId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpcEncryptionControls", + "ec2:CreateVpcEncryptionControl", + "ec2:CreateTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcEncryptionControls", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpcEncryptionControls", + "ec2:ModifyVpcEncryptionControl", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcEncryptionControls", + "ec2:DeleteVpcEncryptionControl", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpcEncryptionControls" + ] + } + }, + "attributes": { + "VpcEncryptionControlId": { + "description": "The VPC encryption control resource id.", + "type": "string", + "markdownDescription": "The VPC encryption control resource id.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The current state of the VPC encryption control.", + "type": "string", + "enum": [ + "creating", + "available", + "monitor-in-progress", + "enforce-in-progress", + "monitor-failed", + "enforce-failed", + "deleting", + "deleted", + "delete-failed" + ], + "markdownDescription": "The current state of the VPC encryption control.\n\n---\n\nRequired: No \nType: String \nAllowed Values: creating | available | monitor-in-progress | enforce-in-progress | monitor-failed | enforce-failed | deleting | deleted | delete-failed \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StateMessage": { + "description": "Provides additional context on the state of the VPC encryption control.", + "type": "string", + "markdownDescription": "Provides additional context on the state of the VPC encryption control.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceExclusions": { + "description": "Enumerates the states of all the VPC encryption control resource exclusions", + "$ref": "#/definitions/ResourceExclusions", + "markdownDescription": "Enumerates the states of all the VPC encryption control resource exclusions\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-vpcendpoint.json b/server/schema/resources/aws-ec2-vpcendpoint.json index db88dea4..80e02f79 100644 --- a/server/schema/resources/aws-ec2-vpcendpoint.json +++ b/server/schema/resources/aws-ec2-vpcendpoint.json @@ -89,7 +89,9 @@ "/properties/VpcId", "/properties/ServiceNetworkArn", "/properties/ResourceConfigurationArn", - "/properties/ServiceRegion" + "/properties/ServiceRegion", + "/properties/DnsOptions/PrivateDnsPreference", + "/properties/DnsOptions/PrivateDnsSpecifiedDomains" ], "additionalProperties": false, "primaryIdentifier": [ @@ -111,6 +113,19 @@ ], "markdownDescription": "Indicates whether to enable private DNS only for inbound endpoints. This option is available only for services that support both gateway and interface endpoints. It routes traffic that originates from the VPC to the gateway endpoint and traffic that originates from on-premises to the interface endpoint.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OnlyInboundResolver | AllResolvers | NotSpecified \nUpdate requires: No interruption\n" }, + "PrivateDnsSpecifiedDomains": { + "minItems": 1, + "maxItems": 10, + "description": "Indicates which of the private domains to create private hosted zones for and associate with the specified VPC. Only supported when private DNS is enabled and the private DNS preference is ``VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS`` or ``SPECIFIED_DOMAINS_ONLY``.", + "type": "array", + "items": { + "minLength": 1, + "type": "string", + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Indicates which of the private domains to create private hosted zones for and associate with the specified VPC. Only supported when private DNS is enabled and the private DNS preference is ``VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS`` or ``SPECIFIED_DOMAINS_ONLY``.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "DnsRecordIpType": { "description": "The DNS records created for the endpoint.", "type": "string", @@ -122,9 +137,20 @@ "not-specified" ], "markdownDescription": "The DNS records created for the endpoint.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 | dualstack | service-defined | not-specified \nUpdate requires: No interruption\n" + }, + "PrivateDnsPreference": { + "description": "The preference for which private domains have a private hosted zone created for and associated with the specified VPC. Only supported when private DNS is enabled and when the VPC endpoint type is ServiceNetwork or Resource.", + "type": "string", + "enum": [ + "VERIFIED_DOMAINS_ONLY", + "ALL_DOMAINS", + "VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS", + "SPECIFIED_DOMAINS_ONLY" + ], + "markdownDescription": "The preference for which private domains have a private hosted zone created for and associated with the specified VPC. Only supported when private DNS is enabled and when the VPC endpoint type is ServiceNetwork or Resource.\n\n---\n\nRequired: No \nType: String \nAllowed Values: VERIFIED_DOMAINS_ONLY | ALL_DOMAINS | VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS | SPECIFIED_DOMAINS_ONLY \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Describes the DNS options for an endpoint.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Describes the DNS options for an endpoint.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" }, "Tag": { "description": "Describes a tag.", @@ -179,7 +205,7 @@ "DnsOptions": { "description": "Describes the DNS options for an endpoint.", "$ref": "#/definitions/DnsOptionsSpecification", - "markdownDescription": "Describes the DNS options for an endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Describes the DNS options for an endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" }, "NetworkInterfaceIds": { "uniqueItems": false, diff --git a/server/schema/resources/aws-ec2-vpcendpointconnectionnotification.json b/server/schema/resources/aws-ec2-vpcendpointconnectionnotification.json index 930bad70..43b5fa84 100644 --- a/server/schema/resources/aws-ec2-vpcendpointconnectionnotification.json +++ b/server/schema/resources/aws-ec2-vpcendpointconnectionnotification.json @@ -14,7 +14,8 @@ }, "create": { "permissions": [ - "ec2:CreateVpcEndpointConnectionNotification" + "ec2:CreateVpcEndpointConnectionNotification", + "ec2:DescribeVpcEndpointConnectionNotifications" ] }, "update": { @@ -30,7 +31,8 @@ }, "delete": { "permissions": [ - "ec2:DeleteVpcEndpointConnectionNotifications" + "ec2:DeleteVpcEndpointConnectionNotifications", + "ec2:DescribeVpcEndpointConnectionNotifications" ] } }, diff --git a/server/schema/resources/aws-ec2-vpcpeeringconnection.json b/server/schema/resources/aws-ec2-vpcpeeringconnection.json index 6b13c67f..5c20e2bc 100644 --- a/server/schema/resources/aws-ec2-vpcpeeringconnection.json +++ b/server/schema/resources/aws-ec2-vpcpeeringconnection.json @@ -20,6 +20,7 @@ "/properties/PeerOwnerId", "/properties/PeerVpcId", "/properties/PeerRoleArn", + "/properties/AssumeRoleRegion", "/properties/VpcId" ], "primaryIdentifier": [ @@ -65,7 +66,8 @@ } }, "writeOnlyProperties": [ - "/properties/PeerRoleArn" + "/properties/PeerRoleArn", + "/properties/AssumeRoleRegion" ], "additionalProperties": false, "definitions": { @@ -108,6 +110,11 @@ "type": "string", "markdownDescription": "The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, + "AssumeRoleRegion": { + "description": "The Region code to use when calling Security Token Service (STS) to assume the PeerRoleArn, if provided.", + "type": "string", + "markdownDescription": "The Region code to use when calling Security Token Service (STS) to assume the PeerRoleArn, if provided.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "Id": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" diff --git a/server/schema/resources/aws-ec2-vpnconcentrator.json b/server/schema/resources/aws-ec2-vpnconcentrator.json new file mode 100644 index 00000000..fdc38176 --- /dev/null +++ b/server/schema/resources/aws-ec2-vpnconcentrator.json @@ -0,0 +1,133 @@ +{ + "typeName": "AWS::EC2::VPNConcentrator", + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "description": "Describes a VPN concentrator.", + "additionalProperties": false, + "replacementStrategy": "delete_then_create", + "properties": { + "VpnConcentratorId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TransitGatewayId": { + "description": "The ID of the transit gateway associated with the VPN concentrator.", + "type": "string", + "markdownDescription": "The ID of the transit gateway associated with the VPN concentrator.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "TransitGatewayAttachmentId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Type": { + "description": "The type of VPN concentrator.", + "type": "string", + "markdownDescription": "The type of VPN concentrator.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "Any tags assigned to the VPN concentrator.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the VPN concentrator.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TransitGatewayId", + "Type" + ], + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Type" + ], + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key of the tag.\n Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with ``aws:``.", + "markdownDescription": "The key of the tag.\n Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with ``aws:``.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value of the tag.\n Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters.", + "markdownDescription": "The value of the tag.\n Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "description": "Describes a tag.", + "markdownDescription": "Describes a tag.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "readOnlyProperties": [ + "/properties/VpnConcentratorId", + "/properties/TransitGatewayAttachmentId" + ], + "primaryIdentifier": [ + "/properties/VpnConcentratorId" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnConcentrator", + "ec2:DescribeVpnConcentrators", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnConcentrator", + "ec2:DescribeVpnConcentrators" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConcentrators", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConcentrators" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConcentrators" + ] + } + }, + "attributes": { + "VpnConcentratorId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TransitGatewayAttachmentId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-vpnconnection.json b/server/schema/resources/aws-ec2-vpnconnection.json index f327801c..e0685a80 100644 --- a/server/schema/resources/aws-ec2-vpnconnection.json +++ b/server/schema/resources/aws-ec2-vpnconnection.json @@ -8,7 +8,7 @@ "tagOnCreate": true, "tagUpdatable": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false + "cloudFormationSystemTags": true }, "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", "typeName": "AWS::EC2::VPNConnection", @@ -18,9 +18,7 @@ "description": "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.", "createOnlyProperties": [ "/properties/Type", - "/properties/CustomerGatewayId", - "/properties/VpnGatewayId", - "/properties/TransitGatewayId", + "/properties/VpnConcentratorId", "/properties/EnableAcceleration", "/properties/LocalIpv4NetworkCidr", "/properties/LocalIpv6NetworkCidr", @@ -31,7 +29,7 @@ "/properties/TransportTransitGatewayAttachmentId", "/properties/TunnelInsideIpVersion", "/properties/PreSharedKeyStorage", - "/properties/VpnTunnelOptionsSpecifications" + "/properties/TunnelBandwidth" ], "primaryIdentifier": [ "/properties/VpnConnectionId" @@ -50,14 +48,33 @@ "permissions": [ "ec2:DescribeVpnConnections", "ec2:CreateVpnConnection", - "ec2:CreateTags" + "ec2:CreateTags", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:PutResourcePolicy", + "logs:DescribeResourcePolicies", + "logs:DescribeLogGroups" ] }, "update": { "permissions": [ "ec2:DescribeVpnConnections", + "ec2:ModifyVpnConnection", + "ec2:ModifyVpnConnectionOptions", + "ec2:ModifyVpnTunnelOptions", "ec2:CreateTags", - "ec2:DeleteTags" + "ec2:DeleteTags", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:PutResourcePolicy", + "logs:DescribeResourcePolicies", + "logs:DescribeLogGroups" ] }, "list": { @@ -83,6 +100,11 @@ "additionalProperties": false, "type": "object", "properties": { + "BgpLogEnabled": { + "description": "Specifies whether to enable BGP logging for the VPN connection. Default value is ``False``.\n Valid values: ``True`` | ``False``", + "type": "boolean", + "markdownDescription": "Specifies whether to enable BGP logging for the VPN connection. Default value is ``False``.\n Valid values: ``True`` | ``False``\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "LogEnabled": { "description": "Enable or disable VPN tunnel logging feature. Default value is ``False``.\n Valid values: ``True`` | ``False``", "type": "boolean", @@ -97,10 +119,24 @@ ], "markdownDescription": "Set log format. Default format is ``json``.\n Valid values: ``json`` | ``text``\n\n---\n\nRequired: No \nType: String \nAllowed Values: json | text \nUpdate requires: No interruption\n" }, + "BgpLogGroupArn": { + "description": "The Amazon Resource Name (ARN) of the CloudWatch log group where BGP logs will be sent.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the CloudWatch log group where BGP logs will be sent.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "LogGroupArn": { "description": "The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "BgpLogOutputFormat": { + "description": "The desired output format for BGP logs to be sent to CloudWatch. Default format is ``json``.\n Valid values: ``json`` | ``text``", + "type": "string", + "enum": [ + "json", + "text" + ], + "markdownDescription": "The desired output format for BGP logs to be sent to CloudWatch. Default format is ``json``.\n Valid values: ``json`` | ``text``\n\n---\n\nRequired: No \nType: String \nAllowed Values: json | text \nUpdate requires: No interruption\n" } }, "markdownDescription": "Options for sending VPN tunnel logs to CloudWatch.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -471,12 +507,12 @@ "items": { "$ref": "#/definitions/VpnTunnelOptionsSpecification" }, - "markdownDescription": "The tunnel options for the VPN connection.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "The tunnel options for the VPN connection.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "CustomerGatewayId": { "description": "The ID of the customer gateway at your end of the VPN connection.", "type": "string", - "markdownDescription": "The ID of the customer gateway at your end of the VPN connection.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The ID of the customer gateway at your end of the VPN connection.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "OutsideIpAddressType": { "description": "The type of IP address assigned to the outside interface of the customer gateway device.\n Valid values: ``PrivateIpv4`` | ``PublicIpv4`` | ``Ipv6``\n Default: ``PublicIpv4``", @@ -496,13 +532,23 @@ "TransitGatewayId": { "description": "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", "type": "string", - "markdownDescription": "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Type": { "description": "The type of VPN connection.", "type": "string", "markdownDescription": "The type of VPN connection.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, + "TunnelBandwidth": { + "default": "standard", + "description": "The desired bandwidth specification for the VPN tunnel, used when creating or modifying VPN connection options to set the tunnel's throughput capacity. ``standard`` supports up to 1.25 Gbps per tunnel, while ``large`` supports up to 5 Gbps per tunnel. The default value is ``standard``. Existing VPN connections without a bandwidth setting will automatically default to ``standard``.", + "type": "string", + "enum": [ + "standard", + "large" + ], + "markdownDescription": "The desired bandwidth specification for the VPN tunnel, used when creating or modifying VPN connection options to set the tunnel's throughput capacity. ``standard`` supports up to 1.25 Gbps per tunnel, while ``large`` supports up to 5 Gbps per tunnel. The default value is ``standard``. Existing VPN connections without a bandwidth setting will automatically default to ``standard``.\n\n---\n\nRequired: No \nType: String \nAllowed Values: standard | large \nUpdate requires: Replacement\n" + }, "LocalIpv4NetworkCidr": { "description": "The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.\n Default: ``0.0.0.0/0``", "type": "string", @@ -511,7 +557,12 @@ "VpnGatewayId": { "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", "type": "string", - "markdownDescription": "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VpnConcentratorId": { + "description": "The ID of the VPN concentrator to associate with the VPN connection.", + "type": "string", + "markdownDescription": "The ID of the VPN concentrator to associate with the VPN connection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "PreSharedKeyStorage": { "description": "Describes the storage location for an instance store-backed AMI.", diff --git a/server/schema/resources/aws-ecr-pullthroughcacherule.json b/server/schema/resources/aws-ecr-pullthroughcacherule.json index 0e885705..e05da226 100644 --- a/server/schema/resources/aws-ecr-pullthroughcacherule.json +++ b/server/schema/resources/aws-ecr-pullthroughcacherule.json @@ -48,7 +48,7 @@ "description": "The ECRRepositoryPrefix is a custom alias for upstream registry url.", "minLength": 2, "maxLength": 30, - "markdownDescription": "The ECRRepositoryPrefix is a custom alias for upstream registry url.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 30 \nPattern: ^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ECRRepositoryPrefix is a custom alias for upstream registry url.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 30 \nPattern: ^([a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*(\\/[a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*)*\\/?|ROOT)$ \nUpdate requires: No interruption\n" }, "UpstreamRegistryUrl": { "type": "string", @@ -78,7 +78,7 @@ "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", "minLength": 2, "maxLength": 30, - "markdownDescription": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 30 \nPattern: ^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$ \nUpdate requires: No interruption\n" + "markdownDescription": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 30 \nPattern: ^([a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*(\\/[a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*)*\\/?|ROOT)$ \nUpdate requires: No interruption\n" } }, "properties": { diff --git a/server/schema/resources/aws-ecr-pulltimeupdateexclusion.json b/server/schema/resources/aws-ecr-pulltimeupdateexclusion.json new file mode 100644 index 00000000..50f5adfe --- /dev/null +++ b/server/schema/resources/aws-ecr-pulltimeupdateexclusion.json @@ -0,0 +1,57 @@ +{ + "typeName": "AWS::ECR::PullTimeUpdateExclusion", + "description": "The ARN of the IAM principal to remove from the pull time update exclusion list.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "definitions": { + "PrincipalArn": { + "description": "Principal arn that should not update image pull times.", + "type": "string", + "maxLength": 200, + "markdownDescription": "Principal arn that should not update image pull times.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 200 \nPattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:(role|user)/[\\w+=,.@-]+(/[\\w+=,.@-]+)*$ \nUpdate requires: No interruption\n" + } + }, + "properties": { + "PrincipalArn": { + "$ref": "#/definitions/PrincipalArn", + "description": "The ARN of the IAM principal to remove from the pull time update exclusion list.", + "markdownDescription": "The ARN of the IAM principal to remove from the pull time update exclusion list.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + } + }, + "required": [ + "PrincipalArn" + ], + "createOnlyProperties": [ + "/properties/PrincipalArn" + ], + "primaryIdentifier": [ + "/properties/PrincipalArn" + ], + "handlers": { + "create": { + "permissions": [ + "ecr:RegisterPullTimeUpdateExclusion", + "ecr:ListPullTimeUpdateExclusions" + ] + }, + "read": { + "permissions": [ + "ecr:ListPullTimeUpdateExclusions" + ] + }, + "delete": { + "permissions": [ + "ecr:DeregisterPullTimeUpdateExclusion" + ] + }, + "list": { + "permissions": [ + "ecr:ListPullTimeUpdateExclusions" + ] + } + }, + "tagging": { + "taggable": false + }, + "additionalProperties": false, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-ecr-repository.json b/server/schema/resources/aws-ecr-repository.json index 80d9ece9..2f9d9f45 100644 --- a/server/schema/resources/aws-ecr-repository.json +++ b/server/schema/resources/aws-ecr-repository.json @@ -124,7 +124,7 @@ }, "ImageTagMutabilityExclusionFilter": { "type": "object", - "description": "Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.", + "description": "A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.", "properties": { "ImageTagMutabilityExclusionFilterType": { "$ref": "#/definitions/ImageTagMutabilityExclusionFilterType", @@ -142,7 +142,7 @@ "ImageTagMutabilityExclusionFilterValue" ], "additionalProperties": false, - "markdownDescription": "Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ImageTagMutabilityExclusionFilterType": { "type": "string", @@ -176,7 +176,7 @@ "description": "The name to use for the repository. The repository name may be specified on its own (such as ``nginx-web-app``) or it can be prepended with a namespace to group the repository into a category (such as ``project-a/nginx-web-app``). If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the repository name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n The repository name must start with a letter and can only contain lowercase letters, numbers, hyphens, underscores, and forward slashes.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", "minLength": 2, "maxLength": 256, - "markdownDescription": "The name to use for the repository. The repository name may be specified on its own (such as ``nginx-web-app``) or it can be prepended with a namespace to group the repository into a category (such as ``project-a/nginx-web-app``). If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the repository name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n The repository name must start with a letter and can only contain lowercase letters, numbers, hyphens, underscores, and forward slashes.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 256 \nPattern: ^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$ \nUpdate requires: Replacement\n" + "markdownDescription": "The name to use for the repository. The repository name may be specified on its own (such as ``nginx-web-app``) or it can be prepended with a namespace to group the repository into a category (such as ``project-a/nginx-web-app``). If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the repository name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n The repository name must start with a letter and can only contain lowercase letters, numbers, hyphens, underscores, and forward slashes.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 256 \nPattern: ^(?=.{2,256}$)([a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*(\\/[a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*)*)$ \nUpdate requires: Replacement\n" }, "RepositoryPolicyText": { "type": [ @@ -220,19 +220,19 @@ }, "ImageTagMutabilityExclusionFilters": { "type": "array", - "description": "The image tag mutability exclusion filters associated with the repository. These filters specify which image tags can override the repository's default image tag mutability setting.", + "description": "A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.", "minItems": 1, "maxItems": 5, "insertionOrder": true, "items": { "$ref": "#/definitions/ImageTagMutabilityExclusionFilter" }, - "markdownDescription": "The image tag mutability exclusion filters associated with the repository. These filters specify which image tags can override the repository's default image tag mutability setting.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "ImageScanningConfiguration": { "$ref": "#/definitions/ImageScanningConfiguration", - "description": "The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.", - "markdownDescription": "The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level. For more information, see ``PutRegistryScanningConfiguration``.\n The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.", + "markdownDescription": "The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level. For more information, see ``PutRegistryScanningConfiguration``.\n The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/EncryptionConfiguration", diff --git a/server/schema/resources/aws-ecr-repositorycreationtemplate.json b/server/schema/resources/aws-ecr-repositorycreationtemplate.json index f13529b0..a76793b2 100644 --- a/server/schema/resources/aws-ecr-repositorycreationtemplate.json +++ b/server/schema/resources/aws-ecr-repositorycreationtemplate.json @@ -72,13 +72,14 @@ "description": "Enumerable Strings representing the repository creation scenarios that the template will apply towards.", "enum": [ "REPLICATION", - "PULL_THROUGH_CACHE" + "PULL_THROUGH_CACHE", + "CREATE_ON_PUSH" ], - "markdownDescription": "Enumerable Strings representing the repository creation scenarios that the template will apply towards.\n\n---\n\nRequired: No \nType: String \nAllowed Values: REPLICATION | PULL_THROUGH_CACHE \nUpdate requires: No interruption\n" + "markdownDescription": "Enumerable Strings representing the repository creation scenarios that the template will apply towards.\n\n---\n\nRequired: No \nType: String \nAllowed Values: REPLICATION | PULL_THROUGH_CACHE | CREATE_ON_PUSH \nUpdate requires: No interruption\n" }, "ImageTagMutabilityExclusionFilter": { "type": "object", - "description": "Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.", + "description": "A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.", "properties": { "ImageTagMutabilityExclusionFilterType": { "type": "string", @@ -101,7 +102,7 @@ "ImageTagMutabilityExclusionFilterValue" ], "additionalProperties": false, - "markdownDescription": "Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -110,7 +111,7 @@ "type": "string", "minLength": 1, "maxLength": 256, - "markdownDescription": "The repository namespace prefix associated with the repository creation template.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$ \nUpdate requires: Replacement\n" + "markdownDescription": "The repository namespace prefix associated with the repository creation template.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^([a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*(\\/[a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*)*\\/?|ROOT)$ \nUpdate requires: Replacement\n" }, "Description": { "description": "The description associated with the repository creation template.", @@ -132,14 +133,14 @@ }, "ImageTagMutabilityExclusionFilters": { "type": "array", - "description": "Defines the image tag mutability exclusion filters to apply when creating repositories from this template. These filters specify which image tags can override the repository's default image tag mutability setting.", + "description": "A list of filters that specify which image tags are excluded from the repository creation template's image tag mutability setting.", "minItems": 1, "maxItems": 5, "insertionOrder": true, "items": { "$ref": "#/definitions/ImageTagMutabilityExclusionFilter" }, - "markdownDescription": "Defines the image tag mutability exclusion filters to apply when creating repositories from this template. These filters specify which image tags can override the repository's default image tag mutability setting.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of filters that specify which image tags are excluded from the repository creation template's image tag mutability setting.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "RepositoryPolicy": { "type": "string", @@ -173,11 +174,11 @@ "type": "array", "uniqueItems": true, "insertionOrder": false, - "description": "A list of enumerable Strings representing the repository creation scenarios that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE and REPLICATION", + "description": "A list of enumerable Strings representing the repository creation scenarios that this template will apply towards. The supported scenarios are PULL_THROUGH_CACHE, REPLICATION, and CREATE_ON_PUSH", "items": { "$ref": "#/definitions/AppliedForItem" }, - "markdownDescription": "A list of enumerable Strings representing the repository creation scenarios that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE and REPLICATION\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of enumerable Strings representing the repository creation scenarios that this template will apply towards. The supported scenarios are PULL_THROUGH_CACHE, REPLICATION, and CREATE_ON_PUSH\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "CustomRoleArn": { "type": "string", diff --git a/server/schema/resources/aws-ecr-signingconfiguration.json b/server/schema/resources/aws-ecr-signingconfiguration.json new file mode 100644 index 00000000..a6b137a6 --- /dev/null +++ b/server/schema/resources/aws-ecr-signingconfiguration.json @@ -0,0 +1,135 @@ +{ + "typeName": "AWS::ECR::SigningConfiguration", + "description": "The AWS::ECR::SigningConfiguration resource creates or updates the signing configuration for an Amazon ECR registry.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "definitions": { + "Rule": { + "type": "object", + "properties": { + "SigningProfileArn": { + "type": "string", + "maxLength": 200, + "description": "AWS Signer signing profile ARN to use for matched repositories.", + "markdownDescription": "AWS Signer signing profile ARN to use for matched repositories.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 200 \nPattern: ^arn:aws(-[a-z]+)*:signer:[a-z0-9-]+:[0-9]{12}:\\/signing-profiles\\/[a-zA-Z0-9_]{2,}$ \nUpdate requires: No interruption\n" + }, + "RepositoryFilters": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/RepositoryFilter" + }, + "description": "Optional array of repository filters. If omitted, the rule matches all repositories. If provided, must contain at least one filter. Empty arrays are not allowed.", + "markdownDescription": "Optional array of repository filters. If omitted, the rule matches all repositories. If provided, must contain at least one filter. Empty arrays are not allowed.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SigningProfileArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RepositoryFilter": { + "type": "object", + "properties": { + "Filter": { + "$ref": "#/definitions/Filter" + }, + "FilterType": { + "$ref": "#/definitions/FilterType" + } + }, + "description": "An array of objects representing the details of a repository filter.", + "required": [ + "Filter", + "FilterType" + ], + "additionalProperties": false, + "markdownDescription": "An array of objects representing the details of a repository filter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Filter": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "description": "Repository name pattern (supports '*' wildcard).", + "markdownDescription": "Repository name pattern (supports '*' wildcard).\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^(?:[a-z0-9*]+(?:[._-][a-z0-9*]+)*/)*[a-z0-9*]+(?:[._-][a-z0-9*]+)*$ \nUpdate requires: No interruption\n" + }, + "FilterType": { + "description": "Type of repository filter", + "type": "string", + "enum": [ + "WILDCARD_MATCH" + ], + "markdownDescription": "Type of repository filter\n\n---\n\nRequired: No \nType: String \nAllowed Values: WILDCARD_MATCH \nUpdate requires: No interruption\n" + } + }, + "properties": { + "RegistryId": { + "type": "string", + "description": "12-digit AWS account ID of the ECR registry.", + "markdownDescription": "12-digit AWS account ID of the ECR registry.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Rules": { + "type": "array", + "minItems": 0, + "maxItems": 50, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Rule" + }, + "description": "Array of signing rules that define which repositories should be signed and with which signing profiles.", + "markdownDescription": "Array of signing rules that define which repositories should be signed and with which signing profiles.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Rules" + ], + "readOnlyProperties": [ + "/properties/RegistryId" + ], + "primaryIdentifier": [ + "/properties/RegistryId" + ], + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "ecr:PutSigningConfiguration", + "ecr:GetSigningConfiguration" + ] + }, + "read": { + "permissions": [ + "ecr:GetSigningConfiguration" + ] + }, + "update": { + "permissions": [ + "ecr:PutSigningConfiguration", + "ecr:GetSigningConfiguration" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteSigningConfiguration", + "ecr:GetSigningConfiguration" + ] + }, + "list": { + "permissions": [ + "ecr:GetSigningConfiguration" + ] + } + }, + "tagging": { + "taggable": false + }, + "attributes": { + "RegistryId": { + "type": "string", + "description": "12-digit AWS account ID of the ECR registry.", + "markdownDescription": "12-digit AWS account ID of the ECR registry.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ecs-capacityprovider.json b/server/schema/resources/aws-ecs-capacityprovider.json index 89f0b800..6bec692f 100644 --- a/server/schema/resources/aws-ecs-capacityprovider.json +++ b/server/schema/resources/aws-ecs-capacityprovider.json @@ -1,7 +1,4 @@ { - "propertyTransform": { - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName/\")[-1] $OR $split(AutoScalingGroupArn, \"autoScalingGroupName/\")[-1]" - }, "tagging": { "permissions": [ "ecs:TagResource", @@ -14,6 +11,9 @@ "tagProperty": "/properties/Tags", "cloudFormationSystemTags": true }, + "propertyTransform": { + "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName/\")[-1] $OR $split(AutoScalingGroupArn, \"autoScalingGroupName/\")[-1]" + }, "handlers": { "read": { "permissions": [ @@ -59,6 +59,7 @@ "description": "Resource Type definition for AWS::ECS::CapacityProvider.", "createOnlyProperties": [ "/properties/AutoScalingGroupProvider/AutoScalingGroupArn", + "/properties/ManagedInstancesProvider/InstanceLaunchTemplate/FipsEnabled", "/properties/Name", "/properties/ClusterName" ], @@ -67,6 +68,26 @@ "/properties/Name" ], "definitions": { + "CapacityReservationRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "ReservationGroupArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ReservationPreference": { + "type": "string", + "enum": [ + "RESERVATIONS_ONLY", + "RESERVATIONS_FIRST", + "RESERVATIONS_EXCLUDED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: RESERVATIONS_ONLY | RESERVATIONS_FIRST | RESERVATIONS_EXCLUDED \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "AutoScalingGroupProvider": { "additionalProperties": false, "type": "object", @@ -115,6 +136,21 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "AutoRepairConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "ActionsStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "MemoryGiBPerVCpuRequest": { "additionalProperties": false, "type": "object", @@ -140,7 +176,7 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "Subnets": { "type": "array", @@ -152,6 +188,7 @@ } }, "required": [ + "SecurityGroups", "Subnets" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -321,9 +358,10 @@ "t4", "t4g", "vu9p", - "v100" + "v100", + "l40s" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 | l40s \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, @@ -488,6 +526,17 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ManagedInstancesLocalStorageConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "UseLocalStorage": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ManagedInstancesStorageConfiguration": { "additionalProperties": false, "type": "object", @@ -542,6 +591,23 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, + "CapacityOptionType": { + "type": "string", + "enum": [ + "ON_DEMAND", + "SPOT", + "RESERVED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ON_DEMAND | SPOT | RESERVED \nUpdate requires: No interruption\n" + }, + "FipsEnabled": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "InstanceMetadataTagsPropagation": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "StorageConfiguration": { "$ref": "#/definitions/ManagedInstancesStorageConfiguration" }, @@ -551,6 +617,12 @@ "InstanceRequirements": { "$ref": "#/definitions/InstanceRequirementsRequest" }, + "CapacityReservations": { + "$ref": "#/definitions/CapacityReservationRequest" + }, + "LocalStorageConfiguration": { + "$ref": "#/definitions/ManagedInstancesLocalStorageConfiguration" + }, "Monitoring": { "$ref": "#/definitions/ManagedInstancesMonitoringOptions" } @@ -569,6 +641,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, + "AutoRepairConfiguration": { + "$ref": "#/definitions/AutoRepairConfiguration" + }, "PropagateTags": { "type": "string", "enum": [ @@ -577,6 +652,21 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CAPACITY_PROVIDER | NONE \nUpdate requires: No interruption\n" }, + "InfrastructureOptimization": { + "description": "Defines how Amazon ECS Managed Instances optimizes the infrastructure in your capacity provider. Configure it to turn on or off the infrastructure optimization in your capacity provider, and to control the idle EC2 instances optimization delay.", + "additionalProperties": false, + "type": "object", + "properties": { + "ScaleInAfter": { + "description": "This parameter defines the number of seconds Amazon ECS Managed Instances waits before optimizing EC2 instances that have become idle or underutilized. A longer delay increases the likelihood of placing new tasks on idle instances, reducing startup time. A shorter delay helps reduce infrastructure costs by optimizing idle instances more quickly. Valid values are: Not set (null) - Uses the default optimization behavior, `-1` - Disables automatic infrastructure optimization, `0` to `3600` (inclusive) - Specifies the number of seconds to wait before optimizing instances.", + "maximum": 3600, + "type": "integer", + "minimum": -1, + "markdownDescription": "This parameter defines the number of seconds Amazon ECS Managed Instances waits before optimizing EC2 instances that have become idle or underutilized. A longer delay increases the likelihood of placing new tasks on idle instances, reducing startup time. A shorter delay helps reduce infrastructure costs by optimizing idle instances more quickly. Valid values are: Not set (null) - Uses the default optimization behavior, `-1` - Disables automatic infrastructure optimization, `0` to `3600` (inclusive) - Specifies the number of seconds to wait before optimizing instances.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Defines how Amazon ECS Managed Instances optimizes the infrastructure in your capacity provider. Configure it to turn on or off the infrastructure optimization in your capacity provider, and to control the idle EC2 instances optimization delay.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "InstanceLaunchTemplate": { "$ref": "#/definitions/InstanceLaunchTemplate" } @@ -585,9 +675,12 @@ "InfrastructureRoleArn", "InstanceLaunchTemplate" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" } }, + "conditionalCreateOnlyProperties": [ + "/properties/ManagedInstancesProvider/InstanceLaunchTemplate/CapacityOptionType" + ], "properties": { "AutoScalingGroupProvider": { "$ref": "#/definitions/AutoScalingGroupProvider" diff --git a/server/schema/resources/aws-ecs-cluster.json b/server/schema/resources/aws-ecs-cluster.json index 8e715379..948b7867 100644 --- a/server/schema/resources/aws-ecs-cluster.json +++ b/server/schema/resources/aws-ecs-cluster.json @@ -80,19 +80,19 @@ "type": "object", "properties": { "CapacityProvider": { - "description": "The short name of the capacity provider.", + "description": "The short name of the capacity provider. This can be either an AWS managed capacity provider (``FARGATE`` or ``FARGATE_SPOT``) or the name of a custom capacity provider that you created.", "type": "string", - "markdownDescription": "The short name of the capacity provider.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The short name of the capacity provider. This can be either an AWS managed capacity provider (``FARGATE`` or ``FARGATE_SPOT``) or the name of a custom capacity provider that you created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Weight": { - "description": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + Default value is ``0`` if not specified\n + Valid range: 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.", + "description": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + The default value is ``0`` if not specified\n + The valid range is 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.", "type": "integer", - "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + Default value is ``0`` if not specified\n + Valid range: 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + The default value is ``0`` if not specified\n + The valid range is 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Base": { - "description": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + Default value is ``0`` if not specified\n + Valid range: 0 to 100,000\n + Base requirements are satisfied first before weight distribution", + "description": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + The default value is ``0`` if not specified\n + The valid range is 0 to 100,000\n + Base requirements are satisfied first before weight distribution", "type": "integer", - "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + Default value is ``0`` if not specified\n + Valid range: 0 to 100,000\n + Base requirements are satisfied first before weight distribution\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + The default value is ``0`` if not specified\n + The valid range is 0 to 100,000\n + Base requirements are satisfied first before weight distribution\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "The ``CapacityProviderStrategyItem`` property specifies the details of the default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -141,9 +141,9 @@ "markdownDescription": "The value to set for the cluster setting. The supported values are ``enhanced``, ``enabled``, and ``disabled``. \n To use Container Insights with enhanced observability, set the ``containerInsights`` account setting to ``enhanced``.\n To use Container Insights, set the ``containerInsights`` account setting to ``enabled``.\n If a cluster value is specified, it will override the ``containerInsights`` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Name": { - "description": "The name of the cluster setting. The value is ``containerInsights`` .", + "description": "The name of the cluster setting. The value is ``containerInsights``.", "type": "string", - "markdownDescription": "The name of the cluster setting. The value is ``containerInsights`` .\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the cluster setting. The value is ``containerInsights``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights with enhanced observability or CloudWatch Container Insights for a cluster.\n Container Insights with enhanced observability provides all the Container Insights metrics, plus additional task and container metrics. This version supports enhanced observability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure Container Insights with enhanced observability on Amazon ECS, Container Insights auto-collects detailed infrastructure telemetry from the cluster level down to the container level in your environment and displays these critical performance data in curated dashboards removing the heavy lifting in observability set-up. \n For more information, see [Monitor Amazon ECS containers using Container Insights with enhanced observability](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" diff --git a/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json b/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json index 8d92bb8a..2252afcb 100644 --- a/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json +++ b/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json @@ -22,6 +22,7 @@ "update": { "permissions": [ "ecs:DescribeClusters", + "ecs:DescribeCapacityProviders", "ecs:PutClusterCapacityProviders" ] }, @@ -117,6 +118,10 @@ "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, + "required": [ + "Cluster", + "DefaultCapacityProviderStrategy" + ], "properties": { "DefaultCapacityProviderStrategy": { "$ref": "#/definitions/DefaultCapacityProviderStrategy" @@ -128,10 +133,5 @@ "$ref": "#/definitions/Cluster" } }, - "required": [ - "CapacityProviders", - "Cluster", - "DefaultCapacityProviderStrategy" - ], "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-ecs-daemon.json b/server/schema/resources/aws-ecs-daemon.json new file mode 100644 index 00000000..276b24c7 --- /dev/null +++ b/server/schema/resources/aws-ecs-daemon.json @@ -0,0 +1,283 @@ +{ + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "permissions": [ + "ecs:TagResource", + "ecs:UntagResource", + "ecs:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "handlers": { + "read": { + "permissions": [ + "ecs:DescribeDaemon", + "ecs:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "ecs:CreateDaemon", + "ecs:DescribeDaemon", + "ecs:DescribeDaemonDeployments", + "ecs:ListDaemonDeployments", + "ecs:ListTagsForResource", + "ecs:TagResource", + "iam:PassRole" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ecs:UpdateDaemon", + "ecs:DescribeDaemon", + "ecs:DescribeDaemonDeployments", + "ecs:ListDaemonDeployments", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:ListTagsForResource", + "iam:PassRole" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "ecs:DescribeDaemon", + "ecs:ListDaemons" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteDaemon", + "ecs:DescribeDaemon" + ], + "timeoutInMinutes": 30 + } + }, + "typeName": "AWS::ECS::Daemon", + "readOnlyProperties": [ + "/properties/DaemonArn", + "/properties/DeploymentArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/DaemonStatus" + ], + "description": "Information about a daemon resource.", + "writeOnlyProperties": [ + "/properties/CapacityProviderArns", + "/properties/DaemonName", + "/properties/DaemonTaskDefinitionArn", + "/properties/DeploymentConfiguration", + "/properties/EnableECSManagedTags", + "/properties/EnableExecuteCommand", + "/properties/PropagateTags" + ], + "createOnlyProperties": [ + "/properties/DaemonName", + "/properties/ClusterArn" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/DaemonArn" + ], + "definitions": { + "DaemonStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DELETE_IN_PROGRESS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | DELETE_IN_PROGRESS \nUpdate requires: No interruption\n" + }, + "DaemonDeploymentConfiguration": { + "description": "Optional deployment parameters that control how a daemon rolls out updates across container instances.", + "additionalProperties": false, + "type": "object", + "properties": { + "DrainPercent": { + "maximum": 100, + "description": "The percentage of container instances to drain simultaneously during a daemon deployment. Valid values are between 0.0 and 100.0.", + "type": "number", + "minimum": 0, + "markdownDescription": "The percentage of container instances to drain simultaneously during a daemon deployment. Valid values are between 0.0 and 100.0.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "BakeTimeInMinutes": { + "maximum": 1440, + "description": "The amount of time (in minutes) to wait after a successful deployment step before proceeding. This allows time to monitor for issues before continuing. The default value is 0.", + "type": "integer", + "minimum": 0, + "markdownDescription": "The amount of time (in minutes) to wait after a successful deployment step before proceeding. This allows time to monitor for issues before continuing. The default value is 0.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Alarms": { + "description": "The CloudWatch alarm configuration for the daemon deployment. When alarms are triggered during a deployment, the deployment can be automatically rolled back.", + "$ref": "#/definitions/DaemonAlarmConfiguration", + "markdownDescription": "The CloudWatch alarm configuration for the daemon deployment. When alarms are triggered during a deployment, the deployment can be automatically rolled back.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Optional deployment parameters that control how a daemon rolls out updates across container instances.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DaemonAlarmConfiguration": { + "description": "The CloudWatch alarm configuration for a daemon. When enabled, CloudWatch alarms determine whether a daemon deployment has failed.", + "additionalProperties": false, + "type": "object", + "properties": { + "AlarmNames": { + "description": "The CloudWatch alarm names to monitor during a daemon deployment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The CloudWatch alarm names to monitor during a daemon deployment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Enable": { + "description": "Determines whether to use the CloudWatch alarm option in the daemon deployment process. The default value is ``false``.", + "type": "boolean", + "markdownDescription": "Determines whether to use the CloudWatch alarm option in the daemon deployment process. The default value is ``false``.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The CloudWatch alarm configuration for a daemon. When enabled, CloudWatch alarms determine whether a daemon deployment has failed.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key).", + "type": "string", + "markdownDescription": "The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", + "type": "string", + "markdownDescription": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ClusterArn": { + "description": "The Amazon Resource Name (ARN) of the cluster that the daemon is running in.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the cluster that the daemon is running in.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "DaemonStatus": { + "description": "", + "$ref": "#/definitions/DaemonStatus", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DaemonTaskDefinitionArn": { + "description": "The Amazon Resource Name (ARN) of the daemon task definition used by this revision.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the daemon task definition used by this revision.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DaemonName": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "EnableECSManagedTags": { + "description": "Specifies whether Amazon ECS managed tags are turned on for the daemon tasks.", + "type": "boolean", + "markdownDescription": "Specifies whether Amazon ECS managed tags are turned on for the daemon tasks.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "EnableExecuteCommand": { + "description": "Specifies whether the execute command functionality is turned on for the daemon tasks.", + "type": "boolean", + "markdownDescription": "Specifies whether the execute command functionality is turned on for the daemon tasks.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "PropagateTags": { + "description": "Specifies whether tags are propagated from the daemon to the daemon tasks.", + "type": "string", + "enum": [ + "DAEMON", + "NONE" + ], + "markdownDescription": "Specifies whether tags are propagated from the daemon to the daemon tasks.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DAEMON | NONE \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "format": "date-time", + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "format": "date-time", + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeploymentArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CapacityProviderArns": { + "minItems": 1, + "description": "The Amazon Resource Names (ARNs) of the capacity providers associated with the daemon.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The Amazon Resource Names (ARNs) of the capacity providers associated with the daemon.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "DaemonArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeploymentConfiguration": { + "description": "The deployment configuration used for this daemon deployment.", + "$ref": "#/definitions/DaemonDeploymentConfiguration", + "markdownDescription": "The deployment configuration used for this daemon deployment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "attributes": { + "DaemonStatus": { + "description": "", + "$ref": "#/definitions/DaemonStatus", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "format": "date-time", + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "format": "date-time", + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeploymentArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DaemonArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ecs-daemontaskdefinition.json b/server/schema/resources/aws-ecs-daemontaskdefinition.json new file mode 100644 index 00000000..a6737624 --- /dev/null +++ b/server/schema/resources/aws-ecs-daemontaskdefinition.json @@ -0,0 +1,797 @@ +{ + "tagging": { + "permissions": [ + "ecs:TagResource", + "ecs:UntagResource", + "ecs:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "propertyTransform": { + "/properties/ExecutionRoleArn": "ExecutionRoleArn $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:iam::[0-9]{12}[:]role/\", ExecutionRoleArn])", + "/properties/TaskRoleArn": "TaskRoleArn $OR $split(TaskRoleArn, \"role/\")[-1] $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:iam::[0-9]{12}[:]role/\", TaskRoleArn])" + }, + "handlers": { + "read": { + "permissions": [ + "ecs:DescribeDaemonTaskDefinition", + "ecs:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "ecs:RegisterDaemonTaskDefinition", + "ecs:DescribeDaemonTaskDefinition", + "ecs:TagResource", + "iam:PassRole" + ] + }, + "update": { + "permissions": [ + "ecs:TagResource", + "ecs:UntagResource", + "ecs:ListTagsForResource", + "ecs:DescribeDaemonTaskDefinition", + "iam:PassRole" + ] + }, + "list": { + "permissions": [ + "ecs:ListDaemonTaskDefinitions", + "ecs:DescribeDaemonTaskDefinition" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteDaemonTaskDefinition", + "ecs:DescribeDaemonTaskDefinition", + "iam:PassRole" + ] + } + }, + "typeName": "AWS::ECS::DaemonTaskDefinition", + "readOnlyProperties": [ + "/properties/DaemonTaskDefinitionArn" + ], + "description": "The details of a daemon task definition. A daemon task definition is a template that describes the containers that form a daemon. Daemons deploy cross-cutting software agents independently across your Amazon ECS infrastructure.", + "createOnlyProperties": [ + "/properties/Family", + "/properties/ContainerDefinitions", + "/properties/Cpu", + "/properties/Memory", + "/properties/ExecutionRoleArn", + "/properties/TaskRoleArn", + "/properties/Volumes" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/DaemonTaskDefinitionArn" + ], + "definitions": { + "RepositoryCredentials": { + "description": "The repository credentials for private registry authentication.", + "additionalProperties": false, + "type": "object", + "properties": { + "CredentialsParameter": { + "description": "The Amazon Resource Name (ARN) of the secret containing the private repository credentials.\n When you use the Amazon ECS API, CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret. When you use the AWS Management Console, you must specify the full ARN of the secret.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the secret containing the private repository credentials.\n When you use the Amazon ECS API, CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret. When you use the AWS Management Console, you must specify the full ARN of the secret.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The repository credentials for private registry authentication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KeyValuePair": { + "description": "A key-value pair object.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.", + "type": "string", + "markdownDescription": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the key-value pair. For environment variables, this is the name of the environment variable.", + "type": "string", + "markdownDescription": "The name of the key-value pair. For environment variables, this is the name of the environment variable.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A key-value pair object.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Device": { + "description": "An object representing a container instance host device.", + "additionalProperties": false, + "type": "object", + "properties": { + "HostPath": { + "description": "The path for the device on the host container instance.", + "type": "string", + "markdownDescription": "The path for the device on the host container instance.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Permissions": { + "description": "The explicit permissions to provide to the container for the device. By default, the container has permissions for ``read``, ``write``, and ``mknod`` for the device.", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The explicit permissions to provide to the container for the device. By default, the container has permissions for ``read``, ``write``, and ``mknod`` for the device.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ContainerPath": { + "description": "The path inside the container at which to expose the host device.", + "type": "string", + "markdownDescription": "The path inside the container at which to expose the host device.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An object representing a container instance host device.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinuxParameters": { + "description": "The Linux-specific options that are applied to the container, such as Linux [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html).", + "additionalProperties": false, + "type": "object", + "properties": { + "Capabilities": { + "description": "The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.\n For tasks that use the Fargate launch type, ``capabilities`` is supported for all platform versions but the ``add`` parameter is only supported if using platform version 1.4.0 or later.", + "$ref": "#/definitions/KernelCapabilities", + "markdownDescription": "The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.\n For tasks that use the Fargate launch type, ``capabilities`` is supported for all platform versions but the ``add`` parameter is only supported if using platform version 1.4.0 or later.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tmpfs": { + "description": "The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the ``--tmpfs`` option to docker run.\n If you're using tasks that use the Fargate launch type, the ``tmpfs`` parameter isn't supported.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "markdownDescription": "The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the ``--tmpfs`` option to docker run.\n If you're using tasks that use the Fargate launch type, the ``tmpfs`` parameter isn't supported.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Devices": { + "description": "Any host devices to expose to the container. This parameter maps to ``Devices`` in the docker container create command and the ``--device`` option to docker run.\n If you're using tasks that use the Fargate launch type, the ``devices`` parameter isn't supported.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Device" + }, + "markdownDescription": "Any host devices to expose to the container. This parameter maps to ``Devices`` in the docker container create command and the ``--device`` option to docker run.\n If you're using tasks that use the Fargate launch type, the ``devices`` parameter isn't supported.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "InitProcessEnabled": { + "description": "Run an ``init`` process inside the container that forwards signals and reaps processes. This parameter maps to the ``--init`` option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + "type": "boolean", + "markdownDescription": "Run an ``init`` process inside the container that forwards signals and reaps processes. This parameter maps to the ``--init`` option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The Linux-specific options that are applied to the container, such as Linux [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ContainerDependency": { + "description": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to use container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks that use the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For more information about how to create a container dependency, see [Container dependency](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-containerdependency) in the *Amazon Elastic Container Service Developer Guide*.", + "additionalProperties": false, + "type": "object", + "properties": { + "Condition": { + "description": "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup.", + "type": "string", + "markdownDescription": "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ContainerName": { + "description": "The name of a container.", + "type": "string", + "markdownDescription": "The name of a container.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to use container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks that use the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For more information about how to create a container dependency, see [Container dependency](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-containerdependency) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HealthCheck": { + "description": "An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of docker run.\n The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.\n You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.\n The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.\n Amazon ECS performs health checks on containers with the default that launched the container instance or the task.\n The following describes the possible ``healthStatus`` values for a container:\n + ``HEALTHY``-The container health check has passed successfully.\n + ``UNHEALTHY``-The container health check has failed.\n + ``UNKNOWN``-The container health check is being evaluated, there's no container health check defined, or Amazon ECS doesn't have the health status of the container.\n \n The following describes the possible ``healthStatus`` values based on the container health checker status of essential containers in the task with the following priority order (high to low):\n + ``UNHEALTHY``-One or more essential containers have failed their health check.\n + ``UNKNOWN``-Any essential container running within the task is in an ``UNKNOWN`` state and no other essential containers have an ``UNHEALTHY`` state.\n + ``HEALTHY``-All essential containers within the task have passed their health checks.\n \n Consider the following task health example with 2 containers.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``UNKNOWN``, the task health is ``UNHEALTHY``.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``HEALTHY``, the task health is ``UNHEALTHY``.\n + If Container1 is ``HEALTHY`` and Container2 is ``UNKNOWN``, the task health is ``UNKNOWN``.\n + If Container1 is ``HEALTHY`` and Container2 is ``HEALTHY``, the task health is ``HEALTHY``.\n \n Consider the following task health example with 3 containers.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``UNKNOWN``, the task health is ``UNHEALTHY``.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``HEALTHY``, the task health is ``UNHEALTHY``.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``HEALTHY``, and Container3 is ``HEALTHY``, the task health is ``UNHEALTHY``.\n + If Container1 is ``HEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``HEALTHY``, the task health is ``UNKNOWN``.\n + If Container1 is ``HEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``UNKNOWN``, the task health is ``UNKNOWN``.\n + If Container1 is ``HEALTHY`` and Container2 is ``HEALTHY``, and Container3 is ``HEALTHY``, the task health is ``HEALTHY``.\n \n If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.\n When a container health check fails for a task that is part of a service, the following process occurs:\n 1. The task is marked as ``UNHEALTHY``.\n 1. The unhealthy task will be stopped, and during the stopping process, it will go through the following states:\n + ``DEACTIVATING`` - In this state, Amazon ECS performs additional steps before stopping the task. For example, for tasks that are part of services configured to use Elastic Load Balancing target groups, target groups will be deregistered in this state.\n + ``STOPPING`` - The task is in the process of being stopped.\n + ``DEPROVISIONING`` - Resources associated with the task are being cleaned up.\n + ``STOPPED`` - The task has been completely stopped.\n \n 1. After the old task stops, a new task will be launched to ensure service operation, and the new task will go through the following lifecycle:\n + ``PROVISIONING`` - Resources required for the task are being provisioned.\n + ``PENDING`` - The task is waiting to be placed on a container instance.\n + ``ACTIVATING`` - In this state, Amazon ECS pulls container images, creates containers, configures task networking, registers load balancer target groups, and configures service discovery status.\n + ``RUNNING`` - The task is running and performing its work.\n \n \n For more detailed information about task lifecycle states, see [Task lifecycle](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle-explanation.html) in the *Amazon Elastic Container Service Developer Guide*.\n The following are notes about container health check support:\n + If the Amazon ECS container agent becomes disconnected from the Amazon ECS service, this won't cause a container to transition to an ``UNHEALTHY`` status. This is by design, to ensure that containers remain running during agent restarts or temporary unavailability. The health check status is the \"last heard from\" response from the Amazon ECS agent, so if the container was considered ``HEALTHY`` prior to the disconnect, that status will remain until the agent reconnects and another health check occurs. There are no assumptions made about the status of the container health checks.\n + Container health checks require version ``1.17.0`` or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS container agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).\n + Container health checks are supported for Fargate tasks if you're using platform version ``1.1.0`` or greater. For more information, see [platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).\n + Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.\n \n For an example of how to specify a task definition with multiple containers where container dependency is specified, see [Container dependency](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-containerdependency) in the *Amazon Elastic Container Service Developer Guide*.", + "additionalProperties": false, + "type": "object", + "properties": { + "Command": { + "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", + "insertionOrder": true, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Timeout": { + "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", + "type": "integer", + "markdownDescription": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Retries": { + "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", + "type": "integer", + "markdownDescription": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Interval": { + "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", + "type": "integer", + "markdownDescription": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "StartPeriod": { + "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + "type": "integer", + "markdownDescription": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of docker run.\n The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.\n You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.\n The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.\n Amazon ECS performs health checks on containers with the default that launched the container instance or the task.\n The following describes the possible ``healthStatus`` values for a container:\n + ``HEALTHY``-The container health check has passed successfully.\n + ``UNHEALTHY``-The container health check has failed.\n + ``UNKNOWN``-The container health check is being evaluated, there's no container health check defined, or Amazon ECS doesn't have the health status of the container.\n \n The following describes the possible ``healthStatus`` values based on the container health checker status of essential containers in the task with the following priority order (high to low):\n + ``UNHEALTHY``-One or more essential containers have failed their health check.\n + ``UNKNOWN``-Any essential container running within the task is in an ``UNKNOWN`` state and no other essential containers have an ``UNHEALTHY`` state.\n + ``HEALTHY``-All essential containers within the task have passed their health checks.\n \n Consider the following task health example with 2 containers.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``UNKNOWN``, the task health is ``UNHEALTHY``.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``HEALTHY``, the task health is ``UNHEALTHY``.\n + If Container1 is ``HEALTHY`` and Container2 is ``UNKNOWN``, the task health is ``UNKNOWN``.\n + If Container1 is ``HEALTHY`` and Container2 is ``HEALTHY``, the task health is ``HEALTHY``.\n \n Consider the following task health example with 3 containers.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``UNKNOWN``, the task health is ``UNHEALTHY``.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``HEALTHY``, the task health is ``UNHEALTHY``.\n + If Container1 is ``UNHEALTHY`` and Container2 is ``HEALTHY``, and Container3 is ``HEALTHY``, the task health is ``UNHEALTHY``.\n + If Container1 is ``HEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``HEALTHY``, the task health is ``UNKNOWN``.\n + If Container1 is ``HEALTHY`` and Container2 is ``UNKNOWN``, and Container3 is ``UNKNOWN``, the task health is ``UNKNOWN``.\n + If Container1 is ``HEALTHY`` and Container2 is ``HEALTHY``, and Container3 is ``HEALTHY``, the task health is ``HEALTHY``.\n \n If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.\n When a container health check fails for a task that is part of a service, the following process occurs:\n 1. The task is marked as ``UNHEALTHY``.\n 1. The unhealthy task will be stopped, and during the stopping process, it will go through the following states:\n + ``DEACTIVATING`` - In this state, Amazon ECS performs additional steps before stopping the task. For example, for tasks that are part of services configured to use Elastic Load Balancing target groups, target groups will be deregistered in this state.\n + ``STOPPING`` - The task is in the process of being stopped.\n + ``DEPROVISIONING`` - Resources associated with the task are being cleaned up.\n + ``STOPPED`` - The task has been completely stopped.\n \n 1. After the old task stops, a new task will be launched to ensure service operation, and the new task will go through the following lifecycle:\n + ``PROVISIONING`` - Resources required for the task are being provisioned.\n + ``PENDING`` - The task is waiting to be placed on a container instance.\n + ``ACTIVATING`` - In this state, Amazon ECS pulls container images, creates containers, configures task networking, registers load balancer target groups, and configures service discovery status.\n + ``RUNNING`` - The task is running and performing its work.\n \n \n For more detailed information about task lifecycle states, see [Task lifecycle](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle-explanation.html) in the *Amazon Elastic Container Service Developer Guide*.\n The following are notes about container health check support:\n + If the Amazon ECS container agent becomes disconnected from the Amazon ECS service, this won't cause a container to transition to an ``UNHEALTHY`` status. This is by design, to ensure that containers remain running during agent restarts or temporary unavailability. The health check status is the \"last heard from\" response from the Amazon ECS agent, so if the container was considered ``HEALTHY`` prior to the disconnect, that status will remain until the agent reconnects and another health check occurs. There are no assumptions made about the status of the container health checks.\n + Container health checks require version ``1.17.0`` or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS container agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).\n + Container health checks are supported for Fargate tasks if you're using platform version ``1.1.0`` or greater. For more information, see [platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).\n + Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.\n \n For an example of how to specify a task definition with multiple containers where container dependency is specified, see [Container dependency](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-containerdependency) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Ulimit": { + "description": "The ``ulimit`` settings to pass to the container.\n Amazon ECS tasks hosted on FARGATElong use the default resource limit values set by the operating system with the exception of the ``nofile`` resource limit parameter which FARGATElong overrides. The ``nofile`` resource limit sets a restriction on the number of open files that a container can use. The default ``nofile`` soft limit is ``65535`` and the default hard limit is ``65535``.\n You can specify the ``ulimit`` settings for a container in a task definition.", + "additionalProperties": false, + "type": "object", + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "properties": { + "SoftLimit": { + "description": "The soft limit for the ``ulimit`` type. The value can be specified in bytes, seconds, or as a count, depending on the ``type`` of the ``ulimit``.", + "type": "integer", + "markdownDescription": "The soft limit for the ``ulimit`` type. The value can be specified in bytes, seconds, or as a count, depending on the ``type`` of the ``ulimit``.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "HardLimit": { + "description": "The hard limit for the ``ulimit`` type. The value can be specified in bytes, seconds, or as a count, depending on the ``type`` of the ``ulimit``.", + "type": "integer", + "markdownDescription": "The hard limit for the ``ulimit`` type. The value can be specified in bytes, seconds, or as a count, depending on the ``type`` of the ``ulimit``.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The ``type`` of the ``ulimit``.", + "type": "string", + "markdownDescription": "The ``type`` of the ``ulimit``.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The ``ulimit`` settings to pass to the container.\n Amazon ECS tasks hosted on FARGATElong use the default resource limit values set by the operating system with the exception of the ``nofile`` resource limit parameter which FARGATElong overrides. The ``nofile`` resource limit sets a restriction on the number of open files that a container can use. The default ``nofile`` soft limit is ``65535`` and the default hard limit is ``65535``.\n You can specify the ``ulimit`` settings for a container in a task definition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RestartPolicy": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "IgnoredExitCodes": { + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "RestartAttemptPeriod": { + "description": "", + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Enabled": { + "description": "", + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SystemControl": { + "description": "A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the docker container create command and the ``--sysctl`` option to docker run. For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.\n We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:\n + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect.\n + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported.\n \n If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode).\n + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task.\n \n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The namespaced kernel parameter to set a ``value`` for.\n Valid IPC namespace values: ``\"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\" | \"kernel.sem\" | \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" | \"kernel.shm_rmid_forced\"``, and ``Sysctls`` that start with ``\"fs.mqueue.*\"``\n Valid network namespace values: ``Sysctls`` that start with ``\"net.*\"``. Only namespaced ``Sysctls`` that exist within the container starting with \"net.* are accepted.\n All of these values are supported by Fargate.", + "type": "string", + "markdownDescription": "The namespaced kernel parameter to set a ``value`` for.\n Valid IPC namespace values: ``\"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\" | \"kernel.sem\" | \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" | \"kernel.shm_rmid_forced\"``, and ``Sysctls`` that start with ``\"fs.mqueue.*\"``\n Valid network namespace values: ``Sysctls`` that start with ``\"net.*\"``. Only namespaced ``Sysctls`` that exist within the container starting with \"net.* are accepted.\n All of these values are supported by Fargate.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Namespace": { + "description": "The namespaced kernel parameter to set a ``value`` for.", + "type": "string", + "markdownDescription": "The namespaced kernel parameter to set a ``value`` for.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the docker container create command and the ``--sysctl`` option to docker run. For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.\n We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:\n + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect.\n + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported.\n \n If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode).\n + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task.\n \n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HostVolumeProperties": { + "description": "Details on a container instance bind mount host volume.", + "additionalProperties": false, + "type": "object", + "properties": { + "SourcePath": { + "description": "When the ``host`` parameter is used, specify a ``sourcePath`` to declare the path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the ``host`` parameter contains a ``sourcePath`` file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the ``sourcePath`` value doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.\n If you're using the Fargate launch type, the ``sourcePath`` parameter is not supported.", + "type": "string", + "markdownDescription": "When the ``host`` parameter is used, specify a ``sourcePath`` to declare the path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the ``host`` parameter contains a ``sourcePath`` file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the ``sourcePath`` value doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.\n If you're using the Fargate launch type, the ``sourcePath`` parameter is not supported.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Details on a container instance bind mount host volume.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogConfiguration": { + "description": "The log configuration for the container. This parameter maps to ``LogConfig`` in the docker container create command and the ``--log-driver`` option to docker run.\n By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver configuration in the container definition.\n Understand the following when specifying a log configuration for your containers.\n + Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon. Additional log drivers may be available in future releases of the Amazon ECS container agent.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``,``syslog``, ``splunk``, and ``awsfirelens``.\n + This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.\n + For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must register the available logging drivers with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS container agent configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that are on FARGATElong, because you don't have access to the underlying infrastructure your tasks are hosted on, any additional software needed must be installed outside of the task. For example, the Fluentd output aggregators or a remote host running Logstash to send Gelf logs to.", + "additionalProperties": false, + "type": "object", + "required": [ + "LogDriver" + ], + "properties": { + "SecretOptions": { + "description": "The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + }, + "markdownDescription": "The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Options": { + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using Fargate.Optional when using EC2. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. \n The following options apply to all supported log drivers.\n + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to the log driver specified using logDriver. The delivery mode you choose affects application availability when the flow of logs from container is interrupted. If you use the blocking mode and the flow of logs is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. You can set a default mode for all containers in a specific Region by using the defaultLogDriverMode account setting. If you don't specify the mode option or configure the account setting, Amazon ECS will default to the non-blocking mode. For more information about the account setting, see Default log driver mode in the Amazon Elastic Container Service Developer Guide. On June 25, 2025, Amazon ECS changed the default log driver mode from blocking to non-blocking to prioritize task availability over logging. To continue using the blocking mode after this change, do one of the following: Set the mode option in your container definition's logConfiguration as blocking. Set the defaultLogDriverMode account setting to blocking. + max-buffer-size Required: No Default value: 10m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + "additionalProperties": false, + "type": "object", + "markdownDescription": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using Fargate.Optional when using EC2. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. \n The following options apply to all supported log drivers.\n + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to the log driver specified using logDriver. The delivery mode you choose affects application availability when the flow of logs from container is interrupted. If you use the blocking mode and the flow of logs is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. You can set a default mode for all containers in a specific Region by using the defaultLogDriverMode account setting. If you don't specify the mode option or configure the account setting, Amazon ECS will default to the non-blocking mode. For more information about the account setting, see Default log driver mode in the Amazon Elastic Container Service Developer Guide. On June 25, 2025, Amazon ECS changed the default log driver mode from blocking to non-blocking to prioritize task availability over logging. To continue using the blocking mode after this change, do one of the following: Set the mode option in your container definition's logConfiguration as blocking. Set the defaultLogDriverMode account setting to blocking. + max-buffer-size Required: No Default value: 10m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogDriver": { + "description": "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Send Amazon ECS logs to CloudWatch](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Send Amazon ECS logs to an service or Partner](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html).\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software.", + "type": "string", + "markdownDescription": "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Send Amazon ECS logs to CloudWatch](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Send Amazon ECS logs to an service or Partner](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html).\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The log configuration for the container. This parameter maps to ``LogConfig`` in the docker container create command and the ``--log-driver`` option to docker run.\n By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver configuration in the container definition.\n Understand the following when specifying a log configuration for your containers.\n + Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon. Additional log drivers may be available in future releases of the Amazon ECS container agent.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``,``syslog``, ``splunk``, and ``awsfirelens``.\n + This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.\n + For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must register the available logging drivers with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS container agent configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that are on FARGATElong, because you don't have access to the underlying infrastructure your tasks are hosted on, any additional software needed must be installed outside of the task. For example, the Fluentd output aggregators or a remote host running Logstash to send Gelf logs to.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Secret": { + "description": "An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:\n + To inject sensitive data into your containers as environment variables, use the ``secrets`` container definition parameter.\n + To reference sensitive information in the log configuration of a container, use the ``secretOptions`` container definition parameter.\n \n For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*.", + "additionalProperties": false, + "type": "object", + "required": [ + "Name", + "ValueFrom" + ], + "properties": { + "ValueFrom": { + "description": "The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store.\n For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*.\n If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.", + "type": "string", + "markdownDescription": "The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store.\n For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*.\n If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the secret.", + "type": "string", + "markdownDescription": "The name of the secret.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:\n + To inject sensitive data into your containers as environment variables, use the ``secrets`` container definition parameter.\n + To reference sensitive information in the log configuration of a container, use the ``secretOptions`` container definition parameter.\n \n For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MountPoint": { + "description": "The details for a volume mount point that's used in a container definition.", + "additionalProperties": false, + "type": "object", + "properties": { + "ReadOnly": { + "description": "If this value is ``true``, the container has read-only access to the volume. If this value is ``false``, then the container can write to the volume. The default value is ``false``.", + "type": "boolean", + "markdownDescription": "If this value is ``true``, the container has read-only access to the volume. If this value is ``false``, then the container can write to the volume. The default value is ``false``.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "SourceVolume": { + "description": "The name of the volume to mount. Must be a volume name referenced in the ``name`` parameter of task definition ``volume``.", + "type": "string", + "markdownDescription": "The name of the volume to mount. Must be a volume name referenced in the ``name`` parameter of task definition ``volume``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ContainerPath": { + "description": "The path on the container to mount the host volume at.", + "type": "string", + "markdownDescription": "The path on the container to mount the host volume at.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The details for a volume mount point that's used in a container definition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FirelensConfiguration": { + "description": "The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.", + "additionalProperties": false, + "type": "object", + "properties": { + "Options": { + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "description": "The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is ``\"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}``. For more information, see [Creating a task definition that uses a FireLens configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef) in the *Amazon Elastic Container Service Developer Guide*.\n Tasks hosted on FARGATElong only support the ``file`` configuration file type.", + "additionalProperties": false, + "type": "object", + "markdownDescription": "The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is ``\"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}``. For more information, see [Creating a task definition that uses a FireLens configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef) in the *Amazon Elastic Container Service Developer Guide*.\n Tasks hosted on FARGATElong only support the ``file`` configuration file type.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Type": { + "description": "The log router to use. The valid values are ``fluentd`` or ``fluentbit``.", + "type": "string", + "markdownDescription": "The log router to use. The valid values are ``fluentd`` or ``fluentbit``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Volume": { + "description": "The data volume configuration for tasks launched using this task definition. Specifying a volume configuration in a task definition is optional. The volume configuration may contain multiple volumes but only one volume configured at launch is supported. Each volume defined in the volume configuration may only specify a ``name`` and one of either ``configuredAtLaunch``, ``dockerVolumeConfiguration``, ``efsVolumeConfiguration``, ``fsxWindowsFileServerVolumeConfiguration``, or ``host``. If an empty volume configuration is specified, by default Amazon ECS uses a host volume. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).", + "additionalProperties": false, + "type": "object", + "properties": { + "Host": { + "description": "This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.\n Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\\my\\path:C:\\my\\path`` and ``D:\\:D:\\``, but not ``D:\\my\\path:C:\\my\\path`` or ``D:\\:C:\\my\\path``.", + "$ref": "#/definitions/HostVolumeProperties", + "markdownDescription": "This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.\n Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\\my\\path:C:\\my\\path`` and ``D:\\:D:\\``, but not ``D:\\my\\path:C:\\my\\path`` or ``D:\\:C:\\my\\path``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.\n When using a volume configured at launch, the ``name`` is required and must also be specified as the volume name in the ``ServiceVolumeConfiguration`` or ``TaskVolumeConfiguration`` parameter when creating your service or standalone task.\n For all other types of volumes, this name is referenced in the ``sourceVolume`` parameter of the ``mountPoints`` object in the container definition.\n When a volume is using the ``efsVolumeConfiguration``, the name is required.", + "type": "string", + "markdownDescription": "The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.\n When using a volume configured at launch, the ``name`` is required and must also be specified as the volume name in the ``ServiceVolumeConfiguration`` or ``TaskVolumeConfiguration`` parameter when creating your service or standalone task.\n For all other types of volumes, this name is referenced in the ``sourceVolume`` parameter of the ``mountPoints`` object in the container definition.\n When a volume is using the ``efsVolumeConfiguration``, the name is required.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The data volume configuration for tasks launched using this task definition. Specifying a volume configuration in a task definition is optional. The volume configuration may contain multiple volumes but only one volume configured at launch is supported. Each volume defined in the volume configuration may only specify a ``name`` and one of either ``configuredAtLaunch``, ``dockerVolumeConfiguration``, ``efsVolumeConfiguration``, ``fsxWindowsFileServerVolumeConfiguration``, or ``host``. If an empty volume configuration is specified, by default Amazon ECS uses a host volume. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KernelCapabilities": { + "description": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.\n The following describes how Docker processes the Linux capabilities specified in the ``add`` and ``drop`` request parameters. For information about the latest behavior, see [Docker Compose: order of cap_drop and cap_add](https://docs.aws.amazon.com/https://forums.docker.com/t/docker-compose-order-of-cap-drop-and-cap-add/97136/1) in the Docker Community Forum.\n + When the container is a privleged container, the container capabilities are all of the default Docker capabilities. The capabilities specified in the ``add`` request parameter, and the ``drop`` request parameter are ignored.\n + When the ``add`` request parameter is set to ALL, the container capabilities are all of the default Docker capabilities, excluding those specified in the ``drop`` request parameter.\n + When the ``drop`` request parameter is set to ALL, the container capabilities are the capabilities specified in the ``add`` request parameter.\n + When the ``add`` request parameter and the ``drop`` request parameter are both empty, the capabilities the container capabilities are all of the default Docker capabilities.\n + The default is to first drop the capabilities specified in the ``drop`` request parameter, and then add the capabilities specified in the ``add`` request parameter.", + "additionalProperties": false, + "type": "object", + "properties": { + "Add": { + "description": "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the docker container create command and the ``--cap-add`` option to docker run.\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the docker container create command and the ``--cap-add`` option to docker run.\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Drop": { + "description": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the docker container create command and the ``--cap-drop`` option to docker run.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the docker container create command and the ``--cap-drop`` option to docker run.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.\n The following describes how Docker processes the Linux capabilities specified in the ``add`` and ``drop`` request parameters. For information about the latest behavior, see [Docker Compose: order of cap_drop and cap_add](https://docs.aws.amazon.com/https://forums.docker.com/t/docker-compose-order-of-cap-drop-and-cap-add/97136/1) in the Docker Community Forum.\n + When the container is a privleged container, the container capabilities are all of the default Docker capabilities. The capabilities specified in the ``add`` request parameter, and the ``drop`` request parameter are ignored.\n + When the ``add`` request parameter is set to ALL, the container capabilities are all of the default Docker capabilities, excluding those specified in the ``drop`` request parameter.\n + When the ``drop`` request parameter is set to ALL, the container capabilities are the capabilities specified in the ``add`` request parameter.\n + When the ``add`` request parameter and the ``drop`` request parameter are both empty, the capabilities the container capabilities are all of the default Docker capabilities.\n + The default is to first drop the capabilities specified in the ``drop`` request parameter, and then add the capabilities specified in the ``add`` request parameter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tmpfs": { + "description": "The container path, mount options, and size of the tmpfs mount.", + "additionalProperties": false, + "type": "object", + "required": [ + "Size" + ], + "properties": { + "Size": { + "description": "The maximum size (in MiB) of the tmpfs volume.", + "type": "integer", + "markdownDescription": "The maximum size (in MiB) of the tmpfs volume.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "ContainerPath": { + "description": "The absolute file path where the tmpfs volume is to be mounted.", + "type": "string", + "markdownDescription": "The absolute file path where the tmpfs volume is to be mounted.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "MountOptions": { + "description": "The list of tmpfs volume mount options.\n Valid values: ``\"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"``", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The list of tmpfs volume mount options.\n Valid values: ``\"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"``\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The container path, mount options, and size of the tmpfs mount.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EnvironmentFile": { + "description": "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored.\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*.\n Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. \n You must use the following platforms for the Fargate launch type:\n + Linux platform version ``1.4.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n Consider the following when using the Fargate launch type:\n + The file is handled like a native Docker env-file.\n + There is no support for shell escape handling.\n + The container entry point interperts the ``VARIABLE`` values.", + "additionalProperties": false, + "type": "object", + "properties": { + "Type": { + "description": "The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``.", + "type": "string", + "markdownDescription": "The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored.\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*.\n Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. \n You must use the following platforms for the Fargate launch type:\n + Linux platform version ``1.4.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n Consider the following when using the Fargate launch type:\n + The file is handled like a native Docker env-file.\n + There is no support for shell escape handling.\n + The container entry point interperts the ``VARIABLE`` values.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DaemonContainerDefinition": { + "description": "A container definition for a daemon task. Daemon container definitions describe the containers that run as part of a daemon task on container instances managed by capacity providers.", + "additionalProperties": false, + "type": "object", + "required": [ + "Name", + "Image" + ], + "properties": { + "User": { + "description": "The user to use inside the container.", + "type": "string", + "markdownDescription": "The user to use inside the container.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Secrets": { + "description": "The secrets to pass to the container.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + }, + "markdownDescription": "The secrets to pass to the container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Memory": { + "description": "The amount (in MiB) of memory to present to the container. If the container attempts to exceed the memory specified here, the container is killed.", + "type": "integer", + "markdownDescription": "The amount (in MiB) of memory to present to the container. If the container attempts to exceed the memory specified here, the container is killed.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Privileged": { + "description": "When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user).", + "type": "boolean", + "markdownDescription": "When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user).\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "StartTimeout": { + "description": "Time duration (in seconds) to wait before giving up on resolving dependencies for a container.", + "type": "integer", + "markdownDescription": "Time duration (in seconds) to wait before giving up on resolving dependencies for a container.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "HealthCheck": { + "description": "The container health check command and associated configuration parameters for the container.", + "$ref": "#/definitions/HealthCheck", + "markdownDescription": "The container health check command and associated configuration parameters for the container.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Cpu": { + "description": "The number of ``cpu`` units reserved for the container.", + "type": "integer", + "markdownDescription": "The number of ``cpu`` units reserved for the container.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "EntryPoint": { + "description": "The entry point that's passed to the container.", + "insertionOrder": true, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The entry point that's passed to the container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ReadonlyRootFilesystem": { + "description": "When this parameter is true, the container is given read-only access to its root file system.", + "type": "boolean", + "markdownDescription": "When this parameter is true, the container is given read-only access to its root file system.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Image": { + "description": "The image used to start the container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``.", + "type": "string", + "markdownDescription": "The image used to start the container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Essential": { + "description": "If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped.", + "type": "boolean", + "markdownDescription": "If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "LogConfiguration": { + "description": "The log configuration specification for the container.", + "$ref": "#/definitions/LogConfiguration", + "markdownDescription": "The log configuration specification for the container.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "EnvironmentFiles": { + "description": "A list of files containing the environment variables to pass to a container.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentFile" + }, + "markdownDescription": "A list of files containing the environment variables to pass to a container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the container. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.", + "type": "string", + "markdownDescription": "The name of the container. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "FirelensConfiguration": { + "description": "The FireLens configuration for the container. This is used to specify and configure a log router for container logs.", + "$ref": "#/definitions/FirelensConfiguration", + "markdownDescription": "The FireLens configuration for the container. This is used to specify and configure a log router for container logs.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "SystemControls": { + "description": "A list of namespaced kernel parameters to set in the container.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/SystemControl" + }, + "markdownDescription": "A list of namespaced kernel parameters to set in the container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Interactive": { + "description": "When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated.", + "type": "boolean", + "markdownDescription": "When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Ulimits": { + "description": "A list of ``ulimits`` to set in the container.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Ulimit" + }, + "markdownDescription": "A list of ``ulimits`` to set in the container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "StopTimeout": { + "description": "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.", + "type": "integer", + "markdownDescription": "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "WorkingDirectory": { + "description": "The working directory to run commands inside the container in.", + "type": "string", + "markdownDescription": "The working directory to run commands inside the container in.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "MemoryReservation": { + "description": "The soft limit (in MiB) of memory to reserve for the container.", + "type": "integer", + "markdownDescription": "The soft limit (in MiB) of memory to reserve for the container.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "RepositoryCredentials": { + "description": "The private repository authentication credentials to use.", + "$ref": "#/definitions/RepositoryCredentials", + "markdownDescription": "The private repository authentication credentials to use.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LinuxParameters": { + "description": "Linux-specific modifications that are applied to the container configuration, such as Linux kernel capabilities.", + "$ref": "#/definitions/LinuxParameters", + "markdownDescription": "Linux-specific modifications that are applied to the container configuration, such as Linux kernel capabilities.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "RestartPolicy": { + "description": "The restart policy for the container. When you set up a restart policy, Amazon ECS can restart the container without needing to replace the task.", + "$ref": "#/definitions/RestartPolicy", + "markdownDescription": "The restart policy for the container. When you set up a restart policy, Amazon ECS can restart the container without needing to replace the task.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "PseudoTerminal": { + "description": "When this parameter is ``true``, a TTY is allocated.", + "type": "boolean", + "markdownDescription": "When this parameter is ``true``, a TTY is allocated.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "MountPoints": { + "description": "The mount points for data volumes in your container.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/MountPoint" + }, + "markdownDescription": "The mount points for data volumes in your container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "DependsOn": { + "description": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies on other containers in a task definition.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ContainerDependency" + }, + "markdownDescription": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies on other containers in a task definition.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Command": { + "description": "The command that's passed to the container.", + "insertionOrder": true, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The command that's passed to the container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Environment": { + "description": "The environment variables to pass to a container.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/KeyValuePair" + }, + "markdownDescription": "The environment variables to pass to a container.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A container definition for a daemon task. Daemon container definitions describe the containers that run as part of a daemon task on container instances managed by capacity providers.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key).", + "type": "string", + "markdownDescription": "The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", + "type": "string", + "markdownDescription": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ExecutionRoleArn": { + "description": "The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "TaskRoleArn": { + "description": "The short name or full Amazon Resource Name (ARN) of the IAM role that grants containers in the daemon task permission to call Amazon Web Services APIs on your behalf.", + "type": "string", + "markdownDescription": "The short name or full Amazon Resource Name (ARN) of the IAM role that grants containers in the daemon task permission to call Amazon Web Services APIs on your behalf.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "DaemonTaskDefinitionArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Volumes": { + "uniqueItems": true, + "description": "The list of data volume definitions for the daemon task.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + }, + "markdownDescription": "The list of data volume definitions for the daemon task.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "Memory": { + "description": "The amount of memory (in MiB) used by the daemon task.", + "type": "string", + "markdownDescription": "The amount of memory (in MiB) used by the daemon task.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ContainerDefinitions": { + "uniqueItems": true, + "description": "A list of container definitions in JSON format that describe the containers that make up the daemon task.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/DaemonContainerDefinition" + }, + "markdownDescription": "A list of container definitions in JSON format that describe the containers that make up the daemon task.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "Family": { + "description": "The name of a family that this daemon task definition is registered to.", + "type": "string", + "markdownDescription": "The name of a family that this daemon task definition is registered to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Cpu": { + "description": "The number of CPU units used by the daemon task.", + "type": "string", + "markdownDescription": "The number of CPU units used by the daemon task.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "attributes": { + "DaemonTaskDefinitionArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ecs-expressgatewayservice.json b/server/schema/resources/aws-ecs-expressgatewayservice.json new file mode 100644 index 00000000..fb1b98a2 --- /dev/null +++ b/server/schema/resources/aws-ecs-expressgatewayservice.json @@ -0,0 +1,610 @@ +{ + "tagging": { + "permissions": [ + "ecs:TagResource", + "ecs:UntagResource", + "ecs:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, + "typeName": "AWS::ECS::ExpressGatewayService", + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/ActiveConfigurations", + "/properties/Status", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Endpoint", + "/properties/ECSManagedResourceArns", + "/properties/ECSManagedResourceArns/ServiceSecurityGroups", + "/properties/ECSManagedResourceArns/AutoScaling", + "/properties/ECSManagedResourceArns/AutoScaling/ScalableTarget", + "/properties/ECSManagedResourceArns/AutoScaling/ApplicationAutoScalingPolicies", + "/properties/ECSManagedResourceArns/LogGroups", + "/properties/ECSManagedResourceArns/MetricAlarms", + "/properties/ECSManagedResourceArns/IngressPath", + "/properties/ECSManagedResourceArns/IngressPath/CertificateArn", + "/properties/ECSManagedResourceArns/IngressPath/LoadBalancerSecurityGroups", + "/properties/ECSManagedResourceArns/IngressPath/ListenerRuleArn", + "/properties/ECSManagedResourceArns/IngressPath/ListenerArn", + "/properties/ECSManagedResourceArns/IngressPath/LoadBalancerArn", + "/properties/ECSManagedResourceArns/IngressPath/TargetGroupArns" + ], + "description": "Resource Type definition for AWS::ECS::ExpressGatewayService", + "createOnlyProperties": [ + "/properties/ServiceName", + "/properties/Cluster", + "/properties/InfrastructureRoleArn", + "/properties/Tags" + ], + "primaryIdentifier": [ + "/properties/ServiceArn" + ], + "required": [ + "ExecutionRoleArn", + "InfrastructureRoleArn", + "PrimaryContainer" + ], + "propertyTransform": { + "/properties/Cluster": "Cluster $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:ecs:[a-z0-9-]+:[0-9]{12}:cluster/{1}\", Cluster])" + }, + "handlers": { + "read": { + "permissions": [ + "ecs:DescribeExpressGatewayService", + "ecs:DescribeServiceRevisions" + ] + }, + "create": { + "permissions": [ + "ecs:CreateExpressGatewayService", + "ecs:CreateCluster", + "ecs:DescribeExpressGatewayService", + "ecs:DescribeServiceDeployments", + "ecs:ListServiceDeployments", + "ecs:RegisterTaskDefinition", + "ecs:TagResource", + "iam:PassRole" + ], + "timeoutInMinutes": 180 + }, + "update": { + "permissions": [ + "ecs:UpdateExpressGatewayService", + "ecs:DescribeExpressGatewayService", + "ecs:DescribeServiceDeployments", + "ecs:ListServiceDeployments", + "ecs:RegisterTaskDefinition", + "iam:PassRole" + ], + "timeoutInMinutes": 180 + }, + "delete": { + "permissions": [ + "ecs:DeleteExpressGatewayService", + "ecs:DescribeExpressGatewayService", + "ecs:DescribeServices" + ], + "timeoutInMinutes": 30 + } + }, + "writeOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/TaskRoleArn", + "/properties/HealthCheckPath", + "/properties/PrimaryContainer", + "/properties/NetworkConfiguration", + "/properties/Cpu", + "/properties/Memory", + "/properties/ScalingTarget" + ], + "additionalProperties": false, + "definitions": { + "IngressPathSummary": { + "additionalProperties": false, + "type": "object", + "properties": { + "Endpoint": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AccessType": { + "$ref": "#/definitions/AccessType" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayRepositoryCredentials": { + "additionalProperties": false, + "type": "object", + "properties": { + "CredentialsParameter": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CredentialsParameter" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayScalingTarget": { + "additionalProperties": false, + "type": "object", + "properties": { + "MinTaskCount": { + "default": 1, + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxTaskCount": { + "default": 1, + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AutoScalingMetric": { + "$ref": "#/definitions/ExpressGatewayServiceScalingMetric" + }, + "AutoScalingTargetValue": { + "default": 60, + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KeyValuePair": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayContainer": { + "additionalProperties": false, + "type": "object", + "properties": { + "RepositoryCredentials": { + "$ref": "#/definitions/ExpressGatewayRepositoryCredentials" + }, + "Secrets": { + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Command": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AwsLogsConfiguration": { + "$ref": "#/definitions/ExpressGatewayServiceAwsLogsConfiguration" + }, + "ContainerPort": { + "default": 80, + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Environment": { + "type": "array", + "items": { + "$ref": "#/definitions/KeyValuePair" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Image": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Image" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayServiceAwsLogsConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "LogStreamPrefix": { + "default": "ecs", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "LogGroup": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LogGroup", + "LogStreamPrefix" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ECSManagedResourceArns": { + "additionalProperties": false, + "type": "object", + "properties": { + "LogGroups": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ServiceSecurityGroups": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MetricAlarms": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IngressPath": { + "$ref": "#/definitions/IngressPathArns" + }, + "AutoScaling": { + "$ref": "#/definitions/AutoScalingArns" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AutoScalingArns": { + "additionalProperties": false, + "type": "object", + "properties": { + "ScalableTarget": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ApplicationAutoScalingPolicies": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Secret": { + "additionalProperties": false, + "type": "object", + "properties": { + "ValueFrom": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayServiceScalingMetric": { + "default": "AVERAGE_CPU", + "type": "string", + "enum": [ + "AVERAGE_CPU", + "AVERAGE_MEMORY", + "REQUEST_COUNT_PER_TARGET" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: AVERAGE_CPU | AVERAGE_MEMORY | REQUEST_COUNT_PER_TARGET \nUpdate requires: No interruption\n" + }, + "ExpressGatewayServiceConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "ServiceRevisionArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ExecutionRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TaskRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ScalingTarget": { + "$ref": "#/definitions/ExpressGatewayScalingTarget" + }, + "IngressPaths": { + "type": "array", + "items": { + "$ref": "#/definitions/IngressPathSummary" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ExpressGatewayContainer" + }, + "Memory": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "HealthCheckPath": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "format": "date-time", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Cpu": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/ExpressGatewayServiceNetworkConfiguration" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayServiceStatusCode": { + "type": "string", + "enum": [ + "ACTIVE", + "DRAINING", + "INACTIVE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | DRAINING | INACTIVE \nUpdate requires: No interruption\n" + }, + "IngressPathArns": { + "additionalProperties": false, + "type": "object", + "properties": { + "ListenerArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LoadBalancerArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TargetGroupArns": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ListenerRuleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LoadBalancerSecurityGroups": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CertificateArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpressGatewayServiceNetworkConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "SecurityGroups": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AccessType": { + "type": "string", + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | PRIVATE \nUpdate requires: No interruption\n" + }, + "ExpressGatewayServiceStatus": { + "additionalProperties": false, + "type": "object", + "properties": { + "StatusCode": { + "$ref": "#/definitions/ExpressGatewayServiceStatusCode" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Status": { + "$ref": "#/definitions/ExpressGatewayServiceStatus" + }, + "TaskRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ExpressGatewayContainer" + }, + "Memory": { + "default": "512", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "HealthCheckPath": { + "default": "HTTP:80/ping", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "format": "date-time", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Cluster": { + "default": "default", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Cpu": { + "default": "256", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ServiceArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ECSManagedResourceArns": { + "$ref": "#/definitions/ECSManagedResourceArns" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ExecutionRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "InfrastructureRoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "ScalingTarget": { + "$ref": "#/definitions/ExpressGatewayScalingTarget" + }, + "ActiveConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressGatewayServiceConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Endpoint": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ServiceName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/ExpressGatewayServiceNetworkConfiguration" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + } + }, + "attributes": { + "Status": { + "$ref": "#/definitions/ExpressGatewayServiceStatus" + }, + "CreatedAt": { + "format": "date-time", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ServiceArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ECSManagedResourceArns": { + "$ref": "#/definitions/ECSManagedResourceArns" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ActiveConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressGatewayServiceConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Endpoint": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ecs-service.json b/server/schema/resources/aws-ecs-service.json index a4ab79fb..7c121670 100644 --- a/server/schema/resources/aws-ecs-service.json +++ b/server/schema/resources/aws-ecs-service.json @@ -11,6 +11,25 @@ "tagProperty": "/properties/Tags", "cloudFormationSystemTags": false }, + "typeName": "AWS::ECS::Service", + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "description": "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. \n On June 12, 2025, Amazon ECS launched support for updating capacity provider configuration for ECS services. With this launch, ECS also aligned the CFN update behavior for ``CapacityProviderStrategy`` parameter with the standard practice. For more information, see [adds support for updating capacity provider configuration for ECS services](https://docs.aws.amazon.com/about-aws/whats-new/2025/05/amazon-ecs-capacity-provider-configuration-ecs/). Previously ECS ignored the ``CapacityProviderStrategy`` property if it was set to an empty list for example, ``[]`` in CFN, because updating capacity provider configuration was not supported. Now, with support for capacity provider updates, customers can remove capacity providers from a service by passing an empty list. When you specify an empty list (``[]``) for the ``CapacityProviderStrategy`` property in your CFN template, ECS will remove any capacity providers associated with the service, as follows:\n + For services created with a capacity provider strategy after the launch:\n + If there's a cluster default strategy set, the service will revert to using that default strategy.\n + If no cluster default strategy exists, you will receive the following error:\n No launch type to fall back to for empty capacity provider strategy. Your service was not created with a launch type.\n \n + For services created with a capacity provider strategy prior to the launch:\n + If ``CapacityProviderStrategy`` had ``FARGATE_SPOT`` or ``FARGATE`` capacity providers, the launch type will be updated to ``FARGATE`` and the capacity provider will be removed.\n + If the strategy included Auto Scaling group capacity providers, the service will revert to EC2 launch type, and the Auto Scaling group capacity providers will not be used.\n \n \n Recommended Actions\n If you are currently using ``CapacityProviderStrategy: []`` in your CFN templates, you should take one of the following actions:\n + If you do not intend to update the Capacity Provider Strategy:\n + Remove the ``CapacityProviderStrategy`` property entirely from your CFN template\n + Alternatively, use ``!Ref ::NoValue`` for the ``CapacityProviderStrategy`` property in your template\n \n + If you intend to maintain or update the Capacity Provider Strategy, specify the actual Capacity Provider Strategy for the service in your CFN template.\n \n If your CFN template had an empty list ([]) for ``CapacityProviderStrategy`` prior to the aforementioned launch on June 12, and you are using the same template with ``CapacityProviderStrategy: []``, you might encounter the following error:\n Invalid request provided: When switching from launch type to capacity provider strategy on an existing service, or making a change to a capacity provider strategy on a service that is already using one, you must force a new deployment. (Service: Ecs, Status Code: 400, Request ID: xxx) (SDK Attempt Count: 1)\" (RequestToken: xxx HandlerErrorCode: InvalidRequest) \n Note that CFN automatically initiates a new deployment when it detects a parameter change, but customers cannot choose to force a deployment through CFN. This is an invalid input scenario that requires one of the remediation actions listed above.\n If you are experiencing active production issues related to this change, contact AWS Support or your Technical Account Manager.", + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "conditionalCreateOnlyProperties": [ + "/properties/LaunchType" + ], "propertyTransform": { "/properties/TaskDefinition": "TaskDefinition $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:ecs:[a-z0-9-]+:[0-9]{12}:task-definition/\", $contains(TaskDefinition,\":\")?TaskDefinition:$join([TaskDefinition, \":[0-9]+\"])])", "/properties/Role": "Role $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:iam::[0-9]{12}[:]role/{1}\", Role])" @@ -60,29 +79,12 @@ "timeoutInMinutes": 30 } }, - "typeName": "AWS::ECS::Service", - "readOnlyProperties": [ - "/properties/ServiceArn", - "/properties/Name" - ], - "description": "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. \n On June 12, 2025, Amazon ECS launched support for updating capacity provider configuration for ECS services. With this launch, ECS also aligned the CFN update behavior for ``CapacityProviderStrategy`` parameter with the standard practice. For more information, see [adds support for updating capacity provider configuration for ECS services](https://docs.aws.amazon.com/about-aws/whats-new/2025/05/amazon-ecs-capacity-provider-configuration-ecs/). Previously ECS ignored the ``CapacityProviderStrategy`` property if it was set to an empty list for example, ``[]`` in CFN, because updating capacity provider configuration was not supported. Now, with support for capacity provider updates, customers can remove capacity providers from a service by passing an empty list. When you specify an empty list (``[]``) for the ``CapacityProviderStrategy`` property in your CFN template, ECS will remove any capacity providers associated with the service, as follows:\n + For services created with a capacity provider strategy after the launch:\n + If there's a cluster default strategy set, the service will revert to using that default strategy.\n + If no cluster default strategy exists, you will receive the following error:\n No launch type to fall back to for empty capacity provider strategy. Your service was not created with a launch type.\n \n + For services created with a capacity provider strategy prior to the launch:\n + If ``CapacityProviderStrategy`` had ``FARGATE_SPOT`` or ``FARGATE`` capacity providers, the launch type will be updated to ``FARGATE`` and the capacity provider will be removed.\n + If the strategy included Auto Scaling group capacity providers, the service will revert to EC2 launch type, and the Auto Scaling group capacity providers will not be used.\n \n \n Recommended Actions\n If you are currently using ``CapacityProviderStrategy: []`` in your CFN templates, you should take one of the following actions:\n + If you do not intend to update the Capacity Provider Strategy:\n + Remove the ``CapacityProviderStrategy`` property entirely from your CFN template\n + Alternatively, use ``!Ref ::NoValue`` for the ``CapacityProviderStrategy`` property in your template\n \n + If you intend to maintain or update the Capacity Provider Strategy, specify the actual Capacity Provider Strategy for the service in your CFN template.\n \n If your CFN template had an empty list ([]) for ``CapacityProviderStrategy`` prior to the aforementioned launch on June 12, and you are using the same template with ``CapacityProviderStrategy: []``, you might encounter the following error:\n Invalid request provided: When switching from launch type to capacity provider strategy on an existing service, or making a change to a capacity provider strategy on a service that is already using one, you must force a new deployment. (Service: Ecs, Status Code: 400, Request ID: xxx) (SDK Attempt Count: 1)\" (RequestToken: xxx HandlerErrorCode: InvalidRequest) \n Note that CFN automatically initiates a new deployment when it detects a parameter change, but customers cannot choose to force a deployment through CFN. This is an invalid input scenario that requires one of the remediation actions listed above.\n If you are experiencing active production issues related to this change, contact AWS Support or your Technical Account Manager.", "writeOnlyProperties": [ "/properties/ServiceConnectConfiguration", "/properties/VolumeConfigurations", "/properties/ForceNewDeployment" ], - "createOnlyProperties": [ - "/properties/Cluster", - "/properties/LaunchType", - "/properties/Role", - "/properties/SchedulingStrategy", - "/properties/ServiceName" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/ServiceArn", - "/properties/Cluster" - ], "definitions": { "TimeoutConfiguration": { "description": "An object that represents the timeout configurations for Service Connect.\n If ``idleTimeout`` is set to a time that is less than ``perRequestTimeout``, the connection will close when the ``idleTimeout`` is reached and not the ``perRequestTimeout``.", @@ -131,9 +133,9 @@ "markdownDescription": "The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "RoleArn": { - "description": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", + "description": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", "type": "string", - "markdownDescription": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS infrastructure IAM role that is used to manage your VPC Lattice infrastructure.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -347,13 +349,13 @@ ], "properties": { "PropagateTags": { - "description": "Determines whether to propagate the tags from the task definition to \u2028the Amazon EBS volume. Tags can only propagate to a ``SERVICE`` specified in \u2028``ServiceVolumeConfiguration``. If no value is specified, the tags aren't \u2028propagated.", + "description": "Determines whether to propagate the tags from the task definition to the Amazon EBS volume. Tags can only propagate to a ``SERVICE`` specified in ``ServiceVolumeConfiguration``. If no value is specified, the tags aren't propagated.", "type": "string", "enum": [ "SERVICE", "TASK_DEFINITION" ], - "markdownDescription": "Determines whether to propagate the tags from the task definition to \u2028the Amazon EBS volume. Tags can only propagate to a ``SERVICE`` specified in \u2028``ServiceVolumeConfiguration``. If no value is specified, the tags aren't \u2028propagated.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SERVICE | TASK_DEFINITION \nUpdate requires: No interruption\n" + "markdownDescription": "Determines whether to propagate the tags from the task definition to the Amazon EBS volume. Tags can only propagate to a ``SERVICE`` specified in ``ServiceVolumeConfiguration``. If no value is specified, the tags aren't propagated.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SERVICE | TASK_DEFINITION \nUpdate requires: No interruption\n" }, "ResourceType": { "description": "The type of volume resource.", @@ -402,29 +404,75 @@ ], "markdownDescription": "The advanced settings for a load balancer used in blue/green deployments. Specify the alternate target group, listener rules, and IAM role required for traffic shifting during blue/green deployments. For more information, see [Required resources for Amazon ECS blue/green deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "LinearConfiguration": { + "description": "Configuration for a linear deployment strategy that shifts production traffic in equal percentage increments with configurable wait times between each step until 100 percent of traffic is shifted to the new service revision. \n The following validation applies only to Linear deployments created through CFN. CFN operations time out after 36 hours. Linear deployments can approach this limit because of their extended duration. This can cause CFN to roll back the deployment. To prevent timeout-related rollbacks, CFN rejects deployments when the calculated deployment time exceeds 33 hours based on your template configuration: \n ``BakeTimeInMinutes + (StepBakeTimeInMinutes \u00d7 Number of deployment steps)`` \n Where the number of deployment steps is calculated as follows:\n + *If StepPercent evenly divides by 100*: The number of deployment steps equals ``(100 \u00f7 StepPercent) - 1``\n + *Otherwise*: The number of deployment steps equals the floor of ``100 \u00f7 StepPercent``. For example, if ``StepPercent`` is 11, the number of deployment steps is 9 (not 9.1).\n \n This calculation reflects that CFN doesn't apply the step bake time after the final traffic shift reaches 100%. For example, with a ``StepPercent`` of 50%, there are actually two traffic shifts, but only one deployment step is counted for validation purposes because the bake time is applied only after the first 50% shift, not after reaching 100%.\n Additional backend processes (such as task scaling and running lifecycle hooks) can extend deployment time beyond these calculations. Even deployments under the 33-hour threshold might still time out if these processes cause the total duration to exceed 36 hours.", + "additionalProperties": false, + "type": "object", + "properties": { + "StepBakeTimeInMinutes": { + "maximum": 1440, + "description": "The amount of time in minutes to wait between each traffic shifting step during a linear deployment. Valid values are 0 to 1440 minutes (24 hours). The default value is 6. This bake time is not applied after reaching 100 percent traffic.", + "type": "integer", + "minimum": 0, + "markdownDescription": "The amount of time in minutes to wait between each traffic shifting step during a linear deployment. Valid values are 0 to 1440 minutes (24 hours). The default value is 6. This bake time is not applied after reaching 100 percent traffic.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "StepPercent": { + "multipleOf": 0.1, + "maximum": 100, + "description": "The percentage of production traffic to shift in each step during a linear deployment. Valid values are multiples of 0.1 from 3.0 to 100.0. The default value is 10.0.", + "type": "number", + "minimum": 3, + "markdownDescription": "The percentage of production traffic to shift in each step during a linear deployment. Valid values are multiples of 0.1 from 3.0 to 100.0. The default value is 10.0.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Configuration for a linear deployment strategy that shifts production traffic in equal percentage increments with configurable wait times between each step until 100 percent of traffic is shifted to the new service revision. \n The following validation applies only to Linear deployments created through CFN. CFN operations time out after 36 hours. Linear deployments can approach this limit because of their extended duration. This can cause CFN to roll back the deployment. To prevent timeout-related rollbacks, CFN rejects deployments when the calculated deployment time exceeds 33 hours based on your template configuration: \n ``BakeTimeInMinutes + (StepBakeTimeInMinutes \u00d7 Number of deployment steps)`` \n Where the number of deployment steps is calculated as follows:\n + *If StepPercent evenly divides by 100*: The number of deployment steps equals ``(100 \u00f7 StepPercent) - 1``\n + *Otherwise*: The number of deployment steps equals the floor of ``100 \u00f7 StepPercent``. For example, if ``StepPercent`` is 11, the number of deployment steps is 9 (not 9.1).\n \n This calculation reflects that CFN doesn't apply the step bake time after the final traffic shift reaches 100%. For example, with a ``StepPercent`` of 50%, there are actually two traffic shifts, but only one deployment step is counted for validation purposes because the bake time is applied only after the first 50% shift, not after reaching 100%.\n Additional backend processes (such as task scaling and running lifecycle hooks) can extend deployment time beyond these calculations. Even deployments under the 33-hour threshold might still time out if these processes cause the total duration to exceed 36 hours.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CapacityProviderStrategyItem": { "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", "additionalProperties": false, "type": "object", "properties": { "CapacityProvider": { - "description": "The short name of the capacity provider.", + "description": "The short name of the capacity provider. This can be either an AWS managed capacity provider (``FARGATE`` or ``FARGATE_SPOT``) or the name of a custom capacity provider that you created.", "type": "string", - "markdownDescription": "The short name of the capacity provider.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The short name of the capacity provider. This can be either an AWS managed capacity provider (``FARGATE`` or ``FARGATE_SPOT``) or the name of a custom capacity provider that you created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Base": { - "description": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + Default value is ``0`` if not specified\n + Valid range: 0 to 100,000\n + Base requirements are satisfied first before weight distribution", + "description": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + The default value is ``0`` if not specified\n + The valid range is 0 to 100,000\n + Base requirements are satisfied first before weight distribution", "type": "integer", - "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + Default value is ``0`` if not specified\n + Valid range: 0 to 100,000\n + Base requirements are satisfied first before weight distribution\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.\n Base value characteristics:\n + Only one capacity provider in a strategy can have a base defined\n + The default value is ``0`` if not specified\n + The valid range is 0 to 100,000\n + Base requirements are satisfied first before weight distribution\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Weight": { - "description": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + Default value is ``0`` if not specified\n + Valid range: 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.", + "description": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + The default value is ``0`` if not specified\n + The valid range is 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.", "type": "integer", - "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + Default value is ``0`` if not specified\n + Valid range: 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.\n If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.\n Weight value characteristics:\n + Weight is considered after the base value is satisfied\n + The default value is ``0`` if not specified\n + The valid range is 0 to 1,000\n + At least one capacity provider must have a weight greater than zero\n + Capacity providers with weight of ``0`` cannot place tasks\n \n Task distribution logic:\n 1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider\n 1. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios\n \n Examples:\n Equal Distribution: Two capacity providers both with weight ``1`` will split tasks evenly after base requirements are met.\n Weighted Distribution: If capacityProviderA has weight ``1`` and capacityProviderB has weight ``4``, then for every 1 task on A, 4 tasks will run on B.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CanaryConfiguration": { + "description": "Configuration for a canary deployment strategy that shifts a fixed percentage of traffic to the new service revision, waits for a specified bake time, then shifts the remaining traffic. \n The following validation applies only to Canary deployments created through CFN. CFN operations time out after 36 hours. Canary deployments can approach this limit because of their extended duration. This can cause CFN to roll back the deployment. To prevent timeout-related rollbacks, CFN rejects deployments when the calculated deployment time exceeds 33 hours based on your template configuration: \n ``BakeTimeInMinutes + CanaryBakeTimeInMinutes`` \n Additional backend processes (such as task scaling and running lifecycle hooks) can extend deployment time beyond these calculations. Even deployments under the 33-hour threshold might still time out if these processes cause the total duration to exceed 36 hours.", + "additionalProperties": false, + "type": "object", + "properties": { + "CanaryPercent": { + "multipleOf": 0.1, + "maximum": 100, + "description": "The percentage of production traffic to shift to the new service revision during the canary phase. Valid values are multiples of 0.1 from 0.1 to 100.0. The default value is 5.0.", + "type": "number", + "minimum": 0.1, + "markdownDescription": "The percentage of production traffic to shift to the new service revision during the canary phase. Valid values are multiples of 0.1 from 0.1 to 100.0. The default value is 5.0.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "CanaryBakeTimeInMinutes": { + "maximum": 1440, + "description": "The amount of time in minutes to wait during the canary phase before shifting the remaining production traffic to the new service revision. Valid values are 0 to 1440 minutes (24 hours). The default value is 10.", + "type": "integer", + "minimum": 0, + "markdownDescription": "The amount of time in minutes to wait during the canary phase before shifting the remaining production traffic to the new service revision. Valid values are 0 to 1440 minutes (24 hours). The default value is 10.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Configuration for a canary deployment strategy that shifts a fixed percentage of traffic to the new service revision, waits for a specified bake time, then shifts the remaining traffic. \n The following validation applies only to Canary deployments created through CFN. CFN operations time out after 36 hours. Canary deployments can approach this limit because of their extended duration. This can cause CFN to roll back the deployment. To prevent timeout-related rollbacks, CFN rejects deployments when the calculated deployment time exceeds 33 hours based on your template configuration: \n ``BakeTimeInMinutes + CanaryBakeTimeInMinutes`` \n Additional backend processes (such as task scaling and running lifecycle hooks) can extend deployment time beyond these calculations. Even deployments under the 33-hour threshold might still time out if these processes cause the total duration to exceed 36 hours.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ForceNewDeployment": { "description": "Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (``my_image:latest``) or to roll Fargate tasks onto a newer platform version.", "additionalProperties": false, @@ -481,6 +529,35 @@ ], "markdownDescription": "One of the methods which provide a way for you to quickly identify when a deployment has failed, and then to optionally roll back the failure to the last working deployment.\n When the alarms are generated, Amazon ECS sets the service deployment to failed. Set the rollback parameter to have Amazon ECS to roll back your service to the last completed deployment after a failure.\n You can only use the ``DeploymentAlarms`` method to detect failures when the ``DeploymentController`` is set to ``ECS``.\n For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ServiceConnectAccessLogConfiguration": { + "description": "Configuration for Service Connect access logging. Access logs provide detailed information about requests made to your service, including request patterns, response codes, and timing data for debugging and monitoring purposes.\n To enable access logs, you must also specify a ``logConfiguration`` in the ``serviceConnectConfiguration``.", + "additionalProperties": false, + "type": "object", + "properties": { + "Format": { + "description": "The format for Service Connect access log output. Choose TEXT for human-readable logs or JSON for structured data that integrates well with log analysis tools.", + "type": "string", + "enum": [ + "TEXT", + "JSON" + ], + "markdownDescription": "The format for Service Connect access log output. Choose TEXT for human-readable logs or JSON for structured data that integrates well with log analysis tools.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: TEXT | JSON \nUpdate requires: No interruption\n" + }, + "IncludeQueryParameters": { + "description": "Specifies whether to include query parameters in Service Connect access logs.\n When enabled, query parameters from HTTP requests are included in the access logs. Consider security and privacy implications when enabling this feature, as query parameters may contain sensitive information such as request IDs and tokens. By default, this parameter is ``DISABLED``.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ], + "markdownDescription": "Specifies whether to include query parameters in Service Connect access logs.\n When enabled, query parameters from HTTP requests are included in the access logs. Consider security and privacy implications when enabling this feature, as query parameters may contain sensitive information such as request IDs and tokens. By default, this parameter is ``DISABLED``.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Format" + ], + "markdownDescription": "Configuration for Service Connect access logging. Access logs provide detailed information about requests made to your service, including request patterns, response codes, and timing data for debugging and monitoring purposes.\n To enable access logs, you must also specify a ``logConfiguration`` in the ``serviceConnectConfiguration``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "LoadBalancer": { "description": "The ``LoadBalancer`` property specifies details on a load balancer that is used with a service.\n If the service is using the ``CODE_DEPLOY`` deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When you are creating an ACDlong deployment group, you specify two target groups (referred to as a ``targetGroupPair``). Each target group binds to a separate task set in the deployment. The load balancer can also have up to two listeners, a required listener for production traffic and an optional listener that allows you to test new revisions of the service before routing production traffic to it.\n Services with tasks that use the ``awsvpc`` network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers are not supported. Also, when you create any target groups for these services, you must choose ``ip`` as the target type, not ``instance``. Tasks that use the ``awsvpc`` network mode are associated with an elastic network interface, not an Amazon EC2 instance.", "additionalProperties": false, @@ -527,6 +604,11 @@ }, "markdownDescription": "The list of Service Connect service objects. These are names and aliases (also known as endpoints) that are used by other Amazon ECS services to connect to this service. \n This field is not required for a \"client\" Amazon ECS service that's a member of a namespace only to connect to other services within the namespace. An example of this would be a frontend application that accepts incoming requests from either a load balancer that's attached to the service or by other means.\n An object selects a port from the task definition, assigns a name for the CMAPlong service, and a list of aliases (endpoints) and ports for client applications to refer to this service.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "AccessLogConfiguration": { + "description": "The configuration for Service Connect access logging. Access logs capture detailed information about requests made to your service, including request patterns, response codes, and timing data. They can be useful for debugging connectivity issues, monitoring service performance, and auditing service-to-service communication for security and compliance purposes.\n To enable access logs, you must also specify a ``logConfiguration`` in the ``serviceConnectConfiguration``.", + "$ref": "#/definitions/ServiceConnectAccessLogConfiguration", + "markdownDescription": "The configuration for Service Connect access logging. Access logs capture detailed information about requests made to your service, including request patterns, response codes, and timing data. They can be useful for debugging connectivity issues, monitoring service performance, and auditing service-to-service communication for security and compliance purposes.\n To enable access logs, you must also specify a ``logConfiguration`` in the ``serviceConnectConfiguration``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Enabled": { "description": "Specifies whether to use Service Connect with this service.", "type": "boolean", @@ -758,9 +840,9 @@ "markdownDescription": "The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps 1:1 with the ``TagSpecifications.N`` parameter of the [CreateVolume API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) in the *Amazon EC2 API Reference*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "FilesystemType": { - "description": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the tasks will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", + "description": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the tasks will fail to start.\n The available Linux filesystem types are ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", "type": "string", - "markdownDescription": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the tasks will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the tasks will fail to start.\n The available Linux filesystem types are ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Encrypted": { "description": "Indicates whether the volume should be encrypted. If you turn on Region-level Amazon EBS encryption by default but set this value as ``false``, the setting is overridden and the volume is encrypted with the KMS key specified for Amazon EBS encryption by default. This parameter maps 1:1 with the ``Encrypted`` parameter of the [CreateVolume API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) in the *Amazon EC2 API Reference*.", @@ -846,12 +928,17 @@ "additionalProperties": false, "type": "object", "properties": { + "CanaryConfiguration": { + "description": "Configuration for canary deployment strategy. Only valid when the deployment strategy is ``CANARY``. This configuration enables shifting a fixed percentage of traffic for testing, followed by shifting the remaining traffic after a bake period.", + "$ref": "#/definitions/CanaryConfiguration", + "markdownDescription": "Configuration for canary deployment strategy. Only valid when the deployment strategy is ``CANARY``. This configuration enables shifting a fixed percentage of traffic for testing, followed by shifting the remaining traffic after a bake period.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "BakeTimeInMinutes": { "maximum": 1440, - "description": "The duration when both blue and green service revisions are running simultaneously after the production traffic has shifted.\n The following rules apply when you don't specify a value:\n + For rolling deployments, the value is set to 3 hours (180 minutes).\n + When you use an external deployment controller (``EXTERNAL``), or the ACD blue/green deployment controller (``CODE_DEPLOY``), the value is set to 3 hours (180 minutes).\n + For all other cases, the value is set to 36 hours (2160 minutes).", + "description": "The duration waiting before terminating the previous service revision and marking a deployment complete.\n The following rules apply when you don't specify a value:\n + For blue/green, linear, and canary deployments, the value is set to 15 minutes.\n + For rolling deployments, there is no bake time set by default.\n + The external deployment controller (``EXTERNAL``) and the ACD blue/green deployment controller (``CODE_DEPLOY``) do not support the ``BakeTimeInMinutes`` parameter.\n \n If you provide a bake time for a rolling deployment, the CloudFormation handler timeout is increased to the maximum of 36 hours, matching the timeout for blue/green, linear, and canary deployments.", "type": "integer", "minimum": 0, - "markdownDescription": "The duration when both blue and green service revisions are running simultaneously after the production traffic has shifted.\n The following rules apply when you don't specify a value:\n + For rolling deployments, the value is set to 3 hours (180 minutes).\n + When you use an external deployment controller (``EXTERNAL``), or the ACD blue/green deployment controller (``CODE_DEPLOY``), the value is set to 3 hours (180 minutes).\n + For all other cases, the value is set to 36 hours (2160 minutes).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The duration waiting before terminating the previous service revision and marking a deployment complete.\n The following rules apply when you don't specify a value:\n + For blue/green, linear, and canary deployments, the value is set to 15 minutes.\n + For rolling deployments, there is no bake time set by default.\n + The external deployment controller (``EXTERNAL``) and the ACD blue/green deployment controller (``CODE_DEPLOY``) do not support the ``BakeTimeInMinutes`` parameter.\n \n If you provide a bake time for a rolling deployment, the CloudFormation handler timeout is increased to the maximum of 36 hours, matching the timeout for blue/green, linear, and canary deployments.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "LifecycleHooks": { "description": "An array of deployment lifecycle hook objects to run custom logic at specific stages of the deployment lifecycle.", @@ -867,13 +954,15 @@ "markdownDescription": "Information about the CloudWatch alarms.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Strategy": { - "description": "The deployment strategy for the service. Choose from these valid values:\n + ``ROLLING`` - When you create a service which uses the rolling update (``ROLLING``) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.\n + ``BLUE_GREEN`` - A blue/green deployment strategy (``BLUE_GREEN``) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.", + "description": "The deployment strategy for the service. Choose from these valid values:\n + ``ROLLING`` - When you create a service which uses the rolling update (``ROLLING``) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.\n + ``BLUE_GREEN`` - A blue/green deployment strategy (``BLUE_GREEN``) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.\n + ``LINEAR`` - A *linear* deployment strategy (``LINEAR``) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic.\n + ``CANARY`` - A *canary* deployment strategy (``CANARY``) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.", "type": "string", "enum": [ "ROLLING", - "BLUE_GREEN" + "BLUE_GREEN", + "LINEAR", + "CANARY" ], - "markdownDescription": "The deployment strategy for the service. Choose from these valid values:\n + ``ROLLING`` - When you create a service which uses the rolling update (``ROLLING``) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.\n + ``BLUE_GREEN`` - A blue/green deployment strategy (``BLUE_GREEN``) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ROLLING | BLUE_GREEN \nUpdate requires: No interruption\n" + "markdownDescription": "The deployment strategy for the service. Choose from these valid values:\n + ``ROLLING`` - When you create a service which uses the rolling update (``ROLLING``) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.\n + ``BLUE_GREEN`` - A blue/green deployment strategy (``BLUE_GREEN``) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.\n + ``LINEAR`` - A *linear* deployment strategy (``LINEAR``) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic.\n + ``CANARY`` - A *canary* deployment strategy (``CANARY``) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ROLLING | BLUE_GREEN | LINEAR | CANARY \nUpdate requires: No interruption\n" }, "DeploymentCircuitBreaker": { "description": "The deployment circuit breaker can only be used for services using the rolling update (``ECS``) deployment type.\n The *deployment circuit breaker* determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide*", @@ -889,6 +978,11 @@ "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one \u2014 using the ``minimumHealthyPercent`` as a constraint \u2014 to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", "type": "integer", "markdownDescription": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one \u2014 using the ``minimumHealthyPercent`` as a constraint \u2014 to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "LinearConfiguration": { + "description": "Configuration for linear deployment strategy. Only valid when the deployment strategy is ``LINEAR``. This configuration enables progressive traffic shifting in equal percentage increments with configurable bake times between each step.", + "$ref": "#/definitions/LinearConfiguration", + "markdownDescription": "Configuration for linear deployment strategy. Only valid when the deployment strategy is ``LINEAR``. This configuration enables progressive traffic shifting in equal percentage increments with configurable bake times between each step.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -992,14 +1086,14 @@ "markdownDescription": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "LaunchType": { - "description": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you want to use Managed Instances, you must use the ``capacityProviderStrategy`` request parameter", "type": "string", "enum": [ "EC2", "FARGATE", "EXTERNAL" ], - "markdownDescription": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: String \nAllowed Values: EC2 | FARGATE | EXTERNAL \nUpdate requires: Replacement\n" + "markdownDescription": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you want to use Managed Instances, you must use the ``capacityProviderStrategy`` request parameter\n\n---\n\nRequired: No \nType: String \nAllowed Values: EC2 | FARGATE | EXTERNAL \nUpdate requires: Some interruptions\n" }, "Name": { "description": "", @@ -1044,9 +1138,9 @@ "markdownDescription": "Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (``my_image:latest``) or to roll Fargate tasks onto a newer platform version.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "HealthCheckGracePeriodSeconds": { - "description": "The period of time, in seconds, that the Amazon Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.", + "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.", "type": "integer", - "markdownDescription": "The period of time, in seconds, that the Amazon Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "EnableECSManagedTags": { "description": "Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see [Tagging your Amazon ECS resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*.\n When you use Amazon ECS managed tags, you must set the ``propagateTags`` request parameter.", diff --git a/server/schema/resources/aws-ecs-taskdefinition.json b/server/schema/resources/aws-ecs-taskdefinition.json index fe5923fe..aa6db1f7 100644 --- a/server/schema/resources/aws-ecs-taskdefinition.json +++ b/server/schema/resources/aws-ecs-taskdefinition.json @@ -106,6 +106,33 @@ }, "markdownDescription": "Details on a data volume from another container in the same task definition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "S3FilesVolumeConfiguration": { + "description": "", + "additionalProperties": false, + "type": "object", + "required": [ + "FileSystemArn" + ], + "properties": { + "FileSystemArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AccessPointArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RootDirectory": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TransitEncryptionPort": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ContainerDependency": { "description": "The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later.", "additionalProperties": false, @@ -234,9 +261,9 @@ "markdownDescription": "Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in the docker container create command and the ``--volumes-from`` option to docker run.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Cpu": { - "description": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the docker container create commandand the ``--cpu-shares`` option to docker run.\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. The minimum valid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is 262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144 in your container definitions. For CPU values below 2 (including null) or above 262144, the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n + *Agent versions greater than or equal to 1.84.0:* CPU values greater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU shares.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU.", + "description": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the docker container create command and the ``--cpu-shares`` option to docker run.\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. The minimum valid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is 262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144 in your container definitions. For CPU values below 2 (including null) or above 262144, the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n + *Agent versions greater than or equal to 1.84.0:* CPU values greater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU shares.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU.", "type": "integer", - "markdownDescription": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the docker container create commandand the ``--cpu-shares`` option to docker run.\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. The minimum valid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is 262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144 in your container definitions. For CPU values below 2 (including null) or above 262144, the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n + *Agent versions greater than or equal to 1.84.0:* CPU values greater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU shares.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the docker container create command and the ``--cpu-shares`` option to docker run.\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. The minimum valid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is 262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144 in your container definitions. For CPU values below 2 (including null) or above 262144, the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n + *Agent versions greater than or equal to 1.84.0:* CPU values greater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU shares.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "EntryPoint": { "description": "Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead.\n The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the docker container create command and the ``--entrypoint`` option to docker run.", @@ -636,9 +663,9 @@ "markdownDescription": "The operating system.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "CpuArchitecture": { - "description": "The CPU architecture.\n You can run your Linux tasks on an ARM-based platform by setting the value to ``ARM64``. This option is available for tasks that run on Linux Amazon EC2 instance or Linux containers on Fargate.", + "description": "The CPU architecture.\n You can run your Linux tasks on an ARM-based platform by setting the value to ``ARM64``. This option is available for tasks that run on Linux Amazon EC2 instance, Amazon ECS Managed Instances, or Linux containers on Fargate.", "type": "string", - "markdownDescription": "The CPU architecture.\n You can run your Linux tasks on an ARM-based platform by setting the value to ``ARM64``. This option is available for tasks that run on Linux Amazon EC2 instance or Linux containers on Fargate.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The CPU architecture.\n You can run your Linux tasks on an ARM-based platform by setting the value to ``ARM64``. This option is available for tasks that run on Linux Amazon EC2 instance, Amazon ECS Managed Instances, or Linux containers on Fargate.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "Information about the platform for the Amazon ECS service or task.\n For more information about ``RuntimePlatform``, see [RuntimePlatform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -1116,6 +1143,11 @@ "$ref": "#/definitions/EFSVolumeConfiguration", "markdownDescription": "This parameter is specified when you use an Amazon Elastic File System file system for task storage.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "S3FilesVolumeConfiguration": { + "description": "", + "$ref": "#/definitions/S3FilesVolumeConfiguration", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Host": { "description": "This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.\n Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\\my\\path:C:\\my\\path`` and ``D:\\:D:\\``, but not ``D:\\my\\path:C:\\my\\path`` or ``D:\\:C:\\my\\path``.", "$ref": "#/definitions/HostVolumeProperties", @@ -1302,14 +1334,14 @@ }, "RequiresCompatibilities": { "uniqueItems": true, - "description": "The task launch types the task definition was validated against. The valid values are ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description": "The task launch types the task definition was validated against. The valid values are ``MANAGED_INSTANCES``, ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.", "insertionOrder": false, "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "The task launch types the task definition was validated against. The valid values are ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "The task launch types the task definition was validated against. The valid values are ``MANAGED_INSTANCES``, ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, "NetworkMode": { "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.", @@ -1317,9 +1349,9 @@ "markdownDescription": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "PidMode": { - "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure.\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", + "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the The default is a private namespace for each container.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure.\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", "type": "string", - "markdownDescription": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure.\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the The default is a private namespace for each container.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure.\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "EnableFaultInjection": { "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``.", @@ -1332,9 +1364,9 @@ "markdownDescription": "The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see [IAM roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "RuntimePlatform": { - "description": "The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type.", + "description": "The operating system that your tasks definitions run on.", "$ref": "#/definitions/RuntimePlatform", - "markdownDescription": "The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + "markdownDescription": "The operating system that your tasks definitions run on.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" }, "ProxyConfiguration": { "description": "The configuration details for the App Mesh proxy.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ``ecs-init`` package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version ``20190301`` or later, they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.", diff --git a/server/schema/resources/aws-eks-addon.json b/server/schema/resources/aws-eks-addon.json index 9c3b12d6..9afdf50a 100644 --- a/server/schema/resources/aws-eks-addon.json +++ b/server/schema/resources/aws-eks-addon.json @@ -145,7 +145,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "eks:TagResource", diff --git a/server/schema/resources/aws-eks-capability.json b/server/schema/resources/aws-eks-capability.json new file mode 100644 index 00000000..015d7b42 --- /dev/null +++ b/server/schema/resources/aws-eks-capability.json @@ -0,0 +1,435 @@ +{ + "typeName": "AWS::EKS::Capability", + "description": "Resource Type definition for EKS Capability.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CapabilityConfiguration": { + "description": "Configuration settings for a capability. The structure of this object varies depending on the capability type.", + "type": "object", + "properties": { + "ArgoCd": { + "$ref": "#/definitions/ArgoCd" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration settings for a capability. The structure of this object varies depending on the capability type.\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" + }, + "ArgoCd": { + "description": "Configuration settings for an Argo CD capability. This includes the Kubernetes namespace, IAM Identity Center integration, RBAC role mappings, and network access configuration.", + "type": "object", + "properties": { + "Namespace": { + "type": "string", + "description": "The Kubernetes namespace where Argo CD resources will be created. If not specified, the default namespace is used.", + "markdownDescription": "The Kubernetes namespace where Argo CD resources will be created. If not specified, the default namespace is used.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AwsIdc": { + "$ref": "#/definitions/AwsIdc" + }, + "RbacRoleMappings": { + "type": "array", + "description": "A list of role mappings that define which IAM Identity Center users or groups have which Argo CD roles. Each mapping associates an Argo CD role (ADMIN, EDITOR, or VIEWER) with one or more IAM Identity Center identities.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ArgoCdRoleMapping" + }, + "markdownDescription": "A list of role mappings that define which IAM Identity Center users or groups have which Argo CD roles. Each mapping associates an Argo CD role (ADMIN, EDITOR, or VIEWER) with one or more IAM Identity Center identities.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NetworkAccess": { + "$ref": "#/definitions/NetworkAccess" + }, + "ServerUrl": { + "type": "string", + "description": "The URL of the Argo CD server. Use this URL to access the Argo CD web interface and API.", + "markdownDescription": "The URL of the Argo CD server. Use this URL to access the Argo CD web interface and API.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AwsIdc" + ], + "additionalProperties": false, + "markdownDescription": "Configuration settings for an Argo CD capability. This includes the Kubernetes namespace, IAM Identity Center integration, RBAC role mappings, and network access configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AwsIdc": { + "description": "Configuration for integrating Argo CD with IAM Identity Center. This allows you to use your organization's identity provider for authentication to Argo CD.", + "type": "object", + "properties": { + "IdcInstanceArn": { + "type": "string", + "description": "The ARN of the IAM Identity Center instance to use for authentication.", + "markdownDescription": "The ARN of the IAM Identity Center instance to use for authentication.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "IdcRegion": { + "type": "string", + "description": "The Region where your IAM Identity Center instance is located.", + "markdownDescription": "The Region where your IAM Identity Center instance is located.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IdcManagedApplicationArn": { + "type": "string", + "description": "The ARN of the managed application created in IAM Identity Center for this Argo CD capability. This application is automatically created and managed by EKS.", + "markdownDescription": "The ARN of the managed application created in IAM Identity Center for this Argo CD capability. This application is automatically created and managed by EKS.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IdcInstanceArn" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for integrating Argo CD with IAM Identity Center. This allows you to use your organization's identity provider for authentication to Argo CD.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ArgoCdRoleMapping": { + "description": "A mapping between an Argo CD role and IAM Identity Center identities. This defines which users or groups have specific permissions in Argo CD.", + "type": "object", + "properties": { + "Role": { + "type": "string", + "enum": [ + "ADMIN", + "EDITOR", + "VIEWER" + ], + "description": "The Argo CD role to assign. Valid values are: ADMIN (full administrative access to Argo CD), EDITOR (edit access to Argo CD resources), or VIEWER (read-only access to Argo CD resources).", + "markdownDescription": "The Argo CD role to assign. Valid values are: ADMIN (full administrative access to Argo CD), EDITOR (edit access to Argo CD resources), or VIEWER (read-only access to Argo CD resources).\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ADMIN | EDITOR | VIEWER \nUpdate requires: No interruption\n" + }, + "Identities": { + "type": "array", + "description": "A list of IAM Identity Center identities (users or groups) that should be assigned this Argo CD role.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsoIdentity" + }, + "markdownDescription": "A list of IAM Identity Center identities (users or groups) that should be assigned this Argo CD role.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Role", + "Identities" + ], + "additionalProperties": false, + "markdownDescription": "A mapping between an Argo CD role and IAM Identity Center identities. This defines which users or groups have specific permissions in Argo CD.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SsoIdentity": { + "description": "An IAM Identity Center identity (user or group) that can be assigned permissions in a capability.", + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "The unique identifier of the IAM Identity Center user or group.", + "markdownDescription": "The unique identifier of the IAM Identity Center user or group.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SSO_USER", + "SSO_GROUP" + ], + "description": "The type of identity. Valid values are SSO_USER or SSO_GROUP.", + "markdownDescription": "The type of identity. Valid values are SSO_USER or SSO_GROUP.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SSO_USER | SSO_GROUP \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Id", + "Type" + ], + "additionalProperties": false, + "markdownDescription": "An IAM Identity Center identity (user or group) that can be assigned permissions in a capability.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkAccess": { + "description": "Configuration for network access to the Argo CD capability's managed API server endpoint. By default, the Argo CD server is accessible via a public endpoint. You can optionally specify one or more VPC endpoint IDs to enable private connectivity from your VPCs.", + "type": "object", + "properties": { + "VpceIds": { + "type": "array", + "description": "A list of VPC endpoint IDs to associate with the managed Argo CD API server endpoint. Each VPC endpoint provides private connectivity from a specific VPC to the Argo CD server. You can specify multiple VPC endpoint IDs to enable access from multiple VPCs.", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of VPC endpoint IDs to associate with the managed Argo CD API server endpoint. Each VPC endpoint provides private connectivity from a specific VPC to the Argo CD server. You can specify multiple VPC endpoint IDs to enable access from multiple VPCs.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration for network access to the Argo CD capability's managed API server endpoint. By default, the Argo CD server is accessible via a public endpoint. You can optionally specify one or more VPC endpoint IDs to enable private connectivity from your VPCs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ClusterName": { + "description": "The name of the EKS cluster where you want to create the capability.", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "The name of the EKS cluster where you want to create the capability.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: Replacement\n" + }, + "CapabilityName": { + "description": "A unique name for the capability. The name must be unique within your cluster and can contain alphanumeric characters, hyphens, and underscores.", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "A unique name for the capability. The name must be unique within your cluster and can contain alphanumeric characters, hyphens, and underscores.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: Replacement\n" + }, + "Type": { + "description": "The type of capability to create. Valid values are: ACK (AWS Controllers for Kubernetes, which lets you manage AWS resources directly from Kubernetes), ARGOCD (Argo CD for GitOps-based continuous delivery), or KRO (Kube Resource Orchestrator for composing and managing custom Kubernetes resources).", + "type": "string", + "enum": [ + "ARGOCD", + "ACK", + "KRO" + ], + "markdownDescription": "The type of capability to create. Valid values are: ACK (AWS Controllers for Kubernetes, which lets you manage AWS resources directly from Kubernetes), ARGOCD (Argo CD for GitOps-based continuous delivery), or KRO (Kube Resource Orchestrator for composing and managing custom Kubernetes resources).\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ARGOCD | ACK | KRO \nUpdate requires: Replacement\n" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that the capability uses to interact with AWS services. This role must have a trust policy that allows the EKS service principal to assume it, and it must have the necessary permissions for the capability type you're creating.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role that the capability uses to interact with AWS services. This role must have a trust policy that allows the EKS service principal to assume it, and it must have the necessary permissions for the capability type you're creating.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[a-z-]*:iam::[0-9]+:role/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" + }, + "DeletePropagationPolicy": { + "description": "Specifies how Kubernetes resources managed by the capability should be handled when the capability is deleted. Currently, the only supported value is RETAIN which retains all Kubernetes resources managed by the capability when the capability is deleted.", + "type": "string", + "enum": [ + "RETAIN" + ], + "markdownDescription": "Specifies how Kubernetes resources managed by the capability should be handled when the capability is deleted. Currently, the only supported value is RETAIN which retains all Kubernetes resources managed by the capability when the capability is deleted.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: RETAIN \nUpdate requires: No interruption\n" + }, + "Configuration": { + "description": "The configuration settings for the capability. The structure of this object varies depending on the capability type. For Argo CD capabilities, you can configure IAM Identity Center integration, RBAC role mappings, and network access settings.", + "$ref": "#/definitions/CapabilityConfiguration", + "markdownDescription": "The configuration settings for the capability. The structure of this object varies depending on the capability type. For Argo CD capabilities, you can configure IAM Identity Center integration, RBAC role mappings, and network access settings.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the capability.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the capability.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "description": "The current status of the capability. Valid values include: CREATING (the capability is being created), ACTIVE (the capability is running and available), UPDATING (the capability is being updated), DELETING (the capability is being deleted), CREATE_FAILED (the capability creation failed), UPDATE_FAILED (the capability update failed), or DELETE_FAILED (the capability deletion failed).", + "type": "string", + "markdownDescription": "The current status of the capability. Valid values include: CREATING (the capability is being created), ACTIVE (the capability is running and available), UPDATING (the capability is being updated), DELETING (the capability is being deleted), CREATE_FAILED (the capability creation failed), UPDATE_FAILED (the capability update failed), or DELETE_FAILED (the capability deletion failed).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The Unix epoch timestamp in seconds for when the capability was created.", + "type": "string", + "markdownDescription": "The Unix epoch timestamp in seconds for when the capability was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ModifiedAt": { + "description": "The Unix epoch timestamp in seconds for when the capability was last modified.", + "type": "string", + "markdownDescription": "The Unix epoch timestamp in seconds for when the capability was last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Version": { + "description": "The version of the capability software that is currently running.", + "type": "string", + "markdownDescription": "The version of the capability software that is currently running.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "eks:TagResource", + "eks:UntagResource" + ] + }, + "additionalProperties": false, + "required": [ + "ClusterName", + "CapabilityName", + "Type", + "RoleArn", + "DeletePropagationPolicy" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/ClusterName", + "/properties/CapabilityName", + "/properties/Type", + "/properties/Configuration/ArgoCd/Namespace", + "/properties/Configuration/ArgoCd/AwsIdc" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Status", + "/properties/CreatedAt", + "/properties/ModifiedAt", + "/properties/Version", + "/properties/Configuration/ArgoCd/ServerUrl", + "/properties/Configuration/ArgoCd/AwsIdc/IdcManagedApplicationArn" + ], + "replacementStrategy": "delete_then_create", + "handlers": { + "create": { + "permissions": [ + "eks:CreateCapability", + "eks:DescribeCapability", + "eks:TagResource", + "eks:CreateAccessEntry", + "eks:DeleteAccessEntry", + "eks:DescribeAccessEntry", + "eks:UpdateAccessEntry", + "eks:AssociateAccessPolicy", + "eks:DisassociateAccessPolicy", + "eks:ListAssociatedAccessPolicies", + "iam:PassRole", + "iam:GetRole", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationAuthenticationMethod", + "sso:DeleteApplicationGrant", + "sso:PutApplicationAccessScope", + "sso:PutApplicationGrant", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationAssignmentConfiguration", + "sso:CreateApplicationAssignment", + "sso:DescribeInstance", + "sso:DescribeRegisteredRegions", + "sso:ListApplicationAssignments", + "sso:DeleteApplicationAssignment", + "identitystore:ListGroups", + "identitystore:ListUsers", + "identitystore:DescribeGroup" + ] + }, + "read": { + "permissions": [ + "eks:DescribeCapability" + ] + }, + "update": { + "permissions": [ + "eks:DescribeCapability", + "eks:UpdateCapability", + "eks:DescribeUpdate", + "eks:TagResource", + "eks:UntagResource", + "iam:PassRole", + "iam:GetRole", + "eks:CreateAccessEntry", + "eks:DeleteAccessEntry", + "eks:DescribeAccessEntry", + "eks:UpdateAccessEntry", + "eks:AssociateAccessPolicy", + "eks:DisassociateAccessPolicy", + "eks:ListAssociatedAccessPolicies", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationAuthenticationMethod", + "sso:DeleteApplicationGrant", + "sso:PutApplicationAccessScope", + "sso:PutApplicationGrant", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationAssignmentConfiguration", + "sso:CreateApplicationAssignment", + "sso:DescribeInstance", + "sso:DescribeRegisteredRegions", + "sso:ListApplicationAssignments", + "sso:DeleteApplicationAssignment", + "identitystore:ListGroups", + "identitystore:ListUsers", + "identitystore:DescribeGroup" + ] + }, + "delete": { + "permissions": [ + "eks:DeleteCapability", + "eks:DescribeCapability", + "eks:DeleteAccessEntry", + "eks:DescribeAccessEntry", + "eks:DisassociateAccessPolicy", + "eks:ListAssociatedAccessPolicies", + "eks:UntagResource", + "sso:DeleteApplication", + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationAuthenticationMethod", + "sso:DeleteApplicationGrant", + "sso:DescribeInstance", + "sso:DescribeRegisteredRegions", + "sso:ListApplicationAssignments", + "sso:DeleteApplicationAssignment" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ClusterName": { + "$ref": "resource-schema.json#/properties/ClusterName" + } + }, + "required": [ + "ClusterName" + ] + }, + "permissions": [ + "eks:ListCapabilities" + ] + } + }, + "attributes": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the capability.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the capability.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "description": "The current status of the capability. Valid values include: CREATING (the capability is being created), ACTIVE (the capability is running and available), UPDATING (the capability is being updated), DELETING (the capability is being deleted), CREATE_FAILED (the capability creation failed), UPDATE_FAILED (the capability update failed), or DELETE_FAILED (the capability deletion failed).", + "type": "string", + "markdownDescription": "The current status of the capability. Valid values include: CREATING (the capability is being created), ACTIVE (the capability is running and available), UPDATING (the capability is being updated), DELETING (the capability is being deleted), CREATE_FAILED (the capability creation failed), UPDATE_FAILED (the capability update failed), or DELETE_FAILED (the capability deletion failed).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The Unix epoch timestamp in seconds for when the capability was created.", + "type": "string", + "markdownDescription": "The Unix epoch timestamp in seconds for when the capability was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ModifiedAt": { + "description": "The Unix epoch timestamp in seconds for when the capability was last modified.", + "type": "string", + "markdownDescription": "The Unix epoch timestamp in seconds for when the capability was last modified.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Version": { + "description": "The version of the capability software that is currently running.", + "type": "string", + "markdownDescription": "The version of the capability software that is currently running.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-eks-cluster.json b/server/schema/resources/aws-eks-cluster.json index 77e7172d..f999c1dd 100644 --- a/server/schema/resources/aws-eks-cluster.json +++ b/server/schema/resources/aws-eks-cluster.json @@ -1,125 +1,153 @@ { + "tagging": { + "permissions": [ + "eks:TagResource", + "eks:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, "typeName": "AWS::EKS::Cluster", + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/Endpoint", + "/properties/CertificateAuthorityData", + "/properties/ClusterSecurityGroupId", + "/properties/EncryptionConfigKeyArn", + "/properties/OpenIdConnectIssuerUrl", + "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" + ], "description": "An object representing an Amazon EKS cluster.", + "createOnlyProperties": [ + "/properties/OutpostConfig", + "/properties/EncryptionConfig", + "/properties/KubernetesNetworkConfig/IpFamily", + "/properties/KubernetesNetworkConfig/ServiceIpv4Cidr", + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/Name", + "/properties/RoleArn", + "/properties/BootstrapSelfManagedAddons" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "required": [ + "RoleArn", + "ResourcesVpcConfig" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", - "definitions": { - "Tag": { - "description": "A key-value pair to associate with a resource.", - "type": "object", - "properties": { - "Key": { - "type": "string", - "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 -.", - "minLength": 1, - "maxLength": 128, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, - "Value": { - "type": "string", - "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 -.", - "minLength": 0, - "maxLength": 256, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Key", - "Value" + "handlers": { + "read": { + "permissions": [ + "eks:DescribeCluster" + ] + }, + "create": { + "permissions": [ + "eks:CreateCluster", + "eks:DescribeCluster", + "eks:TagResource", + "eks:CreateAccessEntry", + "iam:PassRole", + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:CreateServiceLinkedRole", + "iam:CreateInstanceProfile", + "iam:TagInstanceProfile", + "iam:AddRoleToInstanceProfile", + "iam:GetInstanceProfile", + "iam:DeleteInstanceProfile", + "iam:RemoveRoleFromInstanceProfile", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "kms:DescribeKey", + "kms:CreateGrant" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "eks:UpdateClusterConfig", + "eks:UpdateClusterVersion", + "eks:DescribeCluster", + "eks:DescribeUpdate", + "eks:TagResource", + "eks:UntagResource" ], - "additionalProperties": false, - "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "timeoutInMinutes": 180 }, - "Provider": { - "type": "object", + "list": { + "permissions": [ + "eks:ListClusters" + ] + }, + "delete": { + "permissions": [ + "eks:DeleteCluster", + "eks:DescribeCluster" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/BootstrapSelfManagedAddons", + "/properties/Force" + ], + "additionalProperties": false, + "definitions": { + "AccessConfig": { + "description": "An object representing the Access Config to use for the cluster.", "additionalProperties": false, + "type": "object", "properties": { - "KeyArn": { - "description": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.", + "AuthenticationMode": { + "description": "Specify the authentication mode that should be used to create your cluster.", "type": "string", - "markdownDescription": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "CONFIG_MAP", + "API_AND_CONFIG_MAP", + "API" + ], + "markdownDescription": "Specify the authentication mode that should be used to create your cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONFIG_MAP | API_AND_CONFIG_MAP | API \nUpdate requires: No interruption\n" + }, + "BootstrapClusterCreatorAdminPermissions": { + "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", + "type": "boolean", + "markdownDescription": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "An object representing the Access Config to use for the cluster.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" }, "EncryptionConfig": { "description": "The encryption configuration for the cluster", + "additionalProperties": false, "type": "object", "properties": { - "Provider": { - "description": "The encryption provider for the cluster.", - "$ref": "#/definitions/Provider", - "markdownDescription": "The encryption provider for the cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, "Resources": { "description": "Specifies the resources to be encrypted. The only supported value is \"secrets\".", - "type": "array", - "insertionOrder": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "Specifies the resources to be encrypted. The only supported value is \"secrets\".\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "additionalProperties": false, - "markdownDescription": "The encryption configuration for the cluster\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ResourcesVpcConfig": { - "description": "An object representing the VPC configuration to use for an Amazon EKS cluster.", - "type": "object", - "additionalProperties": false, - "properties": { - "EndpointPrivateAccess": { - "description": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.", - "type": "boolean", - "markdownDescription": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "EndpointPublicAccess": { - "description": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.", - "type": "boolean", - "markdownDescription": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "PublicAccessCidrs": { - "description": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.", - "type": "array", "insertionOrder": false, - "items": { - "type": "string", - "minItems": 1, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "SecurityGroupIds": { - "description": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.", "type": "array", - "insertionOrder": false, "items": { "type": "string", - "minItems": 1, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the resources to be encrypted. The only supported value is \"secrets\".\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "SubnetIds": { - "description": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", - "type": "array", - "insertionOrder": false, - "items": { - "type": "string", - "minItems": 1, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "Provider": { + "description": "The encryption provider for the cluster.", + "$ref": "#/definitions/Provider", + "markdownDescription": "The encryption provider for the cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "required": [ - "SubnetIds" - ], - "markdownDescription": "An object representing the VPC configuration to use for an Amazon EKS cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The encryption configuration for the cluster\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "LoggingTypeConfig": { "description": "Enabled Logging Type", + "additionalProperties": false, "type": "object", "properties": { "Type": { @@ -135,22 +163,12 @@ "markdownDescription": "name of the log type\n\n---\n\nRequired: No \nType: String \nAllowed Values: api | audit | authenticator | controllerManager | scheduler \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "markdownDescription": "Enabled Logging Type\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EnabledTypes": { - "description": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty", - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoggingTypeConfig" - }, - "markdownDescription": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, "ClusterLogging": { "description": "The cluster control plane logging configuration for your cluster. ", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "EnabledTypes": { "$ref": "#/definitions/EnabledTypes" @@ -158,135 +176,191 @@ }, "markdownDescription": "The cluster control plane logging configuration for your cluster. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Logging": { - "description": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.", + "ElasticLoadBalancing": { + "description": "Todo: add description", + "additionalProperties": false, "type": "object", + "properties": { + "Enabled": { + "description": "Todo: add description", + "type": "boolean", + "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KubernetesNetworkConfig": { + "description": "The Kubernetes network configuration for the cluster.", "additionalProperties": false, + "type": "object", "properties": { - "ClusterLogging": { - "description": "The cluster control plane logging configuration for your cluster. ", - "$ref": "#/definitions/ClusterLogging", - "markdownDescription": "The cluster control plane logging configuration for your cluster. \n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "ServiceIpv4Cidr": { + "description": "The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. ", + "type": "string", + "markdownDescription": "The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ServiceIpv6Cidr": { + "description": "The CIDR block to assign Kubernetes service IP addresses from.", + "type": "string", + "markdownDescription": "The CIDR block to assign Kubernetes service IP addresses from.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IpFamily": { + "description": "Ipv4 or Ipv6. You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1 or later of the Amazon VPC CNI add-on", + "type": "string", + "enum": [ + "ipv4", + "ipv6" + ], + "markdownDescription": "Ipv4 or Ipv6. You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1 or later of the Amazon VPC CNI add-on\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 \nUpdate requires: No interruption\n" + }, + "ElasticLoadBalancing": { + "description": "Todo: add description", + "$ref": "#/definitions/ElasticLoadBalancing", + "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The Kubernetes network configuration for the cluster.\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" }, - "RemoteNodeNetwork": { - "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", + "BlockStorage": { + "description": "Todo: add description", + "additionalProperties": false, "type": "object", "properties": { - "Cidrs": { - "description": "Specifies the list of remote node CIDRs.", - "type": "array", + "Enabled": { + "description": "Todo: add description", + "type": "boolean", + "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RemotePodNetworks": { + "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/RemotePodNetwork" + }, + "markdownDescription": "Network configuration of pods run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ControlPlaneScalingConfig": { + "description": "Configuration for provisioned control plane scaling.", + "additionalProperties": false, + "type": "object", + "properties": { + "Tier": { + "description": "The scaling tier for the provisioned control plane.", + "type": "string", + "enum": [ + "standard", + "tier-xl", + "tier-2xl", + "tier-4xl", + "tier-8xl", + "tier-ultra" + ], + "markdownDescription": "The scaling tier for the provisioned control plane.\n\n---\n\nRequired: No \nType: String \nAllowed Values: standard | tier-xl | tier-2xl | tier-4xl | tier-8xl | tier-ultra \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Configuration for provisioned control plane scaling.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OutpostConfig": { + "description": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "OutpostArns": { + "description": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.", "insertionOrder": false, + "type": "array", "items": { - "type": "string", "minItems": 1, + "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "Specifies the list of remote node CIDRs.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ControlPlanePlacement": { + "description": "Specify the placement group of the control plane machines for your cluster.", + "$ref": "#/definitions/ControlPlanePlacement", + "markdownDescription": "Specify the placement group of the control plane machines for your cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ControlPlaneInstanceType": { + "description": "Specify the Instance type of the machines that should be used to create your cluster.", + "type": "string", + "markdownDescription": "Specify the Instance type of the machines that should be used to create your cluster.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "required": [ - "Cidrs" + "OutpostArns", + "ControlPlaneInstanceType" ], - "markdownDescription": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "RemoteNodeNetworks": { - "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/RemoteNodeNetwork" - }, - "markdownDescription": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "RemotePodNetwork": { "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", + "additionalProperties": false, "type": "object", "properties": { "Cidrs": { "description": "Specifies the list of remote pod CIDRs.", - "type": "array", "insertionOrder": false, + "type": "array", "items": { - "type": "string", "minItems": 1, + "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "Specifies the list of remote pod CIDRs.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "required": [ "Cidrs" - ], - "markdownDescription": "Network configuration of pods run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "RemotePodNetworks": { - "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/RemotePodNetwork" - }, - "markdownDescription": "Network configuration of pods run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + ], + "markdownDescription": "Network configuration of pods run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "RemoteNetworkConfig": { - "description": "Configuration fields for specifying on-premises node and pod CIDRs that are external to the VPC passed during cluster creation.", + "Logging": { + "description": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.", "additionalProperties": false, "type": "object", "properties": { - "RemoteNodeNetworks": { - "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", - "$ref": "#/definitions/RemoteNodeNetworks", - "markdownDescription": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - }, - "RemotePodNetworks": { - "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", - "$ref": "#/definitions/RemotePodNetworks", - "markdownDescription": "Network configuration of pods run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "ClusterLogging": { + "description": "The cluster control plane logging configuration for your cluster. ", + "$ref": "#/definitions/ClusterLogging", + "markdownDescription": "The cluster control plane logging configuration for your cluster. \n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "required": [ - "RemoteNodeNetworks" - ], - "markdownDescription": "Configuration fields for specifying on-premises node and pod CIDRs that are external to the VPC passed during cluster creation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RemoteNodeNetworks": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/RemoteNodeNetwork" + }, + "markdownDescription": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "ComputeConfig": { "description": "Todo: add description", "additionalProperties": false, "type": "object", "properties": { - "Enabled": { - "description": "Todo: add description", - "type": "boolean", - "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "NodeRoleArn": { - "description": "Todo: add description", - "type": "string", - "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "NodePools": { "description": "Todo: add description", - "type": "array", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "BlockStorage": { - "description": "Todo: add description", - "additionalProperties": false, - "type": "object", - "properties": { + }, + "NodeRoleArn": { + "description": "Todo: add description", + "type": "string", + "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Enabled": { "description": "Todo: add description", "type": "boolean", @@ -308,119 +382,97 @@ }, "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ElasticLoadBalancing": { - "description": "Todo: add description", + "EnabledTypes": { + "description": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/LoggingTypeConfig" + }, + "markdownDescription": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ControlPlanePlacement": { + "description": "Specify the placement group of the control plane machines for your cluster.", "additionalProperties": false, "type": "object", "properties": { - "Enabled": { - "description": "Todo: add description", - "type": "boolean", - "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "GroupName": { + "description": "Specify the placement group name of the control place machines for your cluster.", + "type": "string", + "markdownDescription": "Specify the placement group name of the control place machines for your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specify the placement group of the control plane machines for your cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "KubernetesNetworkConfig": { - "description": "The Kubernetes network configuration for the cluster.", + "ZonalShiftConfig": { + "description": "The current zonal shift configuration to use for the cluster.", "additionalProperties": false, "type": "object", "properties": { - "ServiceIpv4Cidr": { - "description": "The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. ", - "type": "string", - "markdownDescription": "The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ServiceIpv6Cidr": { - "description": "The CIDR block to assign Kubernetes service IP addresses from.", - "type": "string", - "markdownDescription": "The CIDR block to assign Kubernetes service IP addresses from.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "IpFamily": { - "description": "Ipv4 or Ipv6. You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1 or later of the Amazon VPC CNI add-on", - "type": "string", - "enum": [ - "ipv4", - "ipv6" - ], - "markdownDescription": "Ipv4 or Ipv6. You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1 or later of the Amazon VPC CNI add-on\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 \nUpdate requires: No interruption\n" - }, - "ElasticLoadBalancing": { - "description": "Todo: add description", - "$ref": "#/definitions/ElasticLoadBalancing", - "markdownDescription": "Todo: add description\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "Enabled": { + "description": "Set this value to true to enable zonal shift for the cluster.", + "type": "boolean", + "markdownDescription": "Set this value to true to enable zonal shift for the cluster.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The Kubernetes network configuration for the cluster.\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" + "markdownDescription": "The current zonal shift configuration to use for the cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ControlPlanePlacement": { - "description": "Specify the placement group of the control plane machines for your cluster.", - "type": "object", + "DeletionProtection": { + "description": "Set this value to true to enable deletion protection for the cluster.", + "type": "boolean", + "markdownDescription": "Set this value to true to enable deletion protection for the cluster.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Provider": { "additionalProperties": false, + "type": "object", "properties": { - "GroupName": { - "description": "Specify the placement group name of the control place machines for your cluster.", + "KeyArn": { + "description": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.", "type": "string", - "markdownDescription": "Specify the placement group name of the control place machines for your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Specify the placement group of the control plane machines for your cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "OutpostConfig": { - "description": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.", + "RemoteNodeNetwork": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", "additionalProperties": false, "type": "object", "properties": { - "OutpostArns": { - "description": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.", - "type": "array", + "Cidrs": { + "description": "Specifies the list of remote node CIDRs.", "insertionOrder": false, + "type": "array", "items": { - "type": "string", "minItems": 1, + "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - }, - "ControlPlaneInstanceType": { - "description": "Specify the Instance type of the machines that should be used to create your cluster.", - "type": "string", - "markdownDescription": "Specify the Instance type of the machines that should be used to create your cluster.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "ControlPlanePlacement": { - "description": "Specify the placement group of the control plane machines for your cluster.", - "$ref": "#/definitions/ControlPlanePlacement", - "markdownDescription": "Specify the placement group of the control plane machines for your cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the list of remote node CIDRs.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ - "OutpostArns", - "ControlPlaneInstanceType" + "Cidrs" ], - "markdownDescription": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AccessConfig": { - "description": "An object representing the Access Config to use for the cluster.", + "RemoteNetworkConfig": { + "description": "Configuration fields for specifying on-premises node and pod CIDRs that are external to the VPC passed during cluster creation.", "additionalProperties": false, "type": "object", "properties": { - "BootstrapClusterCreatorAdminPermissions": { - "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", - "type": "boolean", - "markdownDescription": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "RemoteNodeNetworks": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", + "$ref": "#/definitions/RemoteNodeNetworks", + "markdownDescription": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "AuthenticationMode": { - "description": "Specify the authentication mode that should be used to create your cluster.", - "type": "string", - "enum": [ - "CONFIG_MAP", - "API_AND_CONFIG_MAP", - "API" - ], - "markdownDescription": "Specify the authentication mode that should be used to create your cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONFIG_MAP | API_AND_CONFIG_MAP | API \nUpdate requires: No interruption\n" + "RemotePodNetworks": { + "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", + "$ref": "#/definitions/RemotePodNetworks", + "markdownDescription": "Network configuration of pods run on-premises with EKS Hybrid Nodes.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "An object representing the Access Config to use for the cluster.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + "markdownDescription": "Configuration fields for specifying on-premises node and pod CIDRs that are external to the VPC passed during cluster creation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "UpgradePolicy": { "description": "An object representing the Upgrade Policy to use for the cluster.", @@ -439,135 +491,176 @@ }, "markdownDescription": "An object representing the Upgrade Policy to use for the cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ZonalShiftConfig": { - "description": "The current zonal shift configuration to use for the cluster.", + "Tag": { + "description": "A key-value pair to associate with a resource.", "additionalProperties": false, "type": "object", "properties": { - "Enabled": { - "description": "Set this value to true to enable zonal shift for the cluster.", + "Value": { + "minLength": 0, + "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 -.", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -.", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourcesVpcConfig": { + "description": "An object representing the VPC configuration to use for an Amazon EKS cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "EndpointPublicAccess": { + "description": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.", "type": "boolean", - "markdownDescription": "Set this value to true to enable zonal shift for the cluster.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "PublicAccessCidrs": { + "description": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EndpointPrivateAccess": { + "description": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.", + "type": "boolean", + "markdownDescription": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "description": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "description": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The current zonal shift configuration to use for the cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "DeletionProtection": { - "description": "Set this value to true to enable deletion protection for the cluster.", - "type": "boolean", - "markdownDescription": "Set this value to true to enable deletion protection for the cluster.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "required": [ + "SubnetIds" + ], + "markdownDescription": "An object representing the VPC configuration to use for an Amazon EKS cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { + "Force": { + "default": false, + "description": "Force cluster version update", + "type": "boolean", + "markdownDescription": "Force cluster version update\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AccessConfig": { + "$ref": "#/definitions/AccessConfig" + }, + "CertificateAuthorityData": { + "description": "The certificate-authority-data for your cluster.", + "type": "string", + "markdownDescription": "The certificate-authority-data for your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "EncryptionConfig": { - "type": "array", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/EncryptionConfig", - "maxItems": 1 + "maxItems": 1, + "$ref": "#/definitions/EncryptionConfig" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, "KubernetesNetworkConfig": { "$ref": "#/definitions/KubernetesNetworkConfig" }, - "Logging": { - "$ref": "#/definitions/Logging" - }, "Name": { + "minLength": 1, "description": "The unique name to give to your cluster.", "type": "string", - "minLength": 1, "maxLength": 100, "markdownDescription": "The unique name to give to your cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^[0-9A-Za-z][A-Za-z0-9\\-_]* \nUpdate requires: Replacement\n" }, - "Id": { - "description": "The unique ID given to your cluster.", - "type": "string", - "markdownDescription": "The unique ID given to your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/ResourcesVpcConfig" - }, - "OutpostConfig": { - "$ref": "#/definitions/OutpostConfig" - }, - "AccessConfig": { - "$ref": "#/definitions/AccessConfig" - }, - "UpgradePolicy": { - "$ref": "#/definitions/UpgradePolicy" - }, - "RemoteNetworkConfig": { - "$ref": "#/definitions/RemoteNetworkConfig" - }, - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "StorageConfig": { - "$ref": "#/definitions/StorageConfig" - }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.", + "Endpoint": { + "description": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Version": { "description": "The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.", "type": "string", "markdownDescription": "The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.\n\n---\n\nRequired: No \nType: String \nPattern: 1\\.\\d\\d \nUpdate requires: No interruption\n" }, - "Force": { - "description": "Force cluster version update", - "type": "boolean", - "default": false, - "markdownDescription": "Force cluster version update\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "ControlPlaneScalingConfig": { + "$ref": "#/definitions/ControlPlaneScalingConfig" + }, + "ClusterSecurityGroupId": { + "description": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.", + "type": "string", + "markdownDescription": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OutpostConfig": { + "$ref": "#/definitions/OutpostConfig" }, "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "type": "array", "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "Arn": { - "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", - "type": "string", - "markdownDescription": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Endpoint": { - "description": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.", - "type": "string", - "markdownDescription": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "CertificateAuthorityData": { - "description": "The certificate-authority-data for your cluster.", - "type": "string", - "markdownDescription": "The certificate-authority-data for your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ClusterSecurityGroupId": { - "description": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.", - "type": "string", - "markdownDescription": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "EncryptionConfigKeyArn": { - "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", - "type": "string", - "markdownDescription": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "OpenIdConnectIssuerUrl": { "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", "type": "string", "markdownDescription": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "Logging": { + "$ref": "#/definitions/Logging" + }, + "ComputeConfig": { + "$ref": "#/definitions/ComputeConfig" + }, + "StorageConfig": { + "$ref": "#/definitions/StorageConfig" + }, "BootstrapSelfManagedAddons": { "description": "Set this value to false to avoid creating the default networking add-ons when the cluster is created.", "type": "boolean", "markdownDescription": "Set this value to false to avoid creating the default networking add-ons when the cluster is created.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, + "EncryptionConfigKeyArn": { + "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", + "type": "string", + "markdownDescription": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "DeletionProtection": { "description": "Set this value to true to enable deletion protection for the cluster.", "type": "boolean", @@ -575,105 +668,18 @@ }, "ZonalShiftConfig": { "$ref": "#/definitions/ZonalShiftConfig" - } - }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags", - "permissions": [ - "eks:TagResource", - "eks:UntagResource" - ] - }, - "additionalProperties": false, - "required": [ - "RoleArn", - "ResourcesVpcConfig" - ], - "primaryIdentifier": [ - "/properties/Name" - ], - "createOnlyProperties": [ - "/properties/OutpostConfig", - "/properties/EncryptionConfig", - "/properties/KubernetesNetworkConfig/IpFamily", - "/properties/KubernetesNetworkConfig/ServiceIpv4Cidr", - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/Name", - "/properties/RoleArn", - "/properties/BootstrapSelfManagedAddons" - ], - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/Endpoint", - "/properties/CertificateAuthorityData", - "/properties/ClusterSecurityGroupId", - "/properties/EncryptionConfigKeyArn", - "/properties/OpenIdConnectIssuerUrl", - "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" - ], - "writeOnlyProperties": [ - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/BootstrapSelfManagedAddons", - "/properties/Force" - ], - "handlers": { - "create": { - "permissions": [ - "eks:CreateCluster", - "eks:DescribeCluster", - "eks:TagResource", - "eks:CreateAccessEntry", - "iam:PassRole", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:CreateServiceLinkedRole", - "iam:CreateInstanceProfile", - "iam:TagInstanceProfile", - "iam:AddRoleToInstanceProfile", - "iam:GetInstanceProfile", - "iam:DeleteInstanceProfile", - "iam:RemoveRoleFromInstanceProfile", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "kms:DescribeKey", - "kms:CreateGrant" - ] }, - "read": { - "permissions": [ - "eks:DescribeCluster" - ] + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "update": { - "permissions": [ - "iam:PassRole", - "eks:UpdateClusterConfig", - "eks:UpdateClusterVersion", - "eks:DescribeCluster", - "eks:DescribeUpdate", - "eks:TagResource", - "eks:UntagResource" - ], - "timeoutInMinutes": 180 + "UpgradePolicy": { + "$ref": "#/definitions/UpgradePolicy" }, - "delete": { - "permissions": [ - "eks:DeleteCluster", - "eks:DescribeCluster" - ] + "RemoteNetworkConfig": { + "$ref": "#/definitions/RemoteNetworkConfig" }, - "list": { - "permissions": [ - "eks:ListClusters" - ] - } - }, - "attributes": { "Id": { "description": "The unique ID given to your cluster.", "type": "string", @@ -684,30 +690,45 @@ "type": "string", "markdownDescription": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Endpoint": { - "description": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.", - "type": "string", - "markdownDescription": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/ResourcesVpcConfig" + } + }, + "attributes": { "CertificateAuthorityData": { "description": "The certificate-authority-data for your cluster.", "type": "string", "markdownDescription": "The certificate-authority-data for your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "Endpoint": { + "description": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.", + "type": "string", + "markdownDescription": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "ClusterSecurityGroupId": { "description": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.", "type": "string", "markdownDescription": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "OpenIdConnectIssuerUrl": { + "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", + "type": "string", + "markdownDescription": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "EncryptionConfigKeyArn": { "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", "type": "string", "markdownDescription": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "OpenIdConnectIssuerUrl": { - "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", + "Id": { + "description": "The unique ID given to your cluster.", "type": "string", - "markdownDescription": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The unique ID given to your cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", + "type": "string", + "markdownDescription": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-eks-fargateprofile.json b/server/schema/resources/aws-eks-fargateprofile.json index 278cc2cd..f5e16eae 100644 --- a/server/schema/resources/aws-eks-fargateprofile.json +++ b/server/schema/resources/aws-eks-fargateprofile.json @@ -131,7 +131,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "eks:TagResource", diff --git a/server/schema/resources/aws-eks-nodegroup.json b/server/schema/resources/aws-eks-nodegroup.json index 704e3139..3f691f38 100644 --- a/server/schema/resources/aws-eks-nodegroup.json +++ b/server/schema/resources/aws-eks-nodegroup.json @@ -97,11 +97,98 @@ ], "markdownDescription": "An object representing a remote access configuration specification for AWS EKS Nodegroup.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "NodeRepairConfig": { + "description": "The node auto repair configuration for node group.", + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "Set this value to true to enable node auto repair for the node group.", + "type": "boolean", + "markdownDescription": "Set this value to true to enable node auto repair for the node group.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "MaxUnhealthyNodeThresholdCount": { + "description": "Specify a count threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdPercentage at the same time.", + "type": "integer", + "minimum": 1, + "markdownDescription": "Specify a count threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdPercentage at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxUnhealthyNodeThresholdPercentage": { + "description": "Specify a percentage threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdCount at the same time.", + "type": "integer", + "minimum": 1, + "maximum": 100, + "markdownDescription": "Specify a percentage threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdCount at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxParallelNodesRepairedCount": { + "description": "Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a count of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedPercentage at the same time.", + "type": "integer", + "minimum": 1, + "markdownDescription": "Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a count of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedPercentage at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxParallelNodesRepairedPercentage": { + "description": "Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a percentage of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedCount at the same time.", + "type": "integer", + "minimum": 1, + "maximum": 100, + "markdownDescription": "Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a percentage of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedCount at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "NodeRepairConfigOverrides": { + "description": "Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NodeRepairConfigOverrides" + }, + "markdownDescription": "Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The node auto repair configuration for node group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NodeRepairConfigOverrides": { + "description": "Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.", + "type": "object", + "additionalProperties": false, + "properties": { + "NodeMonitoringCondition": { + "description": "Specify an unhealthy condition reported by the node monitoring agent that this override would apply to.", + "type": "string", + "markdownDescription": "Specify an unhealthy condition reported by the node monitoring agent that this override would apply to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NodeUnhealthyReason": { + "description": "Specify a reason reported by the node monitoring agent that this override would apply to.", + "type": "string", + "markdownDescription": "Specify a reason reported by the node monitoring agent that this override would apply to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "MinRepairWaitTimeMins": { + "description": "Specify the minimum time in minutes to wait before attempting to repair a node with this specific NodeMonitoringCondition and NodeUnhealthyReason.", + "type": "integer", + "minimum": 1, + "markdownDescription": "Specify the minimum time in minutes to wait before attempting to repair a node with this specific NodeMonitoringCondition and NodeUnhealthyReason.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "RepairAction": { + "description": "Specify the repair action to take for nodes when all of the specified conditions are met.", + "type": "string", + "enum": [ + "Replace", + "Reboot", + "NoAction" + ], + "markdownDescription": "Specify the repair action to take for nodes when all of the specified conditions are met.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Replace | Reboot | NoAction \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "UpdateConfig": { "description": "The node group update configuration.", "type": "object", "additionalProperties": false, "properties": { + "UpdateStrategy": { + "description": "The configuration for the behavior to follow during an node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an UpdateNodegroupVersion action.", + "type": "string", + "markdownDescription": "The configuration for the behavior to follow during an node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an UpdateNodegroupVersion action.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "MaxUnavailable": { "description": "The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100. ", "type": "number", @@ -114,27 +201,44 @@ "minimum": 1, "maximum": 100, "markdownDescription": "The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "UpdateStrategy": { - "description": "The configuration for the behavior to follow during an node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an UpdateNodegroupVersion action.", - "type": "string", - "markdownDescription": "The configuration for the behavior to follow during an node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an UpdateNodegroupVersion action.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "The node group update configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "NodeRepairConfig": { - "description": "The node auto repair configuration for node group.", + "WarmPoolConfig": { + "description": "The warm pool configuration for the node group.", "type": "object", "additionalProperties": false, "properties": { "Enabled": { - "description": "Set this value to true to enable node auto repair for the node group.", + "description": "Enable or disable warm pool for the node group.", "type": "boolean", - "markdownDescription": "Set this value to true to enable node auto repair for the node group.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "Enable or disable warm pool for the node group.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "MaxGroupPreparedCapacity": { + "description": "The maximum number of instances that are allowed to be in the warm pool.", + "type": "integer", + "minimum": -1, + "markdownDescription": "The maximum number of instances that are allowed to be in the warm pool.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MinSize": { + "description": "The minimum number of instances to maintain in the warm pool.", + "type": "integer", + "minimum": 0, + "markdownDescription": "The minimum number of instances to maintain in the warm pool.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "PoolState": { + "description": "The desired state of warm pool instances.", + "type": "string", + "markdownDescription": "The desired state of warm pool instances.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ReuseOnScaleIn": { + "description": "Whether to return instances to the warm pool during scale-in instead of terminating them.", + "type": "boolean", + "markdownDescription": "Whether to return instances to the warm pool during scale-in instead of terminating them.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The node auto repair configuration for node group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The warm pool configuration for the node group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -261,6 +365,11 @@ "$ref": "#/definitions/NodeRepairConfig", "markdownDescription": "The node auto repair configuration for node group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "WarmPoolConfig": { + "description": "The warm pool configuration details for the Auto Scaling group that is created for the node group.", + "$ref": "#/definitions/WarmPoolConfig", + "markdownDescription": "The warm pool configuration details for the Auto Scaling group that is created for the node group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Version": { "description": "The Kubernetes version to use for your managed nodes.", "type": "string", diff --git a/server/schema/resources/aws-eks-podidentityassociation.json b/server/schema/resources/aws-eks-podidentityassociation.json index 817698d4..3cba19df 100644 --- a/server/schema/resources/aws-eks-podidentityassociation.json +++ b/server/schema/resources/aws-eks-podidentityassociation.json @@ -69,6 +69,12 @@ "minLength": 1, "markdownDescription": "The Target Role Arn of the pod identity association.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" }, + "Policy": { + "description": "The policy of the pod identity association.", + "type": "string", + "minLength": 1, + "markdownDescription": "The policy of the pod identity association.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, "ExternalId": { "description": "The External Id of the pod identity association.", "type": "string", diff --git a/server/schema/resources/aws-elasticache-replicationgroup.json b/server/schema/resources/aws-elasticache-replicationgroup.json index e2e40c17..334458e6 100644 --- a/server/schema/resources/aws-elasticache-replicationgroup.json +++ b/server/schema/resources/aws-elasticache-replicationgroup.json @@ -1,250 +1,296 @@ { "typeName": "AWS::ElastiCache::ReplicationGroup", - "description": "Resource Type definition for AWS::ElastiCache::ReplicationGroup", + "description": "Resource type definition for AWS::ElastiCache::ReplicationGroup", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticache", "additionalProperties": false, "properties": { + "ReplicationGroupId": { + "description": "The replication group identifier. This parameter is stored as a lowercase string.", + "type": "string", + "markdownDescription": "The replication group identifier. This parameter is stored as a lowercase string.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "PreferredCacheClusterAZs": { + "description": "A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead.", "type": "array", - "uniqueItems": true, + "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, - "ReaderEndPointPort": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "PrimaryEndPoint": { + "$ref": "#/definitions/Endpoint", + "description": "The primary endpoint configuration", + "markdownDescription": "The primary endpoint configuration\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, - "NodeGroupConfiguration": { + "CacheSecurityGroupNames": { + "description": "A list of cache security group names to associate with this replication group.", "type": "array", "uniqueItems": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of cache security group names to associate with this replication group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NodeGroupConfiguration": { + "description": "NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache (ElastiCache) Redis cluster node group.", + "type": "array", + "uniqueItems": false, "items": { "$ref": "#/definitions/NodeGroupConfiguration" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache (ElastiCache) Redis cluster node group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" + }, + "LogDeliveryConfigurations": { + "description": "Specifies the destination, format and type of the logs.", + "type": "array", + "items": { + "$ref": "#/definitions/LogDeliveryConfigurationRequest" + }, + "markdownDescription": "Specifies the destination, format and type of the logs.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SnapshotArns": { + "description": "A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3.", "type": "array", "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, - "ConfigurationEndPointPort": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "UserGroupIds": { + "description": "The ID of user group to associate with the replication group.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The ID of user group to associate with the replication group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ConfigurationEndPoint": { + "$ref": "#/definitions/Endpoint", + "description": "The configuration details of the replication group.", + "markdownDescription": "The configuration details of the replication group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReadEndPoint": { + "type": "object", + "additionalProperties": false, + "properties": { + "Addresses": { + "description": "A string containing a comma-separated list of endpoints for the primary and read-only replicas, formatted as [address1, address2, ...]. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.", + "type": "string", + "markdownDescription": "A string containing a comma-separated list of endpoints for the primary and read-only replicas, formatted as [address1, address2, ...]. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AddressesList": { + "description": "A list of endpoints for the read-only replicas. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.", + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of endpoints for the read-only replicas. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Ports": { + "description": "A string containing a comma-separated list of ports for the read-only replicas, formatted as [port1, port2, ...]. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.", + "type": "string", + "markdownDescription": "A string containing a comma-separated list of ports for the read-only replicas, formatted as [port1, port2, ...]. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PortsList": { + "description": "A list of ports for the read-only replicas. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.", + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of ports for the read-only replicas. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReaderEndPoint": { + "$ref": "#/definitions/Endpoint", + "description": "The endpoint of the reader node in the replication group.", + "markdownDescription": "The endpoint of the reader node in the replication group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, "Port": { + "description": "The port number on which each member of the replication group accepts connections.", "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + "markdownDescription": "The port number on which each member of the replication group accepts connections.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" }, "NumNodeGroups": { + "description": "An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group. For Redis (cluster mode disabled) either omit this parameter or set it to 1.", "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "default": 1, + "markdownDescription": "An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group. For Redis (cluster mode disabled) either omit this parameter or set it to 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "NotificationTopicArn": { + "description": "The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SnapshotName": { + "description": "The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to restoring while the new replication group is being created.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to restoring while the new replication group is being created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "AutomaticFailoverEnabled": { + "description": "Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups.", "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "default": false, + "markdownDescription": "Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "ReplicasPerNodeGroup": { + "description": "An optional parameter that specifies the number of replica nodes in each node group (shard). Valid values are 0 to 5.", "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + "markdownDescription": "An optional parameter that specifies the number of replica nodes in each node group (shard). Valid values are 0 to 5.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "ReplicationGroupDescription": { + "description": "A user-created description for the replication group.", + "type": "string", + "markdownDescription": "A user-created description for the replication group.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "MultiAZEnabled": { + "description": "A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see Minimizing Downtime: Multi-AZ.", + "type": "boolean", + "markdownDescription": "A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see Minimizing Downtime: Multi-AZ.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "TransitEncryptionEnabled": { + "description": "A flag that enables in-transit encryption when set to true.", "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "default": false, + "markdownDescription": "A flag that enables in-transit encryption when set to true.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Engine": { + "description": "The name of the cache engine to be used for the clusters in this replication group.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the cache engine to be used for the clusters in this replication group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Tags": { + "description": "A list of cost allocation tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.", "type": "array", "uniqueItems": false, "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of cost allocation tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "PrimaryEndPointAddress": { + "NumCacheClusters": { + "description": "The number of clusters this replication group initially has.This parameter is not used if there is more than one node group (shard). You should use ReplicasPerNodeGroup instead.", + "type": "integer", + "markdownDescription": "The number of clusters this replication group initially has.This parameter is not used if there is more than one node group (shard). You should use ReplicasPerNodeGroup instead.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "EngineVersion": { + "description": "The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "GlobalReplicationGroupId": { + "KmsKeyId": { + "description": "The ID of the KMS key used to encrypt the disk on the cluster.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The ID of the KMS key used to encrypt the disk on the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "ConfigurationEndPointAddress": { + "CacheSubnetGroupName": { + "description": "The name of the cache subnet group to be used for the replication group.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the cache subnet group to be used for the replication group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "EngineVersion": { + "CacheParameterGroupName": { + "description": "The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "KmsKeyId": { + "PreferredMaintenanceWindow": { + "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", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "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.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PrimaryClusterId": { + "description": "The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of available.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of available.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ReadEndPointPorts": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "AtRestEncryptionEnabled": { + "description": "A flag that enables encryption at rest when set to true.AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group.", + "type": "boolean", + "default": false, + "markdownDescription": "A flag that enables encryption at rest when set to true.AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "AutoMinorVersionUpgrade": { + "description": "This parameter is currently disabled.", "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "This parameter is currently disabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "SecurityGroupIds": { + "description": "One or more Amazon VPC security groups associated with this replication group.", "type": "array", "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "One or more Amazon VPC security groups associated with this replication group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SnapshotWindow": { + "description": "The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "TransitEncryptionMode": { + "CacheNodeType": { + "description": "The compute and memory capacity of the nodes in the node group (shard).", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The compute and memory capacity of the nodes in the node group (shard).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "SnapshotRetentionLimit": { + "description": "The number of days for which ElastiCache 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", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "ReadEndPointAddressesList": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "default": 0, + "markdownDescription": "The number of days for which ElastiCache 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.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "SnapshottingClusterId": { + "description": "The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "IpDiscovery": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ReadEndPointAddresses": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "PrimaryEndPointPort": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "CacheSecurityGroupNames": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ClusterMode": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ReadEndPointPortsList": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "SnapshotName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "ReplicationGroupDescription": { + "AuthToken": { + "description": "Reserved parameter. The password used to access a password protected server.AuthToken can be specified only on replication groups where TransitEncryptionEnabled is true. For more information.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Reserved parameter. The password used to access a password protected server.AuthToken can be specified only on replication groups where TransitEncryptionEnabled is true. For more information.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Some interruptions\n" }, - "ReaderEndPointAddress": { + "IpDiscovery": { + "description": "The network type you choose when creating a replication group, either ipv4 | ipv6. IPv6 is supported for workloads using Redis OSS engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "MultiAZEnabled": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "The network type you choose when creating a replication group, either ipv4 | ipv6. IPv6 is supported for workloads using Redis OSS engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "NetworkType": { + "description": "Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis OSS engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "ReplicationGroupId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\nRead only property: Yes" - }, - "NumCacheClusters": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "CacheSubnetGroupName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis OSS engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "CacheParameterGroupName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "PreferredMaintenanceWindow": { + "GlobalReplicationGroupId": { + "description": "The name of the Global datastore", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the Global datastore\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "AtRestEncryptionEnabled": { + "DataTieringEnabled": { + "description": "Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes.", "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "markdownDescription": "Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, - "CacheNodeType": { + "TransitEncryptionMode": { + "description": "A setting that allows you to migrate your clients to use in-transit encryption, with no downtime. When setting TransitEncryptionEnabled to true, you can set your TransitEncryptionMode to preferred in the same request, to allow both encrypted and unencrypted connections at the same time. Once you migrate all your Redis OSS clients to use encrypted connections you can modify the value to required to allow encrypted connections only. Setting TransitEncryptionMode to required is a two-step process that requires you to first set the TransitEncryptionMode to preferred, after that you can set TransitEncryptionMode to required. This process will not trigger the replacement of the replication group.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "A setting that allows you to migrate your clients to use in-transit encryption, with no downtime. When setting TransitEncryptionEnabled to true, you can set your TransitEncryptionMode to preferred in the same request, to allow both encrypted and unencrypted connections at the same time. Once you migrate all your Redis OSS clients to use encrypted connections you can modify the value to required to allow encrypted connections only. Setting TransitEncryptionMode to required is a two-step process that requires you to first set the TransitEncryptionMode to preferred, after that you can set TransitEncryptionMode to required. This process will not trigger the replacement of the replication group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "UserGroupIds": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "AuthToken": { + "ClusterMode": { + "description": "Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first set the cluster mode to Compatible. Compatible mode allows your Redis OSS clients to connect using both cluster mode enabled and cluster mode disabled. After you migrate all Redis OSS clients to use cluster mode enabled, you can then complete cluster mode configuration and set the cluster mode to Enabled. For more information, see Modify cluster mode.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "DataTieringEnabled": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" - }, - "LogDeliveryConfigurations": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/LogDeliveryConfigurationRequest" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first set the cluster mode to Compatible. Compatible mode allows your Redis OSS clients to connect using both cluster mode enabled and cluster mode disabled. After you migrate all Redis OSS clients to use cluster mode enabled, you can then complete cluster mode configuration and set the cluster mode to Enabled. For more information, see Modify cluster mode.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "definitions": { @@ -252,86 +298,112 @@ "type": "object", "additionalProperties": false, "properties": { - "LogType": { + "DestinationDetails": { + "$ref": "#/definitions/DestinationDetails" + }, + "DestinationType": { + "description": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type. Valid values are either cloudwatch-logs or kinesis-firehose.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type. Valid values are either cloudwatch-logs or kinesis-firehose.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "LogFormat": { + "description": "Valid values are either json or text.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Valid values are either json or text.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "DestinationType": { + "LogType": { + "description": "Valid value is either slow-log, which refers to slow-log or engine-log.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "DestinationDetails": { - "$ref": "#/definitions/DestinationDetails" + "markdownDescription": "Valid value is either slow-log, which refers to slow-log or engine-log.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "LogFormat", - "LogType", + "DestinationDetails", "DestinationType", - "DestinationDetails" + "LogFormat", + "LogType" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "KinesisFirehoseDestinationDetails": { + "DestinationDetails": { + "description": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination.", "type": "object", "additionalProperties": false, "properties": { - "DeliveryStream": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "CloudWatchLogsDetails": { + "$ref": "#/definitions/CloudWatchLogsDestinationDetails" + }, + "KinesisFirehoseDetails": { + "$ref": "#/definitions/KinesisFirehoseDestinationDetails" } }, - "required": [ - "DeliveryStream" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "CloudWatchLogsDestinationDetails": { + "description": "The configuration details of the CloudWatch Logs destination. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination.", "type": "object", "additionalProperties": false, "properties": { "LogGroup": { + "description": "The name of the CloudWatch Logs log group.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the CloudWatch Logs log group.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "LogGroup" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The configuration details of the CloudWatch Logs destination. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KinesisFirehoseDestinationDetails": { + "description": "The configuration details of the Kinesis Data Firehose destination. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination.", + "type": "object", + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "description": "The name of the Kinesis Data Firehose delivery stream.", + "type": "string", + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DeliveryStream" + ], + "markdownDescription": "The configuration details of the Kinesis Data Firehose destination. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "NodeGroupConfiguration": { "type": "object", "additionalProperties": false, "properties": { "Slots": { + "description": "A string of comma-separated values where the first set of values are the slot numbers (zero based), and the second set of values are the keyspaces for each slot. The following example specifies three slots (numbered 0, 1, and 2): 0,1,2,0-4999,5000-9999,10000-16,383.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "A string of comma-separated values where the first set of values are the slot numbers (zero based), and the second set of values are the keyspaces for each slot. The following example specifies three slots (numbered 0, 1, and 2): 0,1,2,0-4999,5000-9999,10000-16,383.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PrimaryAvailabilityZone": { + "description": "The Availability Zone where the primary node of this node group (shard) is launched.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The Availability Zone where the primary node of this node group (shard) is launched.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ReplicaAvailabilityZones": { + "description": "A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of ReplicaCount or ReplicasPerNodeGroup if not specified.", "type": "array", - "uniqueItems": true, + "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of ReplicaCount or ReplicasPerNodeGroup if not specified.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "NodeGroupId": { + "description": "Either the ElastiCache for Redis supplied 4-digit id or a user supplied id for the node group these configuration values apply to.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Either the ElastiCache for Redis supplied 4-digit id or a user supplied id for the node group these configuration values apply to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ReplicaCount": { + "description": "The number of read replica nodes in this node group (shard).", "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The number of read replica nodes in this node group (shard).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -340,13 +412,15 @@ "type": "object", "additionalProperties": false, "properties": { - "Value": { + "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "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 -.", + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Key": { + "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "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 -.", + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -355,57 +429,227 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "DestinationDetails": { + "Endpoint": { "type": "object", "additionalProperties": false, "properties": { - "CloudWatchLogsDetails": { - "$ref": "#/definitions/CloudWatchLogsDestinationDetails" + "Address": { + "description": "The DNS hostname of the cache node.", + "type": "string", + "markdownDescription": "The DNS hostname of the cache node.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "KinesisFirehoseDetails": { - "$ref": "#/definitions/KinesisFirehoseDestinationDetails" + "Port": { + "description": "The port number that the cache engine is listening on.", + "type": "string", + "markdownDescription": "The port number that the cache engine is listening on.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ "ReplicationGroupDescription" ], + "deprecatedProperties": [ + "/properties/CacheSecurityGroupNames" + ], "createOnlyProperties": [ - "/properties/KmsKeyId", - "/properties/Port", - "/properties/SnapshotArns", - "/properties/SnapshotName", + "/properties/AtRestEncryptionEnabled", "/properties/CacheSubnetGroupName", - "/properties/NetworkType", "/properties/DataTieringEnabled", - "/properties/AtRestEncryptionEnabled", - "/properties/ReplicationGroupId", "/properties/GlobalReplicationGroupId", + "/properties/KmsKeyId", + "/properties/NetworkType", + "/properties/Port", + "/properties/PreferredCacheClusterAZs", "/properties/ReplicasPerNodeGroup", - "/properties/PreferredCacheClusterAZs" + "/properties/ReplicationGroupId", + "/properties/SnapshotArns", + "/properties/SnapshotName" + ], + "conditionalCreateOnlyProperties": [ + "/properties/AuthToken", + "/properties/NodeGroupConfiguration" ], "primaryIdentifier": [ "/properties/ReplicationGroupId" ], "readOnlyProperties": [ - "/properties/ConfigurationEndPoint.Address", - "/properties/PrimaryEndPoint.Address", - "/properties/PrimaryEndPoint.Port", - "/properties/ReaderEndPoint.Address", - "/properties/ConfigurationEndPoint.Port", - "/properties/ReadEndPoint.Addresses.List", - "/properties/ReadEndPoint.Ports.List", - "/properties/ReaderEndPoint.Port", - "/properties/ReadEndPoint.Addresses", - "/properties/ReadEndPoint.Ports", - "/properties/ReplicationGroupId" + "/properties/ConfigurationEndPoint", + "/properties/ConfigurationEndPoint/Address", + "/properties/ConfigurationEndPoint/Port", + "/properties/PrimaryEndPoint", + "/properties/PrimaryEndPoint/Address", + "/properties/PrimaryEndPoint/Port", + "/properties/ReadEndPoint", + "/properties/ReadEndPoint/Addresses", + "/properties/ReadEndPoint/AddressesList", + "/properties/ReadEndPoint/Ports", + "/properties/ReadEndPoint/PortsList", + "/properties/ReaderEndPoint", + "/properties/ReaderEndPoint/Address", + "/properties/ReaderEndPoint/Port" + ], + "writeOnlyProperties": [ + "/properties/AuthToken", + "/properties/CacheParameterGroupName", + "/properties/CacheSecurityGroupNames", + "/properties/CacheSubnetGroupName", + "/properties/EngineVersion", + "/properties/NotificationTopicArn", + "/properties/PreferredMaintenanceWindow", + "/properties/SecurityGroupIds", + "/properties/SnapshotArns", + "/properties/SnapshotName", + "/properties/NodeGroupConfiguration", + "/properties/NumNodeGroups", + "/properties/ReplicasPerNodeGroup", + "/properties/KmsKeyId", + "/properties/PrimaryClusterId", + "/properties/PreferredCacheClusterAZs" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "elasticache:CreateReplicationGroup", + "elasticache:DescribeReplicationGroups", + "elasticache:ModifyReplicationGroup", + "elasticache:AddTagsToResource", + "logs:CreateLogStream", + "logs:PutLogEvents", + "logs:CreateLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "firehose:PutRecord", + "firehose:PutRecordBatch", + "firehose:TagDeliveryStream", + "iam:CreateServiceLinkedRole", + "kms:Decrypt", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:CreateGrant", + "kms:DescribeKey", + "s3:GetObject" + ], + "timeoutInMinutes": 300 + }, + "read": { + "permissions": [ + "elasticache:DescribeReplicationGroups", + "elasticache:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "elasticache:ModifyReplicationGroup", + "elasticache:ModifyReplicationGroupShardConfiguration", + "elasticache:DescribeReplicationGroups", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource", + "elasticache:CreateCacheCluster", + "elasticache:DeleteCacheCluster", + "elasticache:DescribeCacheClusters", + "logs:CreateLogStream", + "logs:PutLogEvents", + "logs:CreateLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "firehose:PutRecord", + "firehose:PutRecordBatch", + "s3:GetObject", + "firehose:TagDeliveryStream", + "kms:Decrypt", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:CreateGrant", + "kms:DescribeKey", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 1440 + }, + "delete": { + "permissions": [ + "elasticache:DeleteReplicationGroup", + "elasticache:DescribeReplicationGroups", + "elasticache:CreateSnapshot" + ], + "timeoutInMinutes": 300 + }, + "list": { + "permissions": [ + "elasticache:DescribeReplicationGroups" + ] + } + }, "attributes": { - "ReplicationGroupId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\nRead only property: Yes" + "PrimaryEndPoint": { + "$ref": "#/definitions/Endpoint", + "description": "The primary endpoint configuration", + "markdownDescription": "The primary endpoint configuration\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConfigurationEndPoint": { + "$ref": "#/definitions/Endpoint", + "description": "The configuration details of the replication group.", + "markdownDescription": "The configuration details of the replication group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReadEndPoint": { + "type": "object", + "additionalProperties": false, + "properties": { + "Addresses": { + "description": "A string containing a comma-separated list of endpoints for the primary and read-only replicas, formatted as [address1, address2, ...]. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.", + "type": "string", + "markdownDescription": "A string containing a comma-separated list of endpoints for the primary and read-only replicas, formatted as [address1, address2, ...]. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AddressesList": { + "description": "A list of endpoints for the read-only replicas. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.", + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of endpoints for the read-only replicas. The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Ports": { + "description": "A string containing a comma-separated list of ports for the read-only replicas, formatted as [port1, port2, ...]. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.", + "type": "string", + "markdownDescription": "A string containing a comma-separated list of ports for the read-only replicas, formatted as [port1, port2, ...]. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PortsList": { + "description": "A list of ports for the read-only replicas. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.", + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of ports for the read-only replicas. The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReaderEndPoint": { + "$ref": "#/definitions/Endpoint", + "description": "The endpoint of the reader node in the replication group.", + "markdownDescription": "The endpoint of the reader node in the replication group.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-elasticloadbalancingv2-listener.json b/server/schema/resources/aws-elasticloadbalancingv2-listener.json index d00ecffb..41916742 100644 --- a/server/schema/resources/aws-elasticloadbalancingv2-listener.json +++ b/server/schema/resources/aws-elasticloadbalancingv2-listener.json @@ -41,7 +41,8 @@ "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeListeners", "cognito-idp:DescribeUserPoolClient", - "elasticloadbalancing:ModifyListenerAttributes" + "elasticloadbalancing:ModifyListenerAttributes", + "elasticloadbalancing:DescribeListenerAttributes" ] }, "list": { @@ -99,9 +100,9 @@ "markdownDescription": "Indicates whether expired client certificates are ignored.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Mode": { - "description": "The client certificate handling method. Options are ``off``, ``passthrough`` or ``verify``. The default value is ``off``.", + "description": "The client certificate handling method. Options are ``off``, ``passthrough`` or ``verify``. The default value on initial resource creation is ``off``. After mutual authentication is turned on, you must explicitly set the ``Mode`` to ``off`` to turn it off; removing the property from your template will not turn it off.", "type": "string", - "markdownDescription": "The client certificate handling method. Options are ``off``, ``passthrough`` or ``verify``. The default value is ``off``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The client certificate handling method. Options are ``off``, ``passthrough`` or ``verify``. The default value on initial resource creation is ``off``. After mutual authentication is turned on, you must explicitly set the ``Mode`` to ``off`` to turn it off; removing the property from your template will not turn it off.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TrustStoreArn": { "description": "The Amazon Resource Name (ARN) of the trust store.", @@ -134,32 +135,6 @@ }, "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "FixedResponseConfig": { - "description": "Specifies information required when returning a custom HTTP response.", - "additionalProperties": false, - "type": "object", - "properties": { - "ContentType": { - "description": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json", - "type": "string", - "markdownDescription": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "StatusCode": { - "description": "The HTTP response code (2XX, 4XX, or 5XX).", - "type": "string", - "markdownDescription": "The HTTP response code (2XX, 4XX, or 5XX).\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "MessageBody": { - "description": "The message.", - "type": "string", - "markdownDescription": "The message.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "StatusCode" - ], - "markdownDescription": "Specifies information required when returning a custom HTTP response.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "Action": { "description": "Specifies an action for a listener rule.", "additionalProperties": false, @@ -171,9 +146,9 @@ "markdownDescription": "The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "TargetGroupArn": { - "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.", + "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "FixedResponseConfig": { "description": "[Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when ``Type`` is ``fixed-response``.", @@ -195,10 +170,15 @@ "$ref": "#/definitions/RedirectConfig", "markdownDescription": "[Application Load Balancer] Information for creating a redirect action. Specify only when ``Type`` is ``redirect``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "JwtValidationConfig": { + "description": "[HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when ``Type`` is ``jwt-validation``.", + "$ref": "#/definitions/JwtValidationConfig", + "markdownDescription": "[HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when ``Type`` is ``jwt-validation``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "$ref": "#/definitions/ForwardConfig", - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { "description": "[HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when ``Type`` is ``authenticate-oidc``.", @@ -211,6 +191,68 @@ ], "markdownDescription": "Specifies an action for a listener rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TargetGroupStickinessConfig": { + "description": "Information about the target group stickiness for a rule.", + "additionalProperties": false, + "type": "object", + "properties": { + "Enabled": { + "description": "Indicates whether target group stickiness is enabled.", + "type": "boolean", + "markdownDescription": "Indicates whether target group stickiness is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "DurationSeconds": { + "description": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", + "type": "integer", + "markdownDescription": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about the target group stickiness for a rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ListenerAttribute": { + "description": "Information about a listener attribute.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The value of the attribute.", + "type": "string", + "markdownDescription": "The value of the attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "The name of the attribute.\n The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.\n + ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.\n \n The following attributes are only supported by Application Load Balancers.\n + ``routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Serial-Number* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Issuer* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_subject.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Subject* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_validity.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Validity* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Leaf* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert* HTTP request header.\n + ``routing.http.request.x_amzn_tls_version.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Version* HTTP request header.\n + ``routing.http.request.x_amzn_tls_cipher_suite.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Cipher-Suite* HTTP request header.\n + ``routing.http.response.server.enabled`` - Enables you to allow or remove the HTTP response server header.\n + ``routing.http.response.strict_transport_security.header_value`` - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS.\n + ``routing.http.response.access_control_allow_origin.header_value`` - Specifies which origins are allowed to access the server.\n + ``routing.http.response.access_control_allow_methods.header_value`` - Returns which HTTP methods are allowed when accessing the server from a different origin.\n + ``routing.http.response.access_control_allow_headers.header_value`` - Specifies which headers can be used during the request.\n + ``routing.http.response.access_control_allow_credentials.header_value`` - Indicates whether the browser should include credentials such as cookies or authentication when making requests.\n + ``routing.http.response.access_control_expose_headers.header_value`` - Returns which headers the browser can expose to the requesting client.\n + ``routing.http.response.access_control_max_age.header_value`` - Specifies how long the results of a preflight request can be cached, in seconds.\n + ``routing.http.response.content_security_policy.header_value`` - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats.\n + ``routing.http.response.x_content_type_options.header_value`` - Indicates whether the MIME types advertised in the *Content-Type* headers should be followed and not be changed.\n + ``routing.http.response.x_frame_options.header_value`` - Indicates whether the browser is allowed to render a page in a *frame*, *iframe*, *embed* or *object*.", + "type": "string", + "markdownDescription": "The name of the attribute.\n The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.\n + ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.\n \n The following attributes are only supported by Application Load Balancers.\n + ``routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Serial-Number* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Issuer* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_subject.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Subject* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_validity.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Validity* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Leaf* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert* HTTP request header.\n + ``routing.http.request.x_amzn_tls_version.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Version* HTTP request header.\n + ``routing.http.request.x_amzn_tls_cipher_suite.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Cipher-Suite* HTTP request header.\n + ``routing.http.response.server.enabled`` - Enables you to allow or remove the HTTP response server header.\n + ``routing.http.response.strict_transport_security.header_value`` - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS.\n + ``routing.http.response.access_control_allow_origin.header_value`` - Specifies which origins are allowed to access the server.\n + ``routing.http.response.access_control_allow_methods.header_value`` - Returns which HTTP methods are allowed when accessing the server from a different origin.\n + ``routing.http.response.access_control_allow_headers.header_value`` - Specifies which headers can be used during the request.\n + ``routing.http.response.access_control_allow_credentials.header_value`` - Indicates whether the browser should include credentials such as cookies or authentication when making requests.\n + ``routing.http.response.access_control_expose_headers.header_value`` - Returns which headers the browser can expose to the requesting client.\n + ``routing.http.response.access_control_max_age.header_value`` - Specifies how long the results of a preflight request can be cached, in seconds.\n + ``routing.http.response.content_security_policy.header_value`` - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats.\n + ``routing.http.response.x_content_type_options.header_value`` - Indicates whether the MIME types advertised in the *Content-Type* headers should be followed and not be changed.\n + ``routing.http.response.x_frame_options.header_value`` - Indicates whether the browser is allowed to render a page in a *frame*, *iframe*, *embed* or *object*.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about a listener attribute.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FixedResponseConfig": { + "description": "Specifies information required when returning a custom HTTP response.", + "additionalProperties": false, + "type": "object", + "properties": { + "ContentType": { + "description": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json", + "type": "string", + "markdownDescription": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "StatusCode": { + "description": "The HTTP response code (2XX, 4XX, or 5XX).", + "type": "string", + "markdownDescription": "The HTTP response code (2XX, 4XX, or 5XX).\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "MessageBody": { + "description": "The message.", + "type": "string", + "markdownDescription": "The message.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "StatusCode" + ], + "markdownDescription": "Specifies information required when returning a custom HTTP response.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "AuthenticateCognitoConfig": { "description": "Specifies information required when integrating with Amazon Cognito to authenticate users.", "additionalProperties": false, @@ -284,6 +326,39 @@ ], "markdownDescription": "Specifies information required when integrating with Amazon Cognito to authenticate users.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "JwtValidationActionAdditionalClaim": { + "description": "Information about an additional claim to validate.", + "additionalProperties": false, + "type": "object", + "properties": { + "Format": { + "description": "The format of the claim value.", + "type": "string", + "markdownDescription": "The format of the claim value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Values": { + "uniqueItems": true, + "description": "The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is ``space-separated-values``, the values can't include spaces.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is ``space-separated-values``, the values can't include spaces.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the claim. You can't specify ``exp``, ``iss``, ``nbf``, or ``iat`` because we validate them by default.", + "type": "string", + "markdownDescription": "The name of the claim. You can't specify ``exp``, ``iss``, ``nbf``, or ``iat`` because we validate them by default.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Format", + "Name", + "Values" + ], + "markdownDescription": "Information about an additional claim to validate.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RedirectConfig": { "description": "Information about a redirect action.\n A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.\n You can reuse URI components using the following reserved keywords:\n + #{protocol}\n + #{host}\n + #{port}\n + #{path} (the leading \"/\" is removed)\n + #{query}\n \n For example, you can change the path to \"/new/#{path}\", the hostname to \"example.#{host}\", or the query to \"#{query}&value=xyz\".", "additionalProperties": false, @@ -325,44 +400,39 @@ ], "markdownDescription": "Information about a redirect action.\n A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.\n You can reuse URI components using the following reserved keywords:\n + #{protocol}\n + #{host}\n + #{port}\n + #{path} (the leading \"/\" is removed)\n + #{query}\n \n For example, you can change the path to \"/new/#{path}\", the hostname to \"example.#{host}\", or the query to \"#{query}&value=xyz\".\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TargetGroupStickinessConfig": { - "description": "Information about the target group stickiness for a rule.", - "additionalProperties": false, - "type": "object", - "properties": { - "Enabled": { - "description": "Indicates whether target group stickiness is enabled.", - "type": "boolean", - "markdownDescription": "Indicates whether target group stickiness is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "DurationSeconds": { - "description": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", - "type": "integer", - "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "Information about the target group stickiness for a rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ListenerAttribute": { - "description": "Information about a listener attribute.", + "JwtValidationConfig": { + "description": "", "additionalProperties": false, "type": "object", "properties": { - "Value": { - "description": "The value of the attribute.", + "JwksEndpoint": { + "description": "", "type": "string", - "markdownDescription": "The value of the attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Key": { - "description": "The name of the attribute.\n The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.\n + ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.\n \n The following attributes are only supported by Application Load Balancers.\n + ``routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Serial-Number* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Issuer* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_subject.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Subject* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_validity.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Validity* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Leaf* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert* HTTP request header.\n + ``routing.http.request.x_amzn_tls_version.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Version* HTTP request header.\n + ``routing.http.request.x_amzn_tls_cipher_suite.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Cipher-Suite* HTTP request header.\n + ``routing.http.response.server.enabled`` - Enables you to allow or remove the HTTP response server header.\n + ``routing.http.response.strict_transport_security.header_value`` - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS.\n + ``routing.http.response.access_control_allow_origin.header_value`` - Specifies which origins are allowed to access the server.\n + ``routing.http.response.access_control_allow_methods.header_value`` - Returns which HTTP methods are allowed when accessing the server from a different origin.\n + ``routing.http.response.access_control_allow_headers.header_value`` - Specifies which headers can be used during the request.\n + ``routing.http.response.access_control_allow_credentials.header_value`` - Indicates whether the browser should include credentials such as cookies or authentication when making requests.\n + ``routing.http.response.access_control_expose_headers.header_value`` - Returns which headers the browser can expose to the requesting client.\n + ``routing.http.response.access_control_max_age.header_value`` - Specifies how long the results of a preflight request can be cached, in seconds.\n + ``routing.http.response.content_security_policy.header_value`` - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats.\n + ``routing.http.response.x_content_type_options.header_value`` - Indicates whether the MIME types advertised in the *Content-Type* headers should be followed and not be changed.\n + ``routing.http.response.x_frame_options.header_value`` - Indicates whether the browser is allowed to render a page in a *frame*, *iframe*, *embed* or *object*.", + "Issuer": { + "description": "", "type": "string", - "markdownDescription": "The name of the attribute.\n The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.\n + ``tcp.idle_timeout.seconds`` - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.\n \n The following attributes are only supported by Application Load Balancers.\n + ``routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Serial-Number* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Issuer* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_subject.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Subject* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_validity.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Validity* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert-Leaf* HTTP request header.\n + ``routing.http.request.x_amzn_mtls_clientcert.header_name`` - Enables you to modify the header name of the *X-Amzn-Mtls-Clientcert* HTTP request header.\n + ``routing.http.request.x_amzn_tls_version.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Version* HTTP request header.\n + ``routing.http.request.x_amzn_tls_cipher_suite.header_name`` - Enables you to modify the header name of the *X-Amzn-Tls-Cipher-Suite* HTTP request header.\n + ``routing.http.response.server.enabled`` - Enables you to allow or remove the HTTP response server header.\n + ``routing.http.response.strict_transport_security.header_value`` - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS.\n + ``routing.http.response.access_control_allow_origin.header_value`` - Specifies which origins are allowed to access the server.\n + ``routing.http.response.access_control_allow_methods.header_value`` - Returns which HTTP methods are allowed when accessing the server from a different origin.\n + ``routing.http.response.access_control_allow_headers.header_value`` - Specifies which headers can be used during the request.\n + ``routing.http.response.access_control_allow_credentials.header_value`` - Indicates whether the browser should include credentials such as cookies or authentication when making requests.\n + ``routing.http.response.access_control_expose_headers.header_value`` - Returns which headers the browser can expose to the requesting client.\n + ``routing.http.response.access_control_max_age.header_value`` - Specifies how long the results of a preflight request can be cached, in seconds.\n + ``routing.http.response.content_security_policy.header_value`` - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats.\n + ``routing.http.response.x_content_type_options.header_value`` - Indicates whether the MIME types advertised in the *Content-Type* headers should be followed and not be changed.\n + ``routing.http.response.x_frame_options.header_value`` - Indicates whether the browser is allowed to render a page in a *frame*, *iframe*, *embed* or *object*.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AdditionalClaims": { + "uniqueItems": true, + "description": "", + "type": "array", + "items": { + "$ref": "#/definitions/JwtValidationActionAdditionalClaim" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information about a listener attribute.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "JwksEndpoint", + "Issuer" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "additionalProperties": false, "type": "object", "properties": { @@ -381,7 +451,7 @@ "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { "anyOf": [ @@ -569,9 +639,9 @@ "markdownDescription": "The default SSL server certificate for a secure listener. You must provide exactly one certificate if the listener protocol is HTTPS or TLS.\n For an HTTPS listener, update requires some interruptions. For a TLS listener, update requires no interruption.\n To create a certificate list for a secure listener, use [AWS::ElasticLoadBalancingV2::ListenerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html).\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Protocol": { - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can\u2019t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.", + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, TCP_UDP, QUIC, and TCP_QUIC. You can\u2019t specify the UDP, TCP_UDP, QUIC, or TCP_QUIC protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.", "type": "string", - "markdownDescription": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can\u2019t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, TCP_UDP, QUIC, and TCP_QUIC. You can\u2019t specify the UDP, TCP_UDP, QUIC, or TCP_QUIC protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "attributes": { diff --git a/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json b/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json index 2a02fd6f..f920d4e4 100644 --- a/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json +++ b/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json @@ -1,355 +1,333 @@ { - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule", - "readOnlyProperties": [ - "/properties/RuleArn", - "/properties/IsDefault" - ], "description": "Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.\n For more information, see [Quotas for your Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) in the *User Guide for Application Load Balancers*.", - "createOnlyProperties": [ - "/properties/ListenerArn" - ], - "primaryIdentifier": [ - "/properties/RuleArn" - ], - "required": [ - "Actions", - "Priority", - "Conditions" - ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", - "handlers": { - "read": { - "permissions": [ - "elasticloadbalancing:DescribeRules" - ] + "additionalProperties": false, + "properties": { + "ListenerArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the listener.", + "markdownDescription": "The Amazon Resource Name (ARN) of the listener.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "create": { - "permissions": [ - "elasticloadbalancing:CreateRule", - "elasticloadbalancing:DescribeRules", - "cognito-idp:DescribeUserPoolClient" - ] + "RuleArn": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "update": { - "permissions": [ - "elasticloadbalancing:ModifyRule", - "elasticloadbalancing:SetRulePriorities", - "elasticloadbalancing:DescribeRules" - ] + "Actions": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Action" + }, + "description": "The actions.\n The rule must include exactly one of the following types of actions: ``forward``, ``fixed-response``, or ``redirect``, and it must be the last action to be performed. If the rule is for an HTTPS listener, it can also optionally include an authentication action.", + "markdownDescription": "The actions.\n The rule must include exactly one of the following types of actions: ``forward``, ``fixed-response``, or ``redirect``, and it must be the last action to be performed. If the rule is for an HTTPS listener, it can also optionally include an authentication action.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "list": { - "permissions": [ - "elasticloadbalancing:DescribeRules" - ], - "handlerSchema": { - "oneOf": [ - { - "required": [ - "ListenerArn" - ] - }, - { - "required": [ - "RuleArns" - ] - } - ], - "properties": { - "ListenerArn": { - "$ref": "resource-schema.json#/properties/ListenerArn" - }, - "RuleArns": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "resource-schema.json#/properties/RuleArn" - }, - "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" - } - } - } + "Priority": { + "type": "integer", + "description": "The rule priority. A listener can't have multiple rules with the same priority.\n If you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update.", + "markdownDescription": "The rule priority. A listener can't have multiple rules with the same priority.\n If you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "elasticloadbalancing:DeleteRule", - "elasticloadbalancing:DescribeRules" - ] + "Conditions": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/RuleCondition" + }, + "description": "The conditions.\n The rule can optionally include up to one of each of the following conditions: ``http-request-method``, ``host-header``, ``path-pattern``, and ``source-ip``. A rule can also optionally include one or more of each of the following conditions: ``http-header`` and ``query-string``.", + "markdownDescription": "The conditions.\n The rule can optionally include up to one of each of the following conditions: ``http-request-method``, ``host-header``, ``path-pattern``, and ``source-ip``. A rule can also optionally include one or more of each of the following conditions: ``http-header`` and ``query-string``.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Transforms": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Transform" + }, + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IsDefault": { + "type": "boolean", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" } }, - "writeOnlyProperties": [ - "/properties/Actions/*/AuthenticateOidcConfig/ClientSecret", - "/properties/ListenerArn" - ], - "additionalProperties": false, "definitions": { "TargetGroupTuple": { - "description": "Information about how traffic will be distributed between multiple target groups in a forward rule.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "TargetGroupArn": { - "description": "The Amazon Resource Name (ARN) of the target group.", "type": "string", + "description": "The Amazon Resource Name (ARN) of the target group.", "markdownDescription": "The Amazon Resource Name (ARN) of the target group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Weight": { - "description": "The weight. The range is 0 to 999.", "type": "integer", + "description": "The weight. The range is 0 to 999.", "markdownDescription": "The weight. The range is 0 to 999.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, + "description": "Information about how traffic will be distributed between multiple target groups in a forward rule.", "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Action": { - "description": "Specifies an action for a listener rule.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Order": { - "description": "The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.", "type": "integer", + "description": "The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.", "markdownDescription": "The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "TargetGroupArn": { - "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.", + "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "FixedResponseConfig": { - "description": "[Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when ``Type`` is ``fixed-response``.", "$ref": "#/definitions/FixedResponseConfig", + "description": "[Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when ``Type`` is ``fixed-response``.", "markdownDescription": "[Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when ``Type`` is ``fixed-response``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "AuthenticateCognitoConfig": { - "description": "[HTTPS listeners] Information for using Amazon Cognito to authenticate users. Specify only when ``Type`` is ``authenticate-cognito``.", "$ref": "#/definitions/AuthenticateCognitoConfig", + "description": "[HTTPS listeners] Information for using Amazon Cognito to authenticate users. Specify only when ``Type`` is ``authenticate-cognito``.", "markdownDescription": "[HTTPS listeners] Information for using Amazon Cognito to authenticate users. Specify only when ``Type`` is ``authenticate-cognito``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Type": { - "description": "The type of action.", "type": "string", + "description": "The type of action.", "markdownDescription": "The type of action.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "RedirectConfig": { - "description": "[Application Load Balancer] Information for creating a redirect action. Specify only when ``Type`` is ``redirect``.", "$ref": "#/definitions/RedirectConfig", + "description": "[Application Load Balancer] Information for creating a redirect action. Specify only when ``Type`` is ``redirect``.", "markdownDescription": "[Application Load Balancer] Information for creating a redirect action. Specify only when ``Type`` is ``redirect``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "$ref": "#/definitions/ForwardConfig", - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { - "description": "[HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when ``Type`` is ``authenticate-oidc``.", "$ref": "#/definitions/AuthenticateOidcConfig", + "description": "[HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when ``Type`` is ``authenticate-oidc``.", "markdownDescription": "[HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when ``Type`` is ``authenticate-oidc``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "JwtValidationConfig": { + "$ref": "#/definitions/JwtValidationConfig", + "description": "[HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when ``Type`` is ``jwt-validation``.", + "markdownDescription": "[HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when ``Type`` is ``jwt-validation``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ "Type" ], + "description": "Specifies an action for a listener rule.", "markdownDescription": "Specifies an action for a listener rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "RuleCondition": { - "description": "Specifies a condition for a listener rule.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Field": { - "description": "The field in the HTTP request. The following are the possible values:\n + ``http-header`` \n + ``http-request-method`` \n + ``host-header`` \n + ``path-pattern`` \n + ``query-string`` \n + ``source-ip``", "type": "string", + "description": "The field in the HTTP request. The following are the possible values:\n + ``http-header`` \n + ``http-request-method`` \n + ``host-header`` \n + ``path-pattern`` \n + ``query-string`` \n + ``source-ip``", "markdownDescription": "The field in the HTTP request. The following are the possible values:\n + ``http-header`` \n + ``http-request-method`` \n + ``host-header`` \n + ``path-pattern`` \n + ``query-string`` \n + ``source-ip``\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "HttpHeaderConfig": { - "description": "Information for an HTTP header condition. Specify only when ``Field`` is ``http-header``.", - "$ref": "#/definitions/HttpHeaderConfig", - "markdownDescription": "Information for an HTTP header condition. Specify only when ``Field`` is ``http-header``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "RegexValues": { + "$ref": "#/definitions/ListOfStrings", + "description": "The regular expressions to match against the condition field. The maximum length of each string is 128 characters. Specify only when ``Field`` is ``http-header``, ``host-header``, or ``path-pattern``.", + "markdownDescription": "The regular expressions to match against the condition field. The maximum length of each string is 128 characters. Specify only when ``Field`` is ``http-header``, ``host-header``, or ``path-pattern``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Values": { - "description": "The condition value. Specify only when ``Field`` is ``host-header`` or ``path-pattern``. Alternatively, to specify multiple host names or multiple path patterns, use ``HostHeaderConfig`` or ``PathPatternConfig``.\n If ``Field`` is ``host-header`` and you're not using ``HostHeaderConfig``, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters.\n + A-Z, a-z, 0-9\n + - .\n + * (matches 0 or more characters)\n + ? (matches exactly 1 character)\n \n If ``Field`` is ``path-pattern`` and you're not using ``PathPatternConfig``, you can specify a single path pattern (for example, /img/*). A path pattern is case-sensitive, can be up to 128 characters in length, and can contain any of the following characters.\n + A-Z, a-z, 0-9\n + _ - . $ / ~ \" ' @ : +\n + & (using &)\n + * (matches 0 or more characters)\n + ? (matches exactly 1 character)", "$ref": "#/definitions/ListOfStrings", + "description": "The condition value. Specify only when ``Field`` is ``host-header`` or ``path-pattern``. Alternatively, to specify multiple host names or multiple path patterns, use ``HostHeaderConfig`` or ``PathPatternConfig``.\n If ``Field`` is ``host-header`` and you're not using ``HostHeaderConfig``, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters.\n + A-Z, a-z, 0-9\n + - .\n + * (matches 0 or more characters)\n + ? (matches exactly 1 character)\n \n If ``Field`` is ``path-pattern`` and you're not using ``PathPatternConfig``, you can specify a single path pattern (for example, /img/*). A path pattern is case-sensitive, can be up to 128 characters in length, and can contain any of the following characters.\n + A-Z, a-z, 0-9\n + _ - . $ / ~ \" ' @ : +\n + & (using &)\n + * (matches 0 or more characters)\n + ? (matches exactly 1 character)", "markdownDescription": "The condition value. Specify only when ``Field`` is ``host-header`` or ``path-pattern``. Alternatively, to specify multiple host names or multiple path patterns, use ``HostHeaderConfig`` or ``PathPatternConfig``.\n If ``Field`` is ``host-header`` and you're not using ``HostHeaderConfig``, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters.\n + A-Z, a-z, 0-9\n + - .\n + * (matches 0 or more characters)\n + ? (matches exactly 1 character)\n \n If ``Field`` is ``path-pattern`` and you're not using ``PathPatternConfig``, you can specify a single path pattern (for example, /img/*). A path pattern is case-sensitive, can be up to 128 characters in length, and can contain any of the following characters.\n + A-Z, a-z, 0-9\n + _ - . $ / ~ \" ' @ : +\n + & (using &)\n + * (matches 0 or more characters)\n + ? (matches exactly 1 character)\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "QueryStringConfig": { - "description": "Information for a query string condition. Specify only when ``Field`` is ``query-string``.", - "$ref": "#/definitions/QueryStringConfig", - "markdownDescription": "Information for a query string condition. Specify only when ``Field`` is ``query-string``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "HostHeaderConfig": { - "description": "Information for a host header condition. Specify only when ``Field`` is ``host-header``.", - "$ref": "#/definitions/HostHeaderConfig", - "markdownDescription": "Information for a host header condition. Specify only when ``Field`` is ``host-header``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, "HttpRequestMethodConfig": { - "description": "Information for an HTTP method condition. Specify only when ``Field`` is ``http-request-method``.", "$ref": "#/definitions/HttpRequestMethodConfig", + "description": "Information for an HTTP method condition. Specify only when ``Field`` is ``http-request-method``.", "markdownDescription": "Information for an HTTP method condition. Specify only when ``Field`` is ``http-request-method``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "PathPatternConfig": { - "description": "Information for a path pattern condition. Specify only when ``Field`` is ``path-pattern``.", "$ref": "#/definitions/PathPatternConfig", + "description": "Information for a path pattern condition. Specify only when ``Field`` is ``path-pattern``.", "markdownDescription": "Information for a path pattern condition. Specify only when ``Field`` is ``path-pattern``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "HttpHeaderConfig": { + "$ref": "#/definitions/HttpHeaderConfig", + "description": "Information for an HTTP header condition. Specify only when ``Field`` is ``http-header``.", + "markdownDescription": "Information for an HTTP header condition. Specify only when ``Field`` is ``http-header``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "SourceIpConfig": { - "description": "Information for a source IP condition. Specify only when ``Field`` is ``source-ip``.", "$ref": "#/definitions/SourceIpConfig", + "description": "Information for a source IP condition. Specify only when ``Field`` is ``source-ip``.", "markdownDescription": "Information for a source IP condition. Specify only when ``Field`` is ``source-ip``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "HostHeaderConfig": { + "$ref": "#/definitions/HostHeaderConfig", + "description": "Information for a host header condition. Specify only when ``Field`` is ``host-header``.", + "markdownDescription": "Information for a host header condition. Specify only when ``Field`` is ``host-header``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "QueryStringConfig": { + "$ref": "#/definitions/QueryStringConfig", + "description": "Information for a query string condition. Specify only when ``Field`` is ``query-string``.", + "markdownDescription": "Information for a query string condition. Specify only when ``Field`` is ``query-string``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, + "description": "Specifies a condition for a listener rule.", "markdownDescription": "Specifies a condition for a listener rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ListOfStrings": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, "QueryStringConfig": { - "description": "Information about a query string condition.\n The query string component of a URI starts after the first '?' character and is terminated by either a '#' character or the end of the URI. A typical query string contains key/value pairs separated by '&' characters. The allowed characters are specified by RFC 3986. Any character can be percentage encoded.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Values": { + "type": "array", "uniqueItems": true, - "description": "The key/value pairs or values to find in the query string. The maximum size of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). To search for a literal '*' or '?' character in a query string, you must escape these characters in ``Values`` using a '\\' character.\n If you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/QueryStringKeyValue" }, - "markdownDescription": "The key/value pairs or values to find in the query string. The maximum size of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). To search for a literal '*' or '?' character in a query string, you must escape these characters in ``Values`` using a '\\' character.\n If you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "The key/value pairs or values to find in the query string. The maximum length of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). To search for a literal '*' or '?' character in a query string, you must escape these characters in ``Values`` using a '\\' character.\n If you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string.", + "markdownDescription": "The key/value pairs or values to find in the query string. The maximum length of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). To search for a literal '*' or '?' character in a query string, you must escape these characters in ``Values`` using a '\\' character.\n If you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "description": "Information about a query string condition.\n The query string component of a URI starts after the first '?' character and is terminated by either a '#' character or the end of the URI. A typical query string contains key/value pairs separated by '&' characters. The allowed characters are specified by RFC 3986. Any character can be percentage encoded.", "markdownDescription": "Information about a query string condition.\n The query string component of a URI starts after the first '?' character and is terminated by either a '#' character or the end of the URI. A typical query string contains key/value pairs separated by '&' characters. The allowed characters are specified by RFC 3986. Any character can be percentage encoded.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "TargetGroupStickinessConfig": { - "description": "Information about the target group stickiness for a rule.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Enabled": { - "description": "Indicates whether target group stickiness is enabled.", "type": "boolean", + "description": "Indicates whether target group stickiness is enabled.", "markdownDescription": "Indicates whether target group stickiness is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "DurationSeconds": { - "description": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", "type": "integer", - "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", + "markdownDescription": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, + "description": "Information about the target group stickiness for a rule.", "markdownDescription": "Information about the target group stickiness for a rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "PathPatternConfig": { - "description": "Information about a path pattern condition.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "RegexValues": { + "$ref": "#/definitions/ListOfStrings", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Values": { - "description": "The path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string.", "$ref": "#/definitions/ListOfStrings", + "description": "The path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string.", "markdownDescription": "The path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, + "description": "Information about a path pattern condition.", "markdownDescription": "Information about a path pattern condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "FixedResponseConfig": { - "description": "Specifies information required when returning a custom HTTP response.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "ContentType": { - "description": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json", "type": "string", + "description": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json", "markdownDescription": "The content type.\n Valid Values: text/plain | text/css | text/html | application/javascript | application/json\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "StatusCode": { - "description": "The HTTP response code (2XX, 4XX, or 5XX).", "type": "string", + "description": "The HTTP response code (2XX, 4XX, or 5XX).", "markdownDescription": "The HTTP response code (2XX, 4XX, or 5XX).\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "MessageBody": { - "description": "The message.", "type": "string", + "description": "The message.", "markdownDescription": "The message.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "StatusCode" ], + "description": "Specifies information required when returning a custom HTTP response.", "markdownDescription": "Specifies information required when returning a custom HTTP response.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "HttpHeaderConfig": { - "description": "Information about an HTTP header condition.\n There is a set of standard HTTP header fields. You can also define custom HTTP header fields.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "RegexValues": { + "$ref": "#/definitions/ListOfStrings", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Values": { - "description": "The strings to compare against the value of the HTTP header. The maximum size of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If the same header appears multiple times in the request, we search them in order until a match is found.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.", "$ref": "#/definitions/ListOfStrings", - "markdownDescription": "The strings to compare against the value of the HTTP header. The maximum size of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If the same header appears multiple times in the request, we search them in order until a match is found.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The strings to compare against the value of the HTTP header. The maximum length of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If the same header appears multiple times in the request, we search them in order until a match is found.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.", + "markdownDescription": "The strings to compare against the value of the HTTP header. The maximum length of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If the same header appears multiple times in the request, we search them in order until a match is found.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "HttpHeaderName": { - "description": "The name of the HTTP header field. The maximum size is 40 characters. The header name is case insensitive. The allowed characters are specified by RFC 7230. Wildcards are not supported.", "type": "string", + "description": "The name of the HTTP header field. The maximum size is 40 characters. The header name is case insensitive. The allowed characters are specified by RFC 7230. Wildcards are not supported.", "markdownDescription": "The name of the HTTP header field. The maximum size is 40 characters. The header name is case insensitive. The allowed characters are specified by RFC 7230. Wildcards are not supported.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "description": "Information about an HTTP header condition.\n There is a set of standard HTTP header fields. You can also define custom HTTP header fields.", "markdownDescription": "Information about an HTTP header condition.\n There is a set of standard HTTP header fields. You can also define custom HTTP header fields.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AuthenticateCognitoConfig": { - "description": "Specifies information required when integrating with Amazon Cognito to authenticate users.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "OnUnauthenticatedRequest": { - "description": "The behavior if the user is not authenticated. The following are possible values:\n + deny```` - Return an HTTP 401 Unauthorized error.\n + allow```` - Allow the request to be forwarded to the target.\n + authenticate```` - Redirect the request to the IdP authorization endpoint. This is the default value.", "type": "string", + "description": "The behavior if the user is not authenticated. The following are possible values:\n + deny```` - Return an HTTP 401 Unauthorized error.\n + allow```` - Allow the request to be forwarded to the target.\n + authenticate```` - Redirect the request to the IdP authorization endpoint. This is the default value.", "markdownDescription": "The behavior if the user is not authenticated. The following are possible values:\n + deny```` - Return an HTTP 401 Unauthorized error.\n + allow```` - Allow the request to be forwarded to the target.\n + authenticate```` - Redirect the request to the IdP authorization endpoint. This is the default value.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "UserPoolClientId": { - "description": "The ID of the Amazon Cognito user pool client.", "type": "string", + "description": "The ID of the Amazon Cognito user pool client.", "markdownDescription": "The ID of the Amazon Cognito user pool client.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "UserPoolDomain": { - "description": "The domain prefix or fully-qualified domain name of the Amazon Cognito user pool.", "type": "string", + "description": "The domain prefix or fully-qualified domain name of the Amazon Cognito user pool.", "markdownDescription": "The domain prefix or fully-qualified domain name of the Amazon Cognito user pool.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "SessionTimeout": { - "description": "The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).", "type": "integer", + "description": "The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).", "markdownDescription": "The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Scope": { - "description": "The set of user claims to be requested from the IdP. The default is ``openid``.\n To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.", "type": "string", + "description": "The set of user claims to be requested from the IdP. The default is ``openid``.\n To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.", "markdownDescription": "The set of user claims to be requested from the IdP. The default is ``openid``.\n To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "SessionCookieName": { - "description": "The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.", "type": "string", + "description": "The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.", "markdownDescription": "The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "UserPoolArn": { - "description": "The Amazon Resource Name (ARN) of the Amazon Cognito user pool.", "type": "string", + "description": "The Amazon Resource Name (ARN) of the Amazon Cognito user pool.", "markdownDescription": "The Amazon Resource Name (ARN) of the Amazon Cognito user pool.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "AuthenticationRequestExtraParams": { + "type": "object", + "additionalProperties": false, "patternProperties": { "[a-zA-Z0-9]+": { "type": "string", @@ -357,8 +335,6 @@ } }, "description": "The query parameters (up to 10) to include in the redirect request to the authorization endpoint.", - "additionalProperties": false, - "type": "object", "markdownDescription": "The query parameters (up to 10) to include in the redirect request to the authorization endpoint.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, @@ -367,189 +343,184 @@ "UserPoolDomain", "UserPoolArn" ], + "description": "Specifies information required when integrating with Amazon Cognito to authenticate users.", "markdownDescription": "Specifies information required when integrating with Amazon Cognito to authenticate users.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "RedirectConfig": { - "description": "Information about a redirect action.\n A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.\n You can reuse URI components using the following reserved keywords:\n + #{protocol}\n + #{host}\n + #{port}\n + #{path} (the leading \"/\" is removed)\n + #{query}\n \n For example, you can change the path to \"/new/#{path}\", the hostname to \"example.#{host}\", or the query to \"#{query}&value=xyz\".", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Path": { - "description": "The absolute path, starting with the leading \"/\". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}.", "type": "string", + "description": "The absolute path, starting with the leading \"/\". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}.", "markdownDescription": "The absolute path, starting with the leading \"/\". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Query": { - "description": "The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading \"?\", as it is automatically added. You can specify any of the reserved keywords.", "type": "string", + "description": "The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading \"?\", as it is automatically added. You can specify any of the reserved keywords.", "markdownDescription": "The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading \"?\", as it is automatically added. You can specify any of the reserved keywords.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Port": { - "description": "The port. You can specify a value from 1 to 65535 or #{port}.", "type": "string", + "description": "The port. You can specify a value from 1 to 65535 or #{port}.", "markdownDescription": "The port. You can specify a value from 1 to 65535 or #{port}.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Host": { - "description": "The hostname. This component is not percent-encoded. The hostname can contain #{host}.", "type": "string", + "description": "The hostname. This component is not percent-encoded. The hostname can contain #{host}.", "markdownDescription": "The hostname. This component is not percent-encoded. The hostname can contain #{host}.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Protocol": { - "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP.", "type": "string", + "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP.", "markdownDescription": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "StatusCode": { - "description": "The HTTP redirect code. The redirect is either permanent (HTTP 301) or temporary (HTTP 302).", "type": "string", + "description": "The HTTP redirect code. The redirect is either permanent (HTTP 301) or temporary (HTTP 302).", "markdownDescription": "The HTTP redirect code. The redirect is either permanent (HTTP 301) or temporary (HTTP 302).\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "StatusCode" ], + "description": "Information about a redirect action.\n A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.\n You can reuse URI components using the following reserved keywords:\n + #{protocol}\n + #{host}\n + #{port}\n + #{path} (the leading \"/\" is removed)\n + #{query}\n \n For example, you can change the path to \"/new/#{path}\", the hostname to \"example.#{host}\", or the query to \"#{query}&value=xyz\".", "markdownDescription": "Information about a redirect action.\n A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.\n You can reuse URI components using the following reserved keywords:\n + #{protocol}\n + #{host}\n + #{port}\n + #{path} (the leading \"/\" is removed)\n + #{query}\n \n For example, you can change the path to \"/new/#{path}\", the hostname to \"example.#{host}\", or the query to \"#{query}&value=xyz\".\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "QueryStringKeyValue": { - "description": "Information about a key/value pair.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Value": { - "description": "The value.", "type": "string", + "description": "The value.", "markdownDescription": "The value.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Key": { - "description": "The key. You can omit the key.", "type": "string", + "description": "The key. You can omit the key.", "markdownDescription": "The key. You can omit the key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "description": "Information about a key/value pair.", "markdownDescription": "Information about a key/value pair.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "TargetGroupStickinessConfig": { - "description": "Information about the target group stickiness for a rule.", "$ref": "#/definitions/TargetGroupStickinessConfig", + "description": "Information about the target group stickiness for a rule.", "markdownDescription": "Information about the target group stickiness for a rule.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "TargetGroups": { + "type": "array", "uniqueItems": true, - "description": "Information about how traffic will be distributed between multiple target groups in a forward rule.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/TargetGroupTuple" }, + "description": "Information about how traffic will be distributed between multiple target groups in a forward rule.", "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "HostHeaderConfig": { - "description": "Information about a host header condition.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "RegexValues": { + "$ref": "#/definitions/ListOfStrings", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Values": { - "description": "The host names. The maximum size of each name is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one \".\" character. You can include only alphabetical characters after the final \".\" character.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.", "$ref": "#/definitions/ListOfStrings", - "markdownDescription": "The host names. The maximum size of each name is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one \".\" character. You can include only alphabetical characters after the final \".\" character.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The host names. The maximum length of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one \".\" character. You can include only alphabetical characters after the final \".\" character.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.", + "markdownDescription": "The host names. The maximum length of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one \".\" character. You can include only alphabetical characters after the final \".\" character.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, + "description": "Information about a host header condition.", "markdownDescription": "Information about a host header condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "HttpRequestMethodConfig": { - "description": "Information about an HTTP method condition.\n HTTP defines a set of request methods, also referred to as HTTP verbs. For more information, see the [HTTP Method Registry](https://docs.aws.amazon.com/https://www.iana.org/assignments/http-methods/http-methods.xhtml). You can also define custom HTTP methods.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Values": { - "description": "The name of the request method. The maximum size is 40 characters. The allowed characters are A-Z, hyphen (-), and underscore (_). The comparison is case sensitive. Wildcards are not supported; therefore, the method name must be an exact match.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached.", "$ref": "#/definitions/ListOfStrings", - "markdownDescription": "The name of the request method. The maximum size is 40 characters. The allowed characters are A-Z, hyphen (-), and underscore (_). The comparison is case sensitive. Wildcards are not supported; therefore, the method name must be an exact match.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The name of the request method. The maximum length is 40 characters. The allowed characters are A-Z, hyphen (-), and underscore (_). The comparison is case sensitive. Wildcards are not supported; therefore, the method name must be an exact match.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached.", + "markdownDescription": "The name of the request method. The maximum length is 40 characters. The allowed characters are A-Z, hyphen (-), and underscore (_). The comparison is case sensitive. Wildcards are not supported; therefore, the method name must be an exact match.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, + "description": "Information about an HTTP method condition.\n HTTP defines a set of request methods, also referred to as HTTP verbs. For more information, see the [HTTP Method Registry](https://docs.aws.amazon.com/https://www.iana.org/assignments/http-methods/http-methods.xhtml). You can also define custom HTTP methods.", "markdownDescription": "Information about an HTTP method condition.\n HTTP defines a set of request methods, also referred to as HTTP verbs. For more information, see the [HTTP Method Registry](https://docs.aws.amazon.com/https://www.iana.org/assignments/http-methods/http-methods.xhtml). You can also define custom HTTP methods.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { - "anyOf": [ - { - "required": [ - "ClientSecret" - ] - }, - { - "required": [ - "UseExistingClientSecret" - ] - } - ], - "description": "Specifies information required using an identity provide (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "OnUnauthenticatedRequest": { - "description": "The behavior if the user is not authenticated. The following are possible values:\n + deny```` - Return an HTTP 401 Unauthorized error.\n + allow```` - Allow the request to be forwarded to the target.\n + authenticate```` - Redirect the request to the IdP authorization endpoint. This is the default value.", "type": "string", + "description": "The behavior if the user is not authenticated. The following are possible values:\n + deny```` - Return an HTTP 401 Unauthorized error.\n + allow```` - Allow the request to be forwarded to the target.\n + authenticate```` - Redirect the request to the IdP authorization endpoint. This is the default value.", "markdownDescription": "The behavior if the user is not authenticated. The following are possible values:\n + deny```` - Return an HTTP 401 Unauthorized error.\n + allow```` - Allow the request to be forwarded to the target.\n + authenticate```` - Redirect the request to the IdP authorization endpoint. This is the default value.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TokenEndpoint": { - "description": "The token endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "type": "string", + "description": "The token endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "markdownDescription": "The token endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, - "UseExistingClientSecret": { - "description": "Indicates whether to use the existing client secret when modifying a rule. If you are creating a rule, you can omit this parameter or set it to false.", - "type": "boolean", - "markdownDescription": "Indicates whether to use the existing client secret when modifying a rule. If you are creating a rule, you can omit this parameter or set it to false.\n\n---\n\nRequired: Conditional \nType: Boolean \nUpdate requires: No interruption\n" - }, "SessionTimeout": { - "description": "The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).", "type": "integer", + "description": "The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).", "markdownDescription": "The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Scope": { - "description": "The set of user claims to be requested from the IdP. The default is ``openid``.\n To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.", "type": "string", + "description": "The set of user claims to be requested from the IdP. The default is ``openid``.\n To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.", "markdownDescription": "The set of user claims to be requested from the IdP. The default is ``openid``.\n To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Issuer": { - "description": "The OIDC issuer identifier of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "type": "string", + "description": "The OIDC issuer identifier of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "markdownDescription": "The OIDC issuer identifier of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "ClientSecret": { - "description": "The OAuth 2.0 client secret. This parameter is required if you are creating a rule. If you are modifying a rule, you can omit this parameter if you set ``UseExistingClientSecret`` to true.", "type": "string", + "description": "The OAuth 2.0 client secret. This parameter is required if you are creating a rule. If you are modifying a rule, you can omit this parameter if you set ``UseExistingClientSecret`` to true.", "markdownDescription": "The OAuth 2.0 client secret. This parameter is required if you are creating a rule. If you are modifying a rule, you can omit this parameter if you set ``UseExistingClientSecret`` to true.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "UserInfoEndpoint": { - "description": "The user info endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "type": "string", + "description": "The user info endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "markdownDescription": "The user info endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "ClientId": { - "description": "The OAuth 2.0 client identifier.", "type": "string", + "description": "The OAuth 2.0 client identifier.", "markdownDescription": "The OAuth 2.0 client identifier.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "AuthorizationEndpoint": { - "description": "The authorization endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "type": "string", + "description": "The authorization endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.", "markdownDescription": "The authorization endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "SessionCookieName": { - "description": "The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.", "type": "string", + "description": "The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.", "markdownDescription": "The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "UseExistingClientSecret": { + "type": "boolean", + "description": "Indicates whether to use the existing client secret when modifying a rule. If you are creating a rule, you can omit this parameter or set it to false.", + "markdownDescription": "Indicates whether to use the existing client secret when modifying a rule. If you are creating a rule, you can omit this parameter or set it to false.\n\n---\n\nRequired: Conditional \nType: Boolean \nUpdate requires: No interruption\n" + }, "AuthenticationRequestExtraParams": { + "type": "object", + "additionalProperties": false, "patternProperties": { "[a-zA-Z0-9]+": { "type": "string", @@ -557,8 +528,6 @@ } }, "description": "The query parameters (up to 10) to include in the redirect request to the authorization endpoint.", - "additionalProperties": false, - "type": "object", "markdownDescription": "The query parameters (up to 10) to include in the redirect request to the authorization endpoint.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, @@ -569,80 +538,295 @@ "ClientId", "AuthorizationEndpoint" ], + "anyOf": [ + { + "required": [ + "ClientSecret" + ] + }, + { + "required": [ + "UseExistingClientSecret" + ] + } + ], + "description": "Specifies information required using an identity provide (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.", "markdownDescription": "Specifies information required using an identity provide (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "SourceIpConfig": { - "description": "Information about a source IP condition.\n You can use this condition to route based on the IP address of the source that connects to the load balancer. If a client is behind a proxy, this is the IP address of the proxy not the IP address of the client.", + "JwtValidationConfig": { + "type": "object", "additionalProperties": false, + "properties": { + "JwksEndpoint": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Issuer": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AdditionalClaims": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/JwtValidationActionAdditionalClaim" + }, + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "JwksEndpoint", + "Issuer" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "JwtValidationActionAdditionalClaim": { "type": "object", + "additionalProperties": false, "properties": { + "Format": { + "type": "string", + "description": "The format of the claim value.", + "markdownDescription": "The format of the claim value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "description": "The name of the claim. You can't specify ``exp``, ``iss``, ``nbf``, or ``iat`` because we validate them by default.", + "markdownDescription": "The name of the claim. You can't specify ``exp``, ``iss``, ``nbf``, or ``iat`` because we validate them by default.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, "Values": { + "type": "array", "uniqueItems": true, - "description": "The source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.\n If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header.", - "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "description": "The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is ``space-separated-values``, the values can't include spaces.", + "markdownDescription": "The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is ``space-separated-values``, the values can't include spaces.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Format", + "Name", + "Values" + ], + "description": "Information about an additional claim to validate.", + "markdownDescription": "Information about an additional claim to validate.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceIpConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Values": { "type": "array", + "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "description": "The source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.\n If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header.", "markdownDescription": "The source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.\n If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "description": "Information about a source IP condition.\n You can use this condition to route based on the IP address of the source that connects to the load balancer. If a client is behind a proxy, this is the IP address of the proxy not the IP address of the client.", "markdownDescription": "Information about a source IP condition.\n You can use this condition to route based on the IP address of the source that connects to the load balancer. If a client is behind a proxy, this is the IP address of the proxy not the IP address of the client.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "properties": { - "ListenerArn": { - "description": "The Amazon Resource Name (ARN) of the listener.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the listener.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "IsDefault": { + "Transform": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "HostHeaderRewriteConfig": { + "$ref": "#/definitions/RewriteConfigObject", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: No interruption\n" + }, + "UrlRewriteConfig": { + "$ref": "#/definitions/RewriteConfigObject", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type" + ], + "oneOf": [ + { + "required": [ + "HostHeaderRewriteConfig" + ] + }, + { + "required": [ + "UrlRewriteConfig" + ] + } + ], "description": "", - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Actions": { + "RewriteConfigObject": { + "type": "object", + "additionalProperties": false, + "properties": { + "Rewrites": { + "$ref": "#/definitions/RewriteConfigList", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Rewrites" + ], + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RewriteConfigList": { + "type": "array", "uniqueItems": true, - "description": "The actions.\n The rule must include exactly one of the following types of actions: ``forward``, ``fixed-response``, or ``redirect``, and it must be the last action to be performed. If the rule is for an HTTPS listener, it can also optionally include an authentication action.", "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Action" + "$ref": "#/definitions/RewriteConfig" }, - "markdownDescription": "The actions.\n The rule must include exactly one of the following types of actions: ``forward``, ``fixed-response``, or ``redirect``, and it must be the last action to be performed. If the rule is for an HTTPS listener, it can also optionally include an authentication action.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - }, - "Priority": { - "description": "The rule priority. A listener can't have multiple rules with the same priority.\n If you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update.", - "type": "integer", - "markdownDescription": "The rule priority. A listener can't have multiple rules with the same priority.\n If you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "RuleArn": { - "description": "", - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "RewriteConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Regex": { + "type": "string", + "description": "The regular expression to match in the input string. The maximum length of the string is 1,024 characters.", + "markdownDescription": "The regular expression to match in the input string. The maximum length of the string is 1,024 characters.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Replace": { + "type": "string", + "description": "The replacement string to use when rewriting the matched input. The maximum length of the string is 1,024 characters. You can specify capture groups in the regular expression (for example, $1 and $2).", + "markdownDescription": "The replacement string to use when rewriting the matched input. The maximum length of the string is 1,024 characters. You can specify capture groups in the regular expression (for example, $1 and $2).\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Regex", + "Replace" + ], + "description": "Information about a rewrite transform. This transform matches a pattern and replaces it with the specified string.", + "markdownDescription": "Information about a rewrite transform. This transform matches a pattern and replaces it with the specified string.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Conditions": { + "ListOfStrings": { + "type": "array", "uniqueItems": true, - "description": "The conditions.\n The rule can optionally include up to one of each of the following conditions: ``http-request-method``, ``host-header``, ``path-pattern``, and ``source-ip``. A rule can also optionally include one or more of each of the following conditions: ``http-header`` and ``query-string``.", "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/RuleCondition" + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "The conditions.\n The rule can optionally include up to one of each of the following conditions: ``http-request-method``, ``host-header``, ``path-pattern``, and ``source-ip``. A rule can also optionally include one or more of each of the following conditions: ``http-header`` and ``query-string``.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "attributes": { - "IsDefault": { - "description": "", - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" + "required": [ + "Actions", + "Priority", + "Conditions" + ], + "createOnlyProperties": [ + "/properties/ListenerArn" + ], + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/IsDefault" + ], + "writeOnlyProperties": [ + "/properties/Actions/*/AuthenticateOidcConfig/ClientSecret", + "/properties/ListenerArn" + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateRule", + "elasticloadbalancing:DescribeRules", + "cognito-idp:DescribeUserPoolClient" + ] + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DeleteRule", + "elasticloadbalancing:DescribeRules" + ] }, + "list": { + "handlerSchema": { + "properties": { + "ListenerArn": { + "$ref": "resource-schema.json#/properties/ListenerArn" + }, + "RuleArns": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "resource-schema.json#/properties/RuleArn" + }, + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" + } + }, + "oneOf": [ + { + "required": [ + "ListenerArn" + ] + }, + { + "required": [ + "RuleArns" + ] + } + ] + }, + "permissions": [ + "elasticloadbalancing:DescribeRules" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeRules" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyRule", + "elasticloadbalancing:SetRulePriorities", + "elasticloadbalancing:DescribeRules" + ] + } + }, + "attributes": { "RuleArn": { - "description": "", "type": "string", + "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IsDefault": { + "type": "boolean", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-elasticloadbalancingv2-loadbalancer.json b/server/schema/resources/aws-elasticloadbalancingv2-loadbalancer.json index 7b0af6e5..11787c27 100644 --- a/server/schema/resources/aws-elasticloadbalancingv2-loadbalancer.json +++ b/server/schema/resources/aws-elasticloadbalancingv2-loadbalancer.json @@ -46,8 +46,8 @@ "EnableCapacityReservationProvisionStabilize": { "type": "boolean", "default": false, - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Indicates whether to enable stabilization when creating or updating an LCU reservation. This ensures that the final stack status reflects the status of the LCU reservation. The default is ``false``.", + "markdownDescription": "Indicates whether to enable stabilization when creating or updating an LCU reservation. This ensures that the final stack status reflects the status of the LCU reservation. The default is ``false``.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Scheme": { "type": "string", @@ -195,8 +195,8 @@ }, "Key": { "type": "string", - "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether clients can connect to the load balancer using HTTP/2. If ``true``, clients can connect using HTTP/2 or HTTP/1.1. However, all client requests are subject to the stricter HTTP/2 header validation rules. For example, message header names must contain only alphanumeric characters and hyphens. If ``false``, clients must connect using HTTP/1.1. The default is ``true``.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``secondary_ips.auto_assigned.per_subnet`` - The number of secondary IP addresses to configure for your load balancer nodes. Use to address port allocation errors if you can't add targets. The valid range is 0 to 7. The default is 0. After you set this value, you can't decrease it.", - "markdownDescription": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether clients can connect to the load balancer using HTTP/2. If ``true``, clients can connect using HTTP/2 or HTTP/1.1. However, all client requests are subject to the stricter HTTP/2 header validation rules. For example, message header names must contain only alphanumeric characters and hyphens. If ``false``, clients must connect using HTTP/1.1. The default is ``true``.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``secondary_ips.auto_assigned.per_subnet`` - The number of secondary IP addresses to configure for your load balancer nodes. Use to address port allocation errors if you can't add targets. The valid range is 0 to 7. The default is 0. After you set this value, you can't decrease it.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``health_check_logs.s3.enabled`` - Indicates whether health check logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``health_check_logs.s3.bucket`` - The name of the S3 bucket for the health check logs. This attribute is required if health check logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``health_check_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the health check logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether clients can connect to the load balancer using HTTP/2. If ``true``, clients can connect using HTTP/2 or HTTP/1.1. However, all client requests are subject to the stricter HTTP/2 header validation rules. For example, message header names must contain only alphanumeric characters and hyphens. If ``false``, clients must connect using HTTP/1.1. The default is ``true``.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``secondary_ips.auto_assigned.per_subnet`` - The number of secondary IP addresses to configure for your load balancer nodes. Use to address port allocation errors if you can't add targets. The valid range is 0 to 7. The default is 0. After you set this value, you can't decrease it.", + "markdownDescription": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``health_check_logs.s3.enabled`` - Indicates whether health check logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``health_check_logs.s3.bucket`` - The name of the S3 bucket for the health check logs. This attribute is required if health check logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``health_check_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the health check logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether clients can connect to the load balancer using HTTP/2. If ``true``, clients can connect using HTTP/2 or HTTP/1.1. However, all client requests are subject to the stricter HTTP/2 header validation rules. For example, message header names must contain only alphanumeric characters and hyphens. If ``false``, clients must connect using HTTP/1.1. The default is ``true``.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``secondary_ips.auto_assigned.per_subnet`` - The number of secondary IP addresses to configure for your load balancer nodes. Use to address port allocation errors if you can't add targets. The valid range is 0 to 7. The default is 0. After you set this value, you can't decrease it.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "description": "Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.", @@ -246,7 +246,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "elasticloadbalancing:AddTags", @@ -260,7 +260,9 @@ "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:ModifyCapacityReservation", "elasticloadbalancing:AddTags", + "elasticloadbalancing:SetSecurityGroups", "ec2:DescribeIpamPools" ], "timeoutInMinutes": 2160 diff --git a/server/schema/resources/aws-elasticloadbalancingv2-targetgroup.json b/server/schema/resources/aws-elasticloadbalancingv2-targetgroup.json index 0967c1d8..64300ff2 100644 --- a/server/schema/resources/aws-elasticloadbalancingv2-targetgroup.json +++ b/server/schema/resources/aws-elasticloadbalancingv2-targetgroup.json @@ -1,183 +1,23 @@ { - "tagging": { - "permissions": [ - "elasticloadbalancing:AddTags", - "elasticloadbalancing:DescribeTags", - "elasticloadbalancing:RemoveTags" - ], - "taggable": true, - "tagOnCreate": false, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false - }, - "handlers": { - "read": { - "permissions": [ - "elasticloadbalancing:DescribeTargetGroups", - "elasticloadbalancing:DescribeTargetGroupAttributes", - "elasticloadbalancing:DescribeTargetHealth", - "elasticloadbalancing:DescribeTags" - ] - }, - "create": { - "permissions": [ - "elasticloadbalancing:CreateTargetGroup", - "elasticloadbalancing:DescribeTargetGroups", - "elasticloadbalancing:RegisterTargets", - "elasticloadbalancing:ModifyTargetGroupAttributes", - "elasticloadbalancing:DescribeTargetHealth", - "elasticloadbalancing:AddTags" - ] - }, - "update": { - "permissions": [ - "elasticloadbalancing:DescribeTargetGroups", - "elasticloadbalancing:ModifyTargetGroup", - "elasticloadbalancing:ModifyTargetGroupAttributes", - "elasticloadbalancing:RegisterTargets", - "elasticloadbalancing:DescribeTargetHealth", - "elasticloadbalancing:DeregisterTargets", - "elasticloadbalancing:AddTags", - "elasticloadbalancing:RemoveTags" - ] - }, - "list": { - "permissions": [ - "elasticloadbalancing:DescribeTargetGroups" - ] - }, - "delete": { - "permissions": [ - "elasticloadbalancing:DeleteTargetGroup", - "elasticloadbalancing:DescribeTargetGroups" - ] - } - }, "typeName": "AWS::ElasticLoadBalancingV2::TargetGroup", - "readOnlyProperties": [ - "/properties/LoadBalancerArns", - "/properties/TargetGroupArn", - "/properties/TargetGroupName", - "/properties/TargetGroupFullName" - ], "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::TargetGroup", - "createOnlyProperties": [ - "/properties/TargetType", - "/properties/ProtocolVersion", - "/properties/Port", - "/properties/Name", - "/properties/VpcId", - "/properties/Protocol", - "/properties/IpAddressType" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/TargetGroupArn" - ], - "definitions": { - "Matcher": { - "additionalProperties": false, - "type": "object", - "properties": { - "GrpcCode": { - "description": "You can specify values between 0 and 99. You can specify multiple values, or a range of values. The default value is 12.", - "type": "string", - "markdownDescription": "You can specify values between 0 and 99. You can specify multiple values, or a range of values. The default value is 12.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "HttpCode": { - "description": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values or a range of values. ", - "type": "string", - "markdownDescription": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values or a range of values. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TargetDescription": { - "additionalProperties": false, - "type": "object", - "properties": { - "Port": { - "description": "The port on which the target is listening. If the target group protocol is GENEVE, the supported port is 6081. If the target type is alb, the targeted Application Load Balancer must have at least one listener whose port matches the target group port. Not used if the target is a Lambda function.", - "type": "integer", - "markdownDescription": "The port on which the target is listening. If the target group protocol is GENEVE, the supported port is 6081. If the target type is alb, the targeted Application Load Balancer must have at least one listener whose port matches the target group port. Not used if the target is a Lambda function.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "AvailabilityZone": { - "description": "An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.", - "type": "string", - "markdownDescription": "An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Id": { - "description": "The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. If the target type is lambda, specify the ARN of the Lambda function. If the target type is alb, specify the ARN of the Application Load Balancer target. ", - "type": "string", - "markdownDescription": "The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. If the target type is lambda, specify the ARN of the Lambda function. If the target type is alb, specify the ARN of the Application Load Balancer target. \n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Id" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TargetGroupAttribute": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "description": "The name of the attribute.", - "type": "string", - "markdownDescription": "The name of the attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "description": "The value of the attribute.", - "type": "string", - "markdownDescription": "The value of the attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Tag": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "description": "The key name of the tag. ", - "type": "string", - "markdownDescription": "The key name of the tag. \n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "description": "The value for the tag. ", - "type": "string", - "markdownDescription": "The value for the tag. \n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, "properties": { "IpAddressType": { - "description": "The type of IP address used for this target group. The possible values are ipv4 and ipv6. ", "type": "string", + "description": "The type of IP address used for this target group. The possible values are ipv4 and ipv6. ", "markdownDescription": "The type of IP address used for this target group. The possible values are ipv4 and ipv6. \n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "TargetGroupArn": { - "description": "The ARN of the Target Group", - "type": "string", - "markdownDescription": "The ARN of the Target Group\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "HealthCheckIntervalSeconds": { - "description": "The approximate amount of time, in seconds, between health checks of an individual target.", "type": "integer", + "description": "The approximate amount of time, in seconds, between health checks of an individual target.", "markdownDescription": "The approximate amount of time, in seconds, between health checks of an individual target.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "LoadBalancerArns": { - "uniqueItems": false, - "description": "The Amazon Resource Names (ARNs) of the load balancers that route traffic to this target group.", - "insertionOrder": false, "type": "array", + "insertionOrder": false, + "description": "The Amazon Resource Names (ARNs) of the load balancers that route traffic to this target group.", + "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -185,128 +25,293 @@ "markdownDescription": "The Amazon Resource Names (ARNs) of the load balancers that route traffic to this target group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, "Matcher": { - "description": "[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.", "$ref": "#/definitions/Matcher", + "description": "[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.", "markdownDescription": "[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "HealthCheckPath": { - "description": "[HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is /AWS.ALB/healthcheck.", "type": "string", + "description": "[HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is /AWS.ALB/healthcheck.", "markdownDescription": "[HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is /AWS.ALB/healthcheck.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Port": { - "description": "The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.", "type": "integer", + "description": "The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.", "markdownDescription": "The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" }, "Targets": { - "uniqueItems": true, + "type": "array", "description": "The targets.", + "uniqueItems": true, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/TargetDescription" }, "markdownDescription": "The targets.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "HealthCheckEnabled": { - "description": "Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance, ip, or alb, health checks are always enabled and cannot be disabled.", "type": "boolean", + "description": "Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance, ip, or alb, health checks are always enabled and cannot be disabled.", "markdownDescription": "Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance, ip, or alb, health checks are always enabled and cannot be disabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "ProtocolVersion": { - "description": "[HTTP/HTTPS protocol] The protocol version. The possible values are GRPC, HTTP1, and HTTP2.", "type": "string", + "description": "[HTTP/HTTPS protocol] The protocol version. The possible values are GRPC, HTTP1, and HTTP2.", "markdownDescription": "[HTTP/HTTPS protocol] The protocol version. The possible values are GRPC, HTTP1, and HTTP2.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "UnhealthyThresholdCount": { - "description": "The number of consecutive health check failures required before considering a target unhealthy.", "type": "integer", + "description": "The number of consecutive health check failures required before considering a target unhealthy.", "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "HealthCheckTimeoutSeconds": { - "description": "The amount of time, in seconds, during which no response from a target means a failed health check.", "type": "integer", + "description": "The amount of time, in seconds, during which no response from a target means a failed health check.", "markdownDescription": "The amount of time, in seconds, during which no response from a target means a failed health check.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Name": { - "description": "The name of the target group.", "type": "string", + "description": "The name of the target group.", "markdownDescription": "The name of the target group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "VpcId": { - "description": "The identifier of the virtual private cloud (VPC). If the target is a Lambda function, this parameter does not apply.", "type": "string", + "description": "The identifier of the virtual private cloud (VPC). If the target is a Lambda function, this parameter does not apply.", "markdownDescription": "The identifier of the virtual private cloud (VPC). If the target is a Lambda function, this parameter does not apply.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "TargetGroupFullName": { - "description": "The full name of the target group.", "type": "string", + "description": "The full name of the target group.", "markdownDescription": "The full name of the target group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "HealthyThresholdCount": { - "description": "The number of consecutive health checks successes required before considering an unhealthy target healthy. ", "type": "integer", + "description": "The number of consecutive health checks successes required before considering an unhealthy target healthy. ", "markdownDescription": "The number of consecutive health checks successes required before considering an unhealthy target healthy. \n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "HealthCheckProtocol": { - "description": "The protocol the load balancer uses when performing health checks on targets. ", "type": "string", + "description": "The protocol the load balancer uses when performing health checks on targets. ", "markdownDescription": "The protocol the load balancer uses when performing health checks on targets. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TargetGroupAttributes": { + "type": "array", "arrayType": "AttributeList", - "uniqueItems": true, "description": "The attributes.", + "uniqueItems": true, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/TargetGroupAttribute" }, "markdownDescription": "The attributes.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "TargetType": { - "description": "The type of target that you must specify when registering targets with this target group. You can't specify targets for a target group using more than one target type.", "type": "string", + "description": "The type of target that you must specify when registering targets with this target group. You can't specify targets for a target group using more than one target type.", "markdownDescription": "The type of target that you must specify when registering targets with this target group. You can't specify targets for a target group using more than one target type.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "HealthCheckPort": { - "description": "The port the load balancer uses when performing health checks on targets. ", "type": "string", + "description": "The port the load balancer uses when performing health checks on targets. ", "markdownDescription": "The port the load balancer uses when performing health checks on targets. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "TargetGroupArn": { + "type": "string", + "description": "The ARN of the Target Group", + "markdownDescription": "The ARN of the Target Group\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "Protocol": { - "description": "The protocol to use for routing traffic to the targets.", "type": "string", + "description": "The protocol to use for routing traffic to the targets.", "markdownDescription": "The protocol to use for routing traffic to the targets.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "TargetGroupName": { - "description": "The name of the target group.", "type": "string", + "description": "The name of the target group.", "markdownDescription": "The name of the target group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Tags": { - "uniqueItems": false, + "type": "array", "description": "The tags.", + "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "The tags.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TargetControlPort": { + "type": "integer", + "description": "The port that the target control agent uses to communicate the available capacity of targets to the load balancer.", + "markdownDescription": "The port that the target control agent uses to communicate the available capacity of targets to the load balancer.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, - "attributes": { - "TargetGroupArn": { - "description": "The ARN of the Target Group", - "type": "string", - "markdownDescription": "The ARN of the Target Group\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "definitions": { + "Matcher": { + "type": "object", + "additionalProperties": false, + "properties": { + "GrpcCode": { + "type": "string", + "description": "You can specify values between 0 and 99. You can specify multiple values, or a range of values. The default value is 12.", + "markdownDescription": "You can specify values between 0 and 99. You can specify multiple values, or a range of values. The default value is 12.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "HttpCode": { + "type": "string", + "description": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values or a range of values. ", + "markdownDescription": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values or a range of values. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetDescription": { + "type": "object", + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string", + "description": "An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.", + "markdownDescription": "An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Id": { + "type": "string", + "description": "The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. If the target type is lambda, specify the ARN of the Lambda function. If the target type is alb, specify the ARN of the Application Load Balancer target. ", + "markdownDescription": "The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. If the target type is lambda, specify the ARN of the Lambda function. If the target type is alb, specify the ARN of the Application Load Balancer target. \n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Port": { + "type": "integer", + "description": "The port on which the target is listening. If the target group protocol is GENEVE, the supported port is 6081. If the target type is alb, the targeted Application Load Balancer must have at least one listener whose port matches the target group port. Not used if the target is a Lambda function.", + "markdownDescription": "The port on which the target is listening. If the target group protocol is GENEVE, the supported port is 6081. If the target type is alb, the targeted Application Load Balancer must have at least one listener whose port matches the target group port. Not used if the target is a Lambda function.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "QuicServerId": { + "type": "string", + "description": "The Server ID used by targets when using QUIC or TCP_QUIC protocols.", + "markdownDescription": "The Server ID used by targets when using QUIC or TCP_QUIC protocols.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Id" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetGroupAttribute": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "description": "The name of the attribute.", + "markdownDescription": "The name of the attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "description": "The value of the attribute.", + "markdownDescription": "The value of the attribute.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "description": "The key name of the tag. ", + "markdownDescription": "The key name of the tag. \n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "description": "The value for the tag. ", + "markdownDescription": "The value for the tag. \n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "createOnlyProperties": [ + "/properties/TargetType", + "/properties/ProtocolVersion", + "/properties/Port", + "/properties/Name", + "/properties/VpcId", + "/properties/Protocol", + "/properties/IpAddressType" + ], + "primaryIdentifier": [ + "/properties/TargetGroupArn" + ], + "readOnlyProperties": [ + "/properties/LoadBalancerArns", + "/properties/TargetGroupArn", + "/properties/TargetGroupName", + "/properties/TargetGroupFullName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "elasticloadbalancing:AddTags", + "elasticloadbalancing:DescribeTags", + "elasticloadbalancing:RemoveTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateTargetGroup", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:ModifyTargetGroupAttributes", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:AddTags" + ] + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DeleteTargetGroup", + "elasticloadbalancing:DescribeTargetGroups" + ] }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeTargetGroups" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetGroupAttributes", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:ModifyTargetGroup", + "elasticloadbalancing:ModifyTargetGroupAttributes", + "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:DeregisterTargets", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "attributes": { "LoadBalancerArns": { - "uniqueItems": false, - "description": "The Amazon Resource Names (ARNs) of the load balancers that route traffic to this target group.", - "insertionOrder": false, "type": "array", + "insertionOrder": false, + "description": "The Amazon Resource Names (ARNs) of the load balancers that route traffic to this target group.", + "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -314,13 +319,18 @@ "markdownDescription": "The Amazon Resource Names (ARNs) of the load balancers that route traffic to this target group.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, "TargetGroupFullName": { - "description": "The full name of the target group.", "type": "string", + "description": "The full name of the target group.", "markdownDescription": "The full name of the target group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "TargetGroupArn": { + "type": "string", + "description": "The ARN of the Target Group", + "markdownDescription": "The ARN of the Target Group\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "TargetGroupName": { - "description": "The name of the target group.", "type": "string", + "description": "The name of the target group.", "markdownDescription": "The name of the target group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } diff --git a/server/schema/resources/aws-elementalinference-feed.json b/server/schema/resources/aws-elementalinference-feed.json new file mode 100644 index 00000000..4d47d59c --- /dev/null +++ b/server/schema/resources/aws-elementalinference-feed.json @@ -0,0 +1,214 @@ +{ + "typeName": "AWS::ElementalInference::Feed", + "description": "Represents a feed that receives media for inference processing", + "definitions": { + "ClippingConfig": { + "type": "object", + "properties": { + "CallbackMetadata": { + "type": "string", + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^[\\w \\-\\.',@:;]*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CroppingConfig": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GetOutput": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9]([a-zA-Z0-9-_]{0,126}[a-zA-Z0-9])?$ \nUpdate requires: No interruption\n" + }, + "OutputConfig": { + "$ref": "#/definitions/OutputConfig" + }, + "Status": { + "$ref": "#/definitions/OutputStatus" + }, + "Description": { + "type": "string", + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^[\\w \\-\\.',@:;]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "OutputConfig", + "Status" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OutputConfig": { + "oneOf": [ + { + "type": "object", + "title": "Cropping", + "properties": { + "Cropping": { + "$ref": "#/definitions/CroppingConfig" + } + }, + "required": [ + "Cropping" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Clipping", + "properties": { + "Clipping": { + "$ref": "#/definitions/ClippingConfig" + } + }, + "required": [ + "Clipping" + ], + "additionalProperties": false + } + ] + }, + "OutputStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "TagMap": { + "type": "object", + "patternProperties": { + ".+": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Unit": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DataEndpoints": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9]{19}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-zA-Z0-9]([a-zA-Z0-9-_]{0,126}[a-zA-Z0-9])?$ \nUpdate requires: No interruption\n" + }, + "Outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/GetOutput" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "required": [ + "Name", + "Outputs" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DataEndpoints", + "/properties/Id" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "elemental-inference:ListTagsForResource", + "elemental-inference:TagResource", + "elemental-inference:UntagResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "handlers": { + "create": { + "permissions": [ + "elemental-inference:CreateFeed", + "elemental-inference:TagResource" + ] + }, + "read": { + "permissions": [ + "elemental-inference:GetFeed", + "elemental-inference:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "elemental-inference:UpdateFeed", + "elemental-inference:GetFeed", + "elemental-inference:TagResource", + "elemental-inference:UntagResource", + "elemental-inference:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "elemental-inference:DeleteFeed", + "elemental-inference:GetFeed" + ] + }, + "list": { + "permissions": [ + "elemental-inference:ListFeeds" + ] + } + }, + "additionalProperties": false, + "attributes": { + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DataEndpoints": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9]{19}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-emr-step.json b/server/schema/resources/aws-emr-step.json index f5bd6b3d..9d0c72d9 100644 --- a/server/schema/resources/aws-emr-step.json +++ b/server/schema/resources/aws-emr-step.json @@ -79,6 +79,16 @@ "description": "The name of the cluster step.", "type": "string", "markdownDescription": "The name of the cluster step.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "LogUri": { + "description": "The Amazon S3 destination URI for log publishing. When omitted, EMR falls back to cluster-level logging behavior.", + "type": "string", + "markdownDescription": "The Amazon S3 destination URI for log publishing. When omitted, EMR falls back to cluster-level logging behavior.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "EncryptionKeyArn": { + "description": "The KMS key ARN to encrypt the logs published to the given Amazon S3 destination. When omitted, EMR falls back to cluster-level logging behavior.", + "type": "string", + "markdownDescription": "The KMS key ARN to encrypt the logs published to the given Amazon S3 destination. When omitted, EMR falls back to cluster-level logging behavior.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" } }, "additionalProperties": false, @@ -95,7 +105,9 @@ "/properties/JobFlowId", "/properties/HadoopJarStep", "/properties/Name", - "/properties/ActionOnFailure" + "/properties/ActionOnFailure", + "/properties/LogUri", + "/properties/EncryptionKeyArn" ], "primaryIdentifier": [ "/properties/Id" diff --git a/server/schema/resources/aws-emrcontainers-endpoint.json b/server/schema/resources/aws-emrcontainers-endpoint.json new file mode 100644 index 00000000..5689126e --- /dev/null +++ b/server/schema/resources/aws-emrcontainers-endpoint.json @@ -0,0 +1,407 @@ +{ + "typeName": "AWS::EMRContainers::Endpoint", + "description": "Resource Schema of AWS::EMRContainers::Endpoint Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/VirtualClusterId", + "/properties/Id" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/ServerUrl", + "/properties/State", + "/properties/StateDetails", + "/properties/FailureReason", + "/properties/CreatedAt", + "/properties/SecurityGroup", + "/properties/CertificateAuthority" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/VirtualClusterId", + "/properties/Type", + "/properties/ReleaseLabel", + "/properties/ExecutionRoleArn", + "/properties/ConfigurationOverrides" + ], + "definitions": { + "ConfigurationOverrides": { + "type": "object", + "additionalProperties": false, + "properties": { + "ApplicationConfiguration": { + "type": "array", + "maxItems": 100, + "items": { + "$ref": "#/definitions/EMREKSConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EMREKSConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Properties": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Configurations": { + "type": "array", + "maxItems": 100, + "items": { + "$ref": "#/definitions/EMREKSConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Classification" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MonitoringConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "PersistentAppUI": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "ContainerLogRotationConfiguration": { + "$ref": "#/definitions/ContainerLogRotationConfiguration" + }, + "CloudWatchMonitoringConfiguration": { + "$ref": "#/definitions/CloudWatchMonitoringConfiguration" + }, + "S3MonitoringConfiguration": { + "$ref": "#/definitions/S3MonitoringConfiguration" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ContainerLogRotationConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "RotationSize": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "MaxFilesToKeep": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RotationSize", + "MaxFilesToKeep" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudWatchMonitoringConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "LogStreamNamePrefix": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LogGroupName" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3MonitoringConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "LogUri": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LogUri" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Certificate": { + "type": "object", + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CertificateData": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "description": "A user-defined key, which is the minimum required information for a valid tag.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "A user-defined key, which is the minimum required information for a valid tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "A user-defined value, which is optional in a tag.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "A user-defined value, which is optional in a tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "description": "The ARN of the managed endpoint.", + "type": "string", + "markdownDescription": "The ARN of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The ID of the managed endpoint.", + "type": "string", + "markdownDescription": "The ID of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the managed endpoint.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: [0-9A-Za-z][A-Za-z0-9\\-_]* \nUpdate requires: Replacement\n" + }, + "VirtualClusterId": { + "description": "The ID of the virtual cluster for which the managed endpoint is created.", + "type": "string", + "markdownDescription": "The ID of the virtual cluster for which the managed endpoint is created.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "description": "The type of the managed endpoint.", + "type": "string", + "markdownDescription": "The type of the managed endpoint.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "ReleaseLabel": { + "description": "The Amazon EMR release label.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The Amazon EMR release label.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: [A-Za-z0-9._/-]+ \nUpdate requires: Replacement\n" + }, + "ExecutionRoleArn": { + "description": "The execution role ARN for the managed endpoint.", + "type": "string", + "markdownDescription": "The execution role ARN for the managed endpoint.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "ConfigurationOverrides": { + "description": "The configuration overrides for the managed endpoint.", + "$ref": "#/definitions/ConfigurationOverrides", + "markdownDescription": "The configuration overrides for the managed endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "ServerUrl": { + "description": "The server URL of the managed endpoint.", + "type": "string", + "markdownDescription": "The server URL of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The state of the managed endpoint.", + "type": "string", + "markdownDescription": "The state of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StateDetails": { + "description": "Additional details about the state of the managed endpoint.", + "type": "string", + "markdownDescription": "Additional details about the state of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FailureReason": { + "description": "The reason for a failed managed endpoint.", + "type": "string", + "markdownDescription": "The reason for a failed managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The date and time when the managed endpoint was created.", + "type": "string", + "markdownDescription": "The date and time when the managed endpoint was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SecurityGroup": { + "description": "The security group associated with the managed endpoint.", + "type": "string", + "markdownDescription": "The security group associated with the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CertificateAuthority": { + "description": "The certificate authority for the managed endpoint.", + "$ref": "#/definitions/Certificate", + "markdownDescription": "The certificate authority for the managed endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this managed endpoint.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "An array of key-value pairs to apply to this managed endpoint.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "VirtualClusterId", + "Type", + "ReleaseLabel", + "ExecutionRoleArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "emr-containers:TagResource", + "emr-containers:UntagResource", + "emr-containers:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "emr-containers:CreateManagedEndpoint", + "emr-containers:DescribeManagedEndpoint", + "emr-containers:TagResource", + "ec2:CreateSecurityGroup", + "ec2:DeleteSecurityGroup", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress" + ] + }, + "read": { + "permissions": [ + "emr-containers:DescribeManagedEndpoint", + "emr-containers:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "emr-containers:DeleteManagedEndpoint", + "emr-containers:DescribeManagedEndpoint", + "ec2:DeleteSecurityGroup", + "ec2:DescribeSecurityGroup", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress" + ] + }, + "list": { + "permissions": [ + "emr-containers:ListManagedEndpoints" + ] + }, + "update": { + "permissions": [ + "emr-containers:DescribeManagedEndpoint", + "emr-containers:ListTagsForResource", + "emr-containers:TagResource", + "emr-containers:UntagResource" + ] + } + }, + "attributes": { + "Arn": { + "description": "The ARN of the managed endpoint.", + "type": "string", + "markdownDescription": "The ARN of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The ID of the managed endpoint.", + "type": "string", + "markdownDescription": "The ID of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ServerUrl": { + "description": "The server URL of the managed endpoint.", + "type": "string", + "markdownDescription": "The server URL of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The state of the managed endpoint.", + "type": "string", + "markdownDescription": "The state of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StateDetails": { + "description": "Additional details about the state of the managed endpoint.", + "type": "string", + "markdownDescription": "Additional details about the state of the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FailureReason": { + "description": "The reason for a failed managed endpoint.", + "type": "string", + "markdownDescription": "The reason for a failed managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "description": "The date and time when the managed endpoint was created.", + "type": "string", + "markdownDescription": "The date and time when the managed endpoint was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SecurityGroup": { + "description": "The security group associated with the managed endpoint.", + "type": "string", + "markdownDescription": "The security group associated with the managed endpoint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CertificateAuthority": { + "description": "The certificate authority for the managed endpoint.", + "$ref": "#/definitions/Certificate", + "markdownDescription": "The certificate authority for the managed endpoint.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-emrcontainers-securityconfiguration.json b/server/schema/resources/aws-emrcontainers-securityconfiguration.json new file mode 100644 index 00000000..50328150 --- /dev/null +++ b/server/schema/resources/aws-emrcontainers-securityconfiguration.json @@ -0,0 +1,434 @@ +{ + "typeName": "AWS::EMRContainers::SecurityConfiguration", + "description": "Resource Schema of AWS::EMRContainers::SecurityConfiguration Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "SecurityConfigurationData": { + "description": "Security configuration data containing encryption and authorization settings.", + "type": "object", + "additionalProperties": false, + "properties": { + "AuthorizationConfiguration": { + "$ref": "#/definitions/AuthorizationConfiguration" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + } + }, + "markdownDescription": "Security configuration data containing encryption and authorization settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AuthorizationConfiguration": { + "description": "Authorization configuration for the security configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "LakeFormationConfiguration": { + "$ref": "#/definitions/LakeFormationConfiguration" + } + }, + "markdownDescription": "Authorization configuration for the security configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AuthenticationConfiguration": { + "description": "Authentication configuration for the security configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "IdentityCenterConfiguration": { + "$ref": "#/definitions/IdentityCenterConfiguration" + }, + "IAMConfiguration": { + "$ref": "#/definitions/IAMConfiguration" + } + }, + "markdownDescription": "Authentication configuration for the security configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IdentityCenterConfiguration": { + "description": "Identity Center configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "EnableIdentityCenter": { + "description": "Whether to enable Identity Center integration.", + "type": "boolean", + "markdownDescription": "Whether to enable Identity Center integration.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "IdentityCenterApplicationAssignmentRequired": { + "description": "Whether Identity Center application assignment is required.", + "type": "boolean", + "markdownDescription": "Whether Identity Center application assignment is required.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "IdentityCenterInstanceARN": { + "description": "The ARN of the Identity Center instance.", + "type": "string", + "markdownDescription": "The ARN of the Identity Center instance.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Identity Center configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IAMConfiguration": { + "description": "IAM configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "SystemRole": { + "description": "The system role ARN.", + "type": "string", + "markdownDescription": "The system role ARN.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::\\d{12}:role/.+$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "IAM configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LakeFormationConfiguration": { + "description": "Lake Formation configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "AuthorizedSessionTagValue": { + "description": "The session tag to authorize Lake Formation access.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The session tag to authorize Lake Formation access.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "SecureNamespaceInfo": { + "$ref": "#/definitions/SecureNamespaceInfo" + }, + "QueryEngineRoleArn": { + "description": "The ARN of the query engine role.", + "type": "string", + "markdownDescription": "The ARN of the query engine role.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::\\d{12}:role/.+$ \nUpdate requires: No interruption\n" + }, + "QueryAccessControlEnabled": { + "description": "Whether query access control is enabled.", + "type": "boolean", + "markdownDescription": "Whether query access control is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Lake Formation configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecureNamespaceInfo": { + "description": "Secure namespace information for Lake Formation.", + "type": "object", + "additionalProperties": false, + "properties": { + "ClusterId": { + "description": "The ID of the cluster.", + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "The ID of the cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nUpdate requires: No interruption\n" + }, + "Namespace": { + "description": "The namespace.", + "type": "string", + "minLength": 1, + "maxLength": 63, + "markdownDescription": "The namespace.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Secure namespace information for Lake Formation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EncryptionConfiguration": { + "description": "Encryption configuration for the security configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "InTransitEncryptionConfiguration": { + "$ref": "#/definitions/InTransitEncryptionConfiguration" + }, + "AtRestEncryptionConfiguration": { + "$ref": "#/definitions/AtRestEncryptionConfiguration" + } + }, + "markdownDescription": "Encryption configuration for the security configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InTransitEncryptionConfiguration": { + "description": "In-transit encryption configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "TLSCertificateConfiguration": { + "$ref": "#/definitions/TLSCertificateConfiguration" + } + }, + "markdownDescription": "In-transit encryption configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AtRestEncryptionConfiguration": { + "description": "At-rest encryption configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "S3EncryptionConfiguration": { + "$ref": "#/definitions/S3EncryptionConfiguration" + }, + "LocalDiskEncryptionConfiguration": { + "$ref": "#/definitions/LocalDiskEncryptionConfiguration" + } + }, + "markdownDescription": "At-rest encryption configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TLSCertificateConfiguration": { + "description": "TLS certificate configuration for in-transit encryption.", + "type": "object", + "additionalProperties": false, + "properties": { + "CertificateProviderType": { + "description": "The certificate provider type.", + "type": "string", + "enum": [ + "PEM" + ], + "markdownDescription": "The certificate provider type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PEM \nUpdate requires: No interruption\n" + }, + "PublicKeySecretArn": { + "description": "The ARN of the secret containing the public key.", + "type": "string", + "markdownDescription": "The ARN of the secret containing the public key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PrivateKeySecretArn": { + "description": "The ARN of the secret containing the private key.", + "type": "string", + "markdownDescription": "The ARN of the secret containing the private key.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "TLS certificate configuration for in-transit encryption.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3EncryptionConfiguration": { + "description": "S3 encryption configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "EncryptionOption": { + "description": "The S3 encryption option.", + "type": "string", + "enum": [ + "SSE-S3", + "SSE-KMS", + "CSE-KMS" + ], + "markdownDescription": "The S3 encryption option.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SSE-S3 | SSE-KMS | CSE-KMS \nUpdate requires: No interruption\n" + }, + "KMSKeyId": { + "description": "The KMS key ID for encryption.", + "type": "string", + "markdownDescription": "The KMS key ID for encryption.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "S3 encryption configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LocalDiskEncryptionConfiguration": { + "description": "Local disk encryption configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "EncryptionKeyProviderType": { + "description": "The encryption key provider type.", + "type": "string", + "enum": [ + "AwsKms" + ], + "markdownDescription": "The encryption key provider type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AwsKms \nUpdate requires: No interruption\n" + }, + "AwsKmsKeyId": { + "description": "The AWS KMS key ID.", + "type": "string", + "markdownDescription": "The AWS KMS key ID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Local disk encryption configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ContainerProvider": { + "description": "Container provider information.", + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "description": "The container provider type.", + "type": "string", + "enum": [ + "EKS" + ], + "markdownDescription": "The container provider type.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: EKS \nUpdate requires: No interruption\n" + }, + "Id": { + "description": "The container provider ID.", + "type": "string", + "markdownDescription": "The container provider ID.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Info": { + "$ref": "#/definitions/ContainerInfo" + } + }, + "required": [ + "Type", + "Id" + ], + "markdownDescription": "Container provider information.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ContainerInfo": { + "description": "Container information.", + "type": "object", + "additionalProperties": false, + "properties": { + "EksInfo": { + "$ref": "#/definitions/EksInfo" + } + }, + "markdownDescription": "Container information.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EksInfo": { + "description": "EKS information.", + "type": "object", + "additionalProperties": false, + "properties": { + "Namespace": { + "description": "The EKS namespace.", + "type": "string", + "markdownDescription": "The EKS namespace.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "EKS information.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "An arbitrary set of tags (key-value pairs) for this security configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "description": "The key name of the tag.", + "type": "string", + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The value for the tag.", + "type": "string", + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "An arbitrary set of tags (key-value pairs) for this security configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "description": "The ARN of the security configuration.", + "type": "string", + "markdownDescription": "The ARN of the security configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The ID of the security configuration.", + "type": "string", + "markdownDescription": "The ID of the security configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the security configuration.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the security configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9\\-_]+$ \nUpdate requires: Replacement\n" + }, + "ContainerProvider": { + "description": "Container provider for the security configuration.", + "$ref": "#/definitions/ContainerProvider", + "markdownDescription": "Container provider for the security configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "SecurityConfigurationData": { + "description": "Security configuration input for the security configuration.", + "$ref": "#/definitions/SecurityConfigurationData", + "markdownDescription": "Security configuration input for the security configuration.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this security configuration.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this security configuration.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "SecurityConfigurationData" + ], + "createOnlyProperties": [ + "/properties/SecurityConfigurationData", + "/properties/Name", + "/properties/ContainerProvider" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "writeOnlyProperties": [ + "/properties/SecurityConfigurationData/AuthenticationConfiguration/IdentityCenterConfiguration/IdentityCenterApplicationAssignmentRequired", + "/properties/SecurityConfigurationData/AuthenticationConfiguration/IdentityCenterConfiguration/IdentityCenterInstanceARN", + "/properties/SecurityConfigurationData/AuthorizationConfiguration/LakeFormationConfiguration/QueryAccessControlEnabled", + "/properties/SecurityConfigurationData/EncryptionConfiguration/AtRestEncryptionConfiguration" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "emr-containers:TagResource", + "emr-containers:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "emr-containers:CreateSecurityConfiguration", + "emr-containers:TagResource" + ] + }, + "read": { + "permissions": [ + "emr-containers:DescribeSecurityConfiguration" + ] + }, + "delete": { + "permissions": [ + "emr-containers:DeleteSecurityConfiguration", + "emr-containers:DescribeSecurityConfiguration" + ] + }, + "list": { + "permissions": [ + "emr-containers:ListSecurityConfigurations" + ] + }, + "update": { + "permissions": [ + "emr-containers:DescribeSecurityConfiguration", + "emr-containers:ListTagsForResource", + "emr-containers:TagResource", + "emr-containers:UntagResource" + ] + } + }, + "attributes": { + "Arn": { + "description": "The ARN of the security configuration.", + "type": "string", + "markdownDescription": "The ARN of the security configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "description": "The ID of the security configuration.", + "type": "string", + "markdownDescription": "The ID of the security configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-entityresolution-matchingworkflow.json b/server/schema/resources/aws-entityresolution-matchingworkflow.json index 06b397f4..307c1183 100644 --- a/server/schema/resources/aws-entityresolution-matchingworkflow.json +++ b/server/schema/resources/aws-entityresolution-matchingworkflow.json @@ -30,6 +30,14 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):kms:.*:[0-9]+:.*$ \nUpdate requires: No interruption\n" }, + "CustomerProfilesDomainArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):profile:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(domains/[a-zA-Z_0-9-]{1,255})$ \nUpdate requires: No interruption\n" + }, + "CustomerProfilesObjectTypeArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):profile:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(domains/[a-zA-Z_0-9-]{1,255}/object-types/[a-zA-Z_0-9-]{1,255})$ \nUpdate requires: No interruption\n" + }, "MatchingWorkflowArn": { "description": "The default MatchingWorkflow arn", "type": "string", @@ -76,7 +84,7 @@ "OutputS3Path": { "description": "The S3 path to which Entity Resolution will write the output table", "type": "string", - "markdownDescription": "The S3 path to which Entity Resolution will write the output table\n\n---\n\nRequired: Yes \nType: String \nPattern: ^s3://([^/]+)/?(.*?([^/]+)/?)$ \nUpdate requires: No interruption\n" + "markdownDescription": "The S3 path to which Entity Resolution will write the output table\n\n---\n\nRequired: No \nType: String \nPattern: ^s3://([^/]+)/?(.*?([^/]+)/?)$ \nUpdate requires: No interruption\n" }, "Output": { "type": "array", @@ -94,11 +102,13 @@ "ApplyNormalization": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "CustomerProfilesIntegrationConfig": { + "$ref": "#/definitions/CustomerProfilesIntegrationConfig" } }, "required": [ - "Output", - "OutputS3Path" + "Output" ], "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -172,7 +182,7 @@ "type": "array", "insertionOrder": false, "minItems": 1, - "maxItems": 15, + "maxItems": 25, "items": { "$ref": "#/definitions/Rule" }, @@ -209,7 +219,7 @@ "type": "array", "insertionOrder": false, "minItems": 1, - "maxItems": 15, + "maxItems": 25, "items": { "$ref": "#/definitions/RuleCondition" }, @@ -308,6 +318,23 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CustomerProfilesIntegrationConfig": { + "type": "object", + "properties": { + "DomainArn": { + "$ref": "#/definitions/CustomerProfilesDomainArn" + }, + "ObjectTypeArn": { + "$ref": "#/definitions/CustomerProfilesObjectTypeArn" + } + }, + "required": [ + "DomainArn", + "ObjectTypeArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "description": "A key-value pair to associate with a resource", "type": "object", @@ -432,7 +459,8 @@ "events:PutRule", "events:DeleteRule", "events:PutTargets", - "events:ListTargetsByRule" + "events:ListTargetsByRule", + "profile:PutIntegration" ] }, "read": { @@ -450,7 +478,8 @@ "events:DeleteRule", "events:PutTargets", "events:RemoveTargets", - "events:ListTargetsByRule" + "events:ListTargetsByRule", + "profile:DeleteIntegration" ] }, "list": { diff --git a/server/schema/resources/aws-events-eventbus.json b/server/schema/resources/aws-events-eventbus.json index 5ef05f47..a3ae1c6f 100644 --- a/server/schema/resources/aws-events-eventbus.json +++ b/server/schema/resources/aws-events-eventbus.json @@ -124,7 +124,12 @@ "events:TagResource", "kms:DescribeKey", "kms:GenerateDataKey", - "kms:Decrypt" + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncrypt", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + "kms:Encrypt" ] }, "read": { @@ -142,7 +147,12 @@ "events:UpdateEventBus", "kms:DescribeKey", "kms:GenerateDataKey", - "kms:Decrypt" + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncrypt", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + "kms:Encrypt" ] }, "delete": { diff --git a/server/schema/resources/aws-events-eventbuspolicy.json b/server/schema/resources/aws-events-eventbuspolicy.json index 888fd46c..d2696012 100644 --- a/server/schema/resources/aws-events-eventbuspolicy.json +++ b/server/schema/resources/aws-events-eventbuspolicy.json @@ -1,56 +1,73 @@ { "typeName": "AWS::Events::EventBusPolicy", "description": "Resource Type definition for AWS::Events::EventBusPolicy", - "additionalProperties": false, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-events-eventbuspolicy", + "definitions": { + "Condition": { + "type": "object", + "description": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization.", + "additionalProperties": false, + "properties": { + "Value": { + "description": "Specifies the key for the condition. Currently the only supported key is aws:PrincipalOrgID.", + "type": "string", + "markdownDescription": "Specifies the key for the condition. Currently the only supported key is aws:PrincipalOrgID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Type": { + "description": "Specifies the type of condition. Currently the only supported value is StringEquals.", + "type": "string", + "markdownDescription": "Specifies the type of condition. Currently the only supported value is StringEquals.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "Specifies the value for the key. Currently, this must be the ID of the organization.", + "type": "string", + "markdownDescription": "Specifies the value for the key. Currently, this must be the ID of the organization.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, "properties": { "EventBusName": { + "description": "The name of the event bus associated with the rule. If you omit this, the default event bus is used.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The name of the event bus associated with the rule. If you omit this, the default event bus is used.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: [\\.\\-_A-Za-z0-9]+ \nUpdate requires: Replacement\n" }, "Condition": { "$ref": "#/definitions/Condition" }, "Action": { + "description": "The action that you are enabling the other account to perform.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The action that you are enabling the other account to perform.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: events:[a-zA-Z]+ \nUpdate requires: No interruption\n" }, "StatementId": { + "description": "An identifier string for the external account that you are granting permissions to", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "minLength": 1, + "maxLength": 64, + "markdownDescription": "An identifier string for the external account that you are granting permissions to\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: [a-zA-Z0-9-_]+ \nUpdate requires: Replacement\n" }, "Statement": { + "description": "A JSON string that describes the permission policy statement. You can include a Policy parameter in the request instead of using the StatementId, Action, Principal, or Condition parameters.", "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "A JSON string that describes the permission policy statement. You can include a Policy parameter in the request instead of using the StatementId, Action, Principal, or Condition parameters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Principal": { + "description": "The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify \"*\" to permit any account to put events to your default event bus.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "minLength": 1, + "maxLength": 12, + "markdownDescription": "The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify \"*\" to permit any account to put events to your default event bus.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 12 \nPattern: (\\d{12}|\\*) \nUpdate requires: No interruption\n" } }, - "definitions": { - "Condition": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Type": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } + "additionalProperties": false, + "tagging": { + "taggable": false }, "required": [ "StatementId" @@ -60,15 +77,58 @@ "/properties/StatementId" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/EventBusName", + "/properties/StatementId" ], - "readOnlyProperties": [ - "/properties/Id" + "writeOnlyProperties": [ + "/properties/Principal", + "/properties/Condition", + "/properties/Action" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "deprecatedProperties": [ + "/properties/Principal", + "/properties/Condition", + "/properties/Action" + ], + "handlers": { + "create": { + "permissions": [ + "events:DescribeEventBus", + "events:PutPermission" + ] + }, + "read": { + "permissions": [ + "events:DescribeEventBus" + ] + }, + "update": { + "permissions": [ + "events:DescribeEventBus", + "events:PutPermission" + ] + }, + "delete": { + "permissions": [ + "events:DescribeEventBus", + "events:RemovePermission" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "EventBusName": { + "$ref": "resource-schema.json#/properties/EventBusName" + } + } + }, + "permissions": [ + "events:DescribeEventBus" + ] } - } + }, + "propertyTransform": { + "/properties/Statement": "$merge([{\"Sid\": StatementId}, Statement])" + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-evs-environment.json b/server/schema/resources/aws-evs-environment.json index efa809c1..7d93e394 100644 --- a/server/schema/resources/aws-evs-environment.json +++ b/server/schema/resources/aws-evs-environment.json @@ -31,6 +31,7 @@ }, "InitialVlanInfo": { "type": "object", + "additionalProperties": false, "properties": { "Cidr": { "type": "string", @@ -48,6 +49,7 @@ }, "HostInfoForCreate": { "type": "object", + "additionalProperties": false, "properties": { "HostName": { "$ref": "#/definitions/HostName" @@ -61,9 +63,10 @@ "InstanceType": { "type": "string", "enum": [ - "i4i.metal" + "i4i.metal", + "i7i.metal-24xl" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: i4i.metal \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: i4i.metal | i7i.metal-24xl \nUpdate requires: No interruption\n" }, "PlacementGroupId": { "type": "string", @@ -125,6 +128,7 @@ }, "Check": { "type": "object", + "additionalProperties": false, "properties": { "Type": { "type": "string", @@ -153,6 +157,7 @@ }, "Secret": { "type": "object", + "additionalProperties": false, "properties": { "SecretArn": { "type": "string", @@ -201,9 +206,10 @@ "VcfVersion": { "type": "string", "enum": [ - "VCF-5.2.1" + "VCF-5.2.1", + "VCF-5.2.2" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: VCF-5.2.1 \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: VCF-5.2.1 | VCF-5.2.2 \nUpdate requires: Replacement\n" }, "TermsAccepted": { "type": "boolean", @@ -232,6 +238,7 @@ "InitialVlans": { "description": "The initial Vlan configuration only required upon creation. Modification after creation will have no effect", "type": "object", + "additionalProperties": false, "properties": { "VmkManagement": { "$ref": "#/definitions/InitialVlanInfo" @@ -298,9 +305,11 @@ }, "ConnectivityInfo": { "type": "object", + "additionalProperties": false, "properties": { "PrivateRouteServerPeerings": { "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/RouteServerPeering" }, @@ -316,6 +325,7 @@ }, "VcfHostnames": { "type": "object", + "additionalProperties": false, "properties": { "VCenter": { "$ref": "#/definitions/HostName" @@ -370,7 +380,7 @@ "type": "string", "minLength": 1, "maxLength": 1011, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws:evs:[a-z]{2}-[a-z]+-[0-9]:[0-9]{12}:environment/[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:(aws|aws-cn|aws-us-gov):evs:[a-z]{2}-[a-z]+-[0-9]:[0-9]{12}:environment/[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, "EnvironmentState": { "$ref": "#/definitions/EnvironmentState" @@ -381,6 +391,7 @@ }, "Checks": { "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/Check" }, @@ -388,6 +399,7 @@ }, "Credentials": { "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/Secret" }, @@ -395,9 +407,11 @@ }, "ServiceAccessSecurityGroups": { "type": "object", + "additionalProperties": false, "properties": { "SecurityGroups": { "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/SecurityGroupId" }, @@ -558,7 +572,7 @@ "type": "string", "minLength": 1, "maxLength": 1011, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws:evs:[a-z]{2}-[a-z]+-[0-9]:[0-9]{12}:environment/[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:(aws|aws-cn|aws-us-gov):evs:[a-z]{2}-[a-z]+-[0-9]:[0-9]{12}:environment/[a-zA-Z0-9_-]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, "EnvironmentState": { "$ref": "#/definitions/EnvironmentState" @@ -569,6 +583,7 @@ }, "Checks": { "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/Check" }, @@ -576,6 +591,7 @@ }, "Credentials": { "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/Secret" }, diff --git a/server/schema/resources/aws-fis-experimenttemplate.json b/server/schema/resources/aws-fis-experimenttemplate.json index 19d91902..14e6adda 100644 --- a/server/schema/resources/aws-fis-experimenttemplate.json +++ b/server/schema/resources/aws-fis-experimenttemplate.json @@ -488,7 +488,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "fis:TagResource", diff --git a/server/schema/resources/aws-fms-notificationchannel.json b/server/schema/resources/aws-fms-notificationchannel.json index de51377c..43845f8d 100644 --- a/server/schema/resources/aws-fms-notificationchannel.json +++ b/server/schema/resources/aws-fms-notificationchannel.json @@ -11,6 +11,9 @@ "markdownDescription": "A resource ARN.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^([^\\s]+)$ \nUpdate requires: No interruption\n" } }, + "tagging": { + "taggable": false + }, "properties": { "SnsRoleName": { "$ref": "#/definitions/ResourceArn" @@ -27,13 +30,15 @@ "create": { "permissions": [ "fms:PutNotificationChannel", - "iam:PassRole" + "iam:PassRole", + "fms:GetNotificationChannel" ] }, "update": { "permissions": [ "fms:PutNotificationChannel", - "iam:PassRole" + "iam:PassRole", + "fms:GetNotificationChannel" ] }, "read": { @@ -43,6 +48,7 @@ }, "delete": { "permissions": [ + "fms:GetNotificationChannel", "fms:DeleteNotificationChannel" ] }, @@ -52,6 +58,9 @@ ] } }, + "createOnlyProperties": [ + "/properties/SnsTopicArn" + ], "primaryIdentifier": [ "/properties/SnsTopicArn" ], diff --git a/server/schema/resources/aws-fms-policy.json b/server/schema/resources/aws-fms-policy.json index 04566bcc..662c5921 100644 --- a/server/schema/resources/aws-fms-policy.json +++ b/server/schema/resources/aws-fms-policy.json @@ -416,7 +416,7 @@ "items": { "$ref": "#/definitions/ResourceTag" }, - "maxItems": 8, + "maxItems": 50, "insertionOrder": true, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, diff --git a/server/schema/resources/aws-fsx-datarepositoryassociation.json b/server/schema/resources/aws-fsx-datarepositoryassociation.json index 3b3e3055..79965329 100644 --- a/server/schema/resources/aws-fsx-datarepositoryassociation.json +++ b/server/schema/resources/aws-fsx-datarepositoryassociation.json @@ -1,6 +1,6 @@ { "typeName": "AWS::FSx::DataRepositoryAssociation", - "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).", + "description": "Resource Type definition for AWS::FSx::DataRepositoryAssociation", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fsx.git", "resourceLink": { "templateUri": "/fsx/home?region=${awsRegion}#data-repository-associations-details/${FileSystemId}/${AssociationId}", @@ -30,62 +30,58 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "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.", + "description": "Specifies the type of updated objects (new, changed, deleted) that will be automatically imported from the linked S3 bucket to your file system.", "type": "object", "additionalProperties": false, "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``.", - "markdownDescription": "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``.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "$ref": "#/definitions/EventTypes" } }, "required": [ "Events" ], - "markdownDescription": "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.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the type of updated objects (new, changed, deleted) that will be automatically imported from the linked S3 bucket to your file system.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "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.", + "description": "Specifies the type of updated objects (new, changed, deleted) that will be automatically exported from your file system to the linked S3 bucket.", "type": "object", "additionalProperties": false, "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``.", - "markdownDescription": "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``.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "$ref": "#/definitions/EventTypes" } }, "required": [ "Events" ], - "markdownDescription": "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.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the type of updated objects (new, changed, deleted) that will be automatically exported from your file system to the linked S3 bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { - "description": "Specifies a key-value pair for a resource tag.", + "description": "A key-value pair to associate with a resource.", "type": "object", "additionalProperties": false, "properties": { "Key": { "type": "string", - "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.", + "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 -. ", "minLength": 1, "maxLength": 128, - "markdownDescription": "A value that specifies the ``TagKey``, the name of the tag. Tag keys must be unique for the resource to which they are attached.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, "Value": { "type": "string", - "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``.", + "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 -. ", "minLength": 0, "maxLength": 256, - "markdownDescription": "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``.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" } }, "required": [ "Key", "Value" ], - "markdownDescription": "Specifies a key-value pair for a resource tag.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "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.", @@ -93,14 +89,10 @@ "additionalProperties": false, "properties": { "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.", - "markdownDescription": "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.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "$ref": "#/definitions/AutoImportPolicy" }, "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.", - "markdownDescription": "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.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "$ref": "#/definitions/AutoExportPolicy" } }, "markdownDescription": "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.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -109,38 +101,38 @@ "properties": { "AssociationId": { "type": "string", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The system-generated, unique ID of the data repository association.", + "markdownDescription": "The system-generated, unique ID of the data repository association.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "ResourceARN": { "type": "string", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify Amazon Web Services resources. We require an ARN when you need to specify a resource unambiguously across all of Amazon Web Services. For more information, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.", + "markdownDescription": "The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify Amazon Web Services resources. We require an ARN when you need to specify a resource unambiguously across all of Amazon Web Services. For more information, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "FileSystemId": { "type": "string", - "description": "The ID of the file system on which the data repository association is configured.", - "markdownDescription": "The ID of the file system on which the data repository association is configured.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The globally unique ID of the file system, assigned by Amazon FSx.", + "markdownDescription": "The globally unique ID of the file system, assigned by Amazon FSx.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "FileSystemPath": { "type": "string", - "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.", - "markdownDescription": "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.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "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.", + "markdownDescription": "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\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "DataRepositoryPath": { "type": "string", - "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.", - "markdownDescription": "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.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "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.", + "markdownDescription": "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.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "BatchImportMetaDataOnCreate": { "type": "boolean", - "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``.", - "markdownDescription": "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``.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "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.", + "markdownDescription": "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.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "ImportedFileChunkSize": { "type": "integer", - "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.", - "markdownDescription": "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.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "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.", + "markdownDescription": "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.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "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.", @@ -154,8 +146,8 @@ "items": { "$ref": "#/definitions/Tag" }, - "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).", - "markdownDescription": "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).\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "description": "A list of Tag values, with a maximum of 50 elements.", + "markdownDescription": "A list of Tag values, with a maximum of 50 elements.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "tagging": { @@ -237,13 +229,13 @@ "attributes": { "AssociationId": { "type": "string", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The system-generated, unique ID of the data repository association.", + "markdownDescription": "The system-generated, unique ID of the data repository association.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "ResourceARN": { "type": "string", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify Amazon Web Services resources. We require an ARN when you need to specify a resource unambiguously across all of Amazon Web Services. For more information, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.", + "markdownDescription": "The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify Amazon Web Services resources. We require an ARN when you need to specify a resource unambiguously across all of Amazon Web Services. For more information, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-fsx-filesystem.json b/server/schema/resources/aws-fsx-filesystem.json index 964b09d0..0ec0c076 100644 --- a/server/schema/resources/aws-fsx-filesystem.json +++ b/server/schema/resources/aws-fsx-filesystem.json @@ -111,6 +111,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "DomainJoinServiceAccountSecret": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "DnsIps": { "type": "array", "uniqueItems": false, @@ -271,6 +275,10 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "EndpointIpv6AddressRange": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "PreferredSubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -370,6 +378,9 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "FsrmConfiguration": { + "$ref": "#/definitions/FsrmConfiguration" + }, "PreferredSubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -571,6 +582,24 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "FsrmConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "FsrmServiceEnabled": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "EventLogDestination": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FsrmServiceEnabled" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "UserAndGroupQuotas": { "type": "object", "additionalProperties": false, diff --git a/server/schema/resources/aws-fsx-s3accesspointattachment.json b/server/schema/resources/aws-fsx-s3accesspointattachment.json index 4df8b35a..5377de68 100644 --- a/server/schema/resources/aws-fsx-s3accesspointattachment.json +++ b/server/schema/resources/aws-fsx-s3accesspointattachment.json @@ -4,29 +4,48 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "properties": { "Name": { - "description": "The Name of the S3AccessPointAttachment", + "description": "The name of the S3 access point attachment; also used for the name of the S3 access point.", "type": "string", "minLength": 3, "maxLength": 50, - "markdownDescription": "The Name of the S3AccessPointAttachment\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 50 \nPattern: ^(?=[a-z0-9])[a-z0-9-]{1,48}[a-z0-9]$ \nUpdate requires: Replacement\n" + "markdownDescription": "The name of the S3 access point attachment; also used for the name of the S3 access point.\n\n---\n\nRequired: Conditional \nType: String \nMinimum Length: 3 \nMaximum Length: 50 \nPattern: ^(?=[a-z0-9])[a-z0-9-]{1,48}[a-z0-9]$ \nUpdate requires: Replacement\n" }, "Type": { - "description": "", + "description": "The type of Amazon FSx volume that the S3 access point is attached to.", "type": "string", "enum": [ - "OPENZFS" + "OPENZFS", + "ONTAP" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: OPENZFS \nUpdate requires: Replacement\n" + "markdownDescription": "The type of Amazon FSx volume that the S3 access point is attached to.\n\n---\n\nRequired: Conditional \nType: String \nAllowed Values: OPENZFS | ONTAP \nUpdate requires: Replacement\n" + }, + "OntapConfiguration": { + "description": "The OntapConfiguration of the S3 access point attachment.", + "$ref": "#/definitions/S3AccessPointOntapConfiguration", + "markdownDescription": "The OntapConfiguration of the S3 access point attachment.\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: Replacement\n" }, "OpenZFSConfiguration": { - "description": "", + "description": "The OpenZFSConfiguration of the S3 access point attachment.", "$ref": "#/definitions/S3AccessPointOpenZFSConfiguration", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + "markdownDescription": "The OpenZFSConfiguration of the S3 access point attachment.\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: Replacement\n" }, "S3AccessPoint": { - "description": "", + "description": "The S3 access point configuration of the S3 access point attachment.", "$ref": "#/definitions/S3AccessPoint", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\nRead only property: Yes" + "markdownDescription": "The S3 access point configuration of the S3 access point attachment.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\nRead only property: Yes" + }, + "Lifecycle": { + "description": "The lifecycle status of the S3 access point attachment.", + "type": "string", + "enum": [ + "AVAILABLE", + "CREATING", + "DELETING", + "FAILED", + "MISCONFIGURED", + "UPDATING" + ], + "markdownDescription": "The lifecycle status of the S3 access point attachment.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AVAILABLE | CREATING | DELETING | FAILED | MISCONFIGURED | UPDATING \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -35,11 +54,11 @@ "additionalProperties": false, "properties": { "VpcId": { - "description": "", + "description": "Specifies the virtual private cloud (VPC) for the S3 access point VPC configuration, if one exists.", "type": "string", "minLength": 12, "maxLength": 21, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 12 \nMaximum Length: 21 \nPattern: ^(vpc-[0-9a-f]{8,})$ \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the virtual private cloud (VPC) for the S3 access point VPC configuration, if one exists.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 12 \nMaximum Length: 21 \nPattern: ^(vpc-[0-9a-f]{8,})$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -52,51 +71,132 @@ "additionalProperties": false, "properties": { "ResourceARN": { - "description": "", + "description": "The S3 access point's ARN.", "type": "string", "minLength": 8, "maxLength": 1024, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 8 \nMaximum Length: 1024 \nPattern: ^arn:[^:]{1,63}:[^:]{0,63}:[^:]{0,63}:(?:|\\d{12}):[^/].{0,1023}$ \nUpdate requires: No interruption\n" + "markdownDescription": "The S3 access point's ARN.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 8 \nMaximum Length: 1024 \nPattern: ^arn:[^:]{1,63}:[^:]{0,63}:[^:]{0,63}:(?:|\\d{12}):[^/].{0,1023}$ \nUpdate requires: No interruption\n" }, "Alias": { - "description": "", + "description": "The S3 access point's alias.", "type": "string", "minLength": 1, "maxLength": 63, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^[0-9a-z\\\\-]{1,63} \nUpdate requires: No interruption\n" + "markdownDescription": "The S3 access point's alias.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^[0-9a-z\\\\-]{1,63} \nUpdate requires: No interruption\n" }, "VpcConfiguration": { - "description": "", + "description": "The S3 access point's virtual private cloud (VPC) configuration.", "$ref": "#/definitions/S3AccessPointVpcConfiguration", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The S3 access point's virtual private cloud (VPC) configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Policy": { - "description": "", + "description": "The S3 access point's policy.", "type": [ "object", "string" ], "minLength": 1, "maxLength": 200000, - "markdownDescription": "\n\n---\n\nRequired: No \nType: ['object', 'string'] \nMinimum Length: 1 \nMaximum Length: 200000 \nUpdate requires: No interruption\n" + "markdownDescription": "The S3 access point's policy.\n\n---\n\nRequired: No \nType: ['object', 'string'] \nMinimum Length: 1 \nMaximum Length: 200000 \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" }, - "FileSystemGID": { + "OntapUnixFileSystemUser": { "type": "object", "additionalProperties": false, "properties": { - "Gid": { - "description": "", - "type": "number", - "minimum": 0, - "maximum": 4294967295, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + "Name": { + "description": "The name of the UNIX user.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The name of the UNIX user.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$ \nUpdate requires: No interruption\n" } }, "required": [ - "Gid" + "Name" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OntapWindowsFileSystemUser": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the Windows user.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The name of the Windows user.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OntapFileSystemIdentity": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "description": "Specifies the FSx for ONTAP user identity type, accepts either UNIX or WINDOWS.", + "type": "string", + "enum": [ + "UNIX", + "WINDOWS" + ], + "markdownDescription": "Specifies the FSx for ONTAP user identity type, accepts either UNIX or WINDOWS.\n\n---\n\nRequired: Conditional \nType: String \nAllowed Values: UNIX | WINDOWS \nUpdate requires: No interruption\n" + }, + "UnixUser": { + "description": "Specifies the properties of the file system UNIX user.", + "$ref": "#/definitions/OntapUnixFileSystemUser", + "markdownDescription": "Specifies the properties of the file system UNIX user.\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: No interruption\n" + }, + "WindowsUser": { + "description": "Specifies the properties of the file system Windows user.", + "$ref": "#/definitions/OntapWindowsFileSystemUser", + "markdownDescription": "Specifies the properties of the file system Windows user.\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type" + ], + "oneOf": [ + { + "required": [ + "UnixUser" + ] + }, + { + "required": [ + "WindowsUser" + ] + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3AccessPointOntapConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "VolumeId": { + "description": "The ID of the FSx for ONTAP volume that the S3 access point is attached to.", + "type": "string", + "minLength": 23, + "maxLength": 23, + "markdownDescription": "The ID of the FSx for ONTAP volume that the S3 access point is attached to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 23 \nMaximum Length: 23 \nPattern: ^(fsvol-[0-9a-f]{17,})$ \nUpdate requires: No interruption\n" + }, + "FileSystemIdentity": { + "description": "The file system identity used to authorize file access requests made using the S3 access point.", + "$ref": "#/definitions/OntapFileSystemIdentity", + "markdownDescription": "The file system identity used to authorize file access requests made using the S3 access point.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "VolumeId", + "FileSystemIdentity" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -105,26 +205,26 @@ "additionalProperties": false, "properties": { "Uid": { - "description": "", + "description": "The UID of the file system user.", "type": "number", "minimum": 0, "maximum": 4294967295, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + "markdownDescription": "The UID of the file system user.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" }, "Gid": { - "description": "", + "description": "The GID of the file system user.", "type": "number", "minimum": 0, "maximum": 4294967295, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + "markdownDescription": "The GID of the file system user.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" }, "SecondaryGids": { - "description": "", + "description": "The list of secondary GIDs for the file system user.", "type": "array", "items": { "$ref": "#/definitions/FileSystemGID" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The list of secondary GIDs for the file system user.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ @@ -138,17 +238,17 @@ "additionalProperties": false, "properties": { "Type": { - "description": "", + "description": "Specifies the FSx for OpenZFS user identity type, accepts only POSIX.", "type": "string", "enum": [ "POSIX" ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: POSIX \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the FSx for OpenZFS user identity type, accepts only POSIX.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: POSIX \nUpdate requires: No interruption\n" }, "PosixUser": { - "description": "", + "description": "Specifies the UID and GIDs of the file system POSIX user.", "$ref": "#/definitions/OpenZFSPosixFileSystemUser", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the UID and GIDs of the file system POSIX user.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -162,16 +262,16 @@ "additionalProperties": false, "properties": { "VolumeId": { - "description": "", + "description": "The ID of the FSx for OpenZFS volume that the S3 access point is attached to.", "type": "string", "minLength": 23, "maxLength": 23, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 23 \nMaximum Length: 23 \nPattern: ^(fsvol-[0-9a-f]{17,})$ \nUpdate requires: No interruption\n" + "markdownDescription": "The ID of the FSx for OpenZFS volume that the S3 access point is attached to.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 23 \nMaximum Length: 23 \nPattern: ^(fsvol-[0-9a-f]{17,})$ \nUpdate requires: No interruption\n" }, "FileSystemIdentity": { - "description": "", + "description": "The file system identity used to authorize file access requests made using the S3 access point.", "$ref": "#/definitions/OpenZFSFileSystemIdentity", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The file system identity used to authorize file access requests made using the S3 access point.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -179,24 +279,54 @@ "FileSystemIdentity" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FileSystemGID": { + "type": "object", + "additionalProperties": false, + "properties": { + "Gid": { + "description": "The GID of the file system user.", + "type": "number", + "minimum": 0, + "maximum": 4294967295, + "markdownDescription": "The GID of the file system user.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Gid" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "additionalProperties": false, "replacementStrategy": "delete_then_create", "required": [ "Name", - "Type", - "OpenZFSConfiguration" + "Type" + ], + "oneOf": [ + { + "required": [ + "OntapConfiguration" + ] + }, + { + "required": [ + "OpenZFSConfiguration" + ] + } ], "createOnlyProperties": [ "/properties/Name", "/properties/Type", + "/properties/OntapConfiguration", "/properties/OpenZFSConfiguration", "/properties/S3AccessPoint" ], "readOnlyProperties": [ "/properties/S3AccessPoint/ResourceARN", - "/properties/S3AccessPoint/Alias" + "/properties/S3AccessPoint/Alias", + "/properties/Lifecycle" ], "writeOnlyProperties": [ "/properties/S3AccessPoint/Policy" @@ -238,5 +368,19 @@ ] } }, - "attributes": {} + "attributes": { + "Lifecycle": { + "description": "The lifecycle status of the S3 access point attachment.", + "type": "string", + "enum": [ + "AVAILABLE", + "CREATING", + "DELETING", + "FAILED", + "MISCONFIGURED", + "UPDATING" + ], + "markdownDescription": "The lifecycle status of the S3 access point attachment.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AVAILABLE | CREATING | DELETING | FAILED | MISCONFIGURED | UPDATING \nUpdate requires: No interruption\nRead only property: Yes" + } + } } \ No newline at end of file diff --git a/server/schema/resources/aws-fsx-storagevirtualmachine.json b/server/schema/resources/aws-fsx-storagevirtualmachine.json index 750528a4..97cb246f 100644 --- a/server/schema/resources/aws-fsx-storagevirtualmachine.json +++ b/server/schema/resources/aws-fsx-storagevirtualmachine.json @@ -64,6 +64,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "DomainJoinServiceAccountSecret": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "DnsIps": { "type": "array", "uniqueItems": false, diff --git a/server/schema/resources/aws-gamelift-build.json b/server/schema/resources/aws-gamelift-build.json index 88403385..e9a693ca 100644 --- a/server/schema/resources/aws-gamelift-build.json +++ b/server/schema/resources/aws-gamelift-build.json @@ -94,9 +94,10 @@ "AMAZON_LINUX_2", "AMAZON_LINUX_2023", "WINDOWS_2012", - "WINDOWS_2016" + "WINDOWS_2016", + "WINDOWS_2022" ], - "markdownDescription": "The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AMAZON_LINUX | AMAZON_LINUX_2 | AMAZON_LINUX_2023 | WINDOWS_2012 | WINDOWS_2016 \nUpdate requires: Replacement\n" + "markdownDescription": "The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AMAZON_LINUX | AMAZON_LINUX_2 | AMAZON_LINUX_2023 | WINDOWS_2012 | WINDOWS_2016 | WINDOWS_2022 \nUpdate requires: Replacement\n" }, "StorageLocation": { "description": "Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.", diff --git a/server/schema/resources/aws-gamelift-containerfleet.json b/server/schema/resources/aws-gamelift-containerfleet.json index 30e8f56f..d9e5e9af 100644 --- a/server/schema/resources/aws-gamelift-containerfleet.json +++ b/server/schema/resources/aws-gamelift-containerfleet.json @@ -159,18 +159,22 @@ "description": "The minimum value allowed for the fleet's instance count for a location.", "type": "integer", "minimum": 0, - "markdownDescription": "The minimum value allowed for the fleet's instance count for a location.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The minimum value allowed for the fleet's instance count for a location.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "MaxSize": { "description": "The maximum value that is allowed for the fleet's instance count for a location.", "type": "integer", "minimum": 0, "markdownDescription": "The maximum value that is allowed for the fleet's instance count for a location.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "ManagedCapacityConfiguration": { + "description": "Configuration options for Amazon GameLift Servers-managed capacity behavior.", + "$ref": "#/definitions/ManagedCapacityConfiguration", + "markdownDescription": "Configuration options for Amazon GameLift Servers-managed capacity behavior.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "additionalProperties": false, "required": [ - "MinSize", "MaxSize" ], "markdownDescription": "Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -187,6 +191,15 @@ }, "StoppedActions": { "$ref": "#/definitions/StoppedActions" + }, + "PlayerGatewayStatus": { + "description": "The player gateway status for the location.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ], + "markdownDescription": "The player gateway status for the location.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -195,6 +208,33 @@ ], "markdownDescription": "A remote location where a multi-location fleet can deploy EC2 instances for game hosting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ManagedCapacityConfiguration": { + "description": "Configuration options for Amazon GameLift Servers managed capacity behavior.", + "type": "object", + "properties": { + "ZeroCapacityStrategy": { + "description": "The strategy Amazon GameLift Servers will use to automatically scale your capacity to and from zero in response to game session activity. Game session activity refers to any active running sessions or game session requests. When set to SCALE_TO_AND_FROM_ZERO, MinSize must not be specified and will be managed automatically. When set to MANUAL, MinSize is required.", + "type": "string", + "enum": [ + "SCALE_TO_AND_FROM_ZERO", + "MANUAL" + ], + "markdownDescription": "The strategy Amazon GameLift Servers will use to automatically scale your capacity to and from zero in response to game session activity. Game session activity refers to any active running sessions or game session requests. When set to SCALE_TO_AND_FROM_ZERO, MinSize must not be specified and will be managed automatically. When set to MANUAL, MinSize is required.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SCALE_TO_AND_FROM_ZERO | MANUAL \nUpdate requires: No interruption\n" + }, + "ScaleInAfterInactivityMinutes": { + "description": "Length of time, in minutes, that Amazon GameLift Servers will wait before scaling in your MinSize and DesiredInstances to 0 after a period with no game session activity.", + "type": "integer", + "minimum": 5, + "maximum": 1440, + "markdownDescription": "Length of time, in minutes, that Amazon GameLift Servers will wait before scaling in your MinSize and DesiredInstances to 0 after a period with no game session activity.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "ZeroCapacityStrategy" + ], + "markdownDescription": "Configuration options for Amazon GameLift Servers managed capacity behavior.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ScalingPolicy": { "description": "Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.", "type": "object", @@ -564,6 +604,16 @@ }, "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "PlayerGatewayMode": { + "description": "The player gateway mode for the container fleet.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "REQUIRED" + ], + "markdownDescription": "The player gateway mode for the container fleet.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED | REQUIRED \nUpdate requires: Replacement\n" + }, "FleetArn": { "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container fleet resource and uniquely identifies it across all AWS Regions.", "type": "string", @@ -578,7 +628,8 @@ ], "createOnlyProperties": [ "/properties/InstanceType", - "/properties/BillingType" + "/properties/BillingType", + "/properties/PlayerGatewayMode" ], "readOnlyProperties": [ "/properties/CreationTime", @@ -588,7 +639,8 @@ "/properties/DeploymentDetails", "/properties/GameServerContainerGroupDefinitionArn", "/properties/PerInstanceContainerGroupDefinitionArn", - "/properties/MaximumGameServerContainerGroupsPerInstance" + "/properties/MaximumGameServerContainerGroupsPerInstance", + "/properties/Locations/*/PlayerGatewayStatus" ], "writeOnlyProperties": [ "/properties/DeploymentConfiguration", diff --git a/server/schema/resources/aws-gamelift-fleet.json b/server/schema/resources/aws-gamelift-fleet.json index ec17b2f3..ad7698d2 100644 --- a/server/schema/resources/aws-gamelift-fleet.json +++ b/server/schema/resources/aws-gamelift-fleet.json @@ -114,18 +114,22 @@ "description": "The minimum value allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.", "type": "integer", "minimum": 0, - "markdownDescription": "The minimum value allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The minimum value allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "MaxSize": { "description": "The maximum value that is allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"1\". Once the fleet is active, you can change this value.", "type": "integer", "minimum": 0, "markdownDescription": "The maximum value that is allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"1\". Once the fleet is active, you can change this value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "ManagedCapacityConfiguration": { + "description": "Configuration options for Amazon GameLift Servers-managed capacity behavior.", + "$ref": "#/definitions/ManagedCapacityConfiguration", + "markdownDescription": "Configuration options for Amazon GameLift Servers-managed capacity behavior.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "additionalProperties": false, "required": [ - "MinSize", "MaxSize" ], "markdownDescription": "Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -139,6 +143,15 @@ }, "LocationCapacity": { "$ref": "#/definitions/LocationCapacity" + }, + "PlayerGatewayStatus": { + "description": "The player gateway status for the location.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ], + "markdownDescription": "The player gateway status for the location.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -147,6 +160,50 @@ ], "markdownDescription": "A remote location where a multi-location fleet can deploy EC2 instances for game hosting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ManagedCapacityConfiguration": { + "description": "Configuration options for Amazon GameLift Servers-managed capacity behavior.", + "type": "object", + "properties": { + "ZeroCapacityStrategy": { + "description": "The strategy Amazon GameLift Servers will use to automatically scale your capacity to and from zero in response to game session activity. Game session activity refers to any active running sessions or game session requests. When set to SCALE_TO_AND_FROM_ZERO, MinSize must not be specified and will be managed automatically. When set to MANUAL, MinSize is required.", + "type": "string", + "enum": [ + "SCALE_TO_AND_FROM_ZERO", + "MANUAL" + ], + "markdownDescription": "The strategy Amazon GameLift Servers will use to automatically scale your capacity to and from zero in response to game session activity. Game session activity refers to any active running sessions or game session requests. When set to SCALE_TO_AND_FROM_ZERO, MinSize must not be specified and will be managed automatically. When set to MANUAL, MinSize is required.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SCALE_TO_AND_FROM_ZERO | MANUAL \nUpdate requires: No interruption\n" + }, + "ScaleInAfterInactivityMinutes": { + "description": "Length of time, in minutes, that Amazon GameLift Servers will wait before scaling in your MinSize and DesiredInstances to 0 after a period with no game session activity.", + "type": "integer", + "minimum": 5, + "maximum": 1440, + "markdownDescription": "Length of time, in minutes, that Amazon GameLift Servers will wait before scaling in your MinSize and DesiredInstances to 0 after a period with no game session activity.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "ZeroCapacityStrategy" + ], + "markdownDescription": "Configuration options for Amazon GameLift Servers-managed capacity behavior.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PlayerGatewayConfiguration": { + "description": "Configuration for player gateway.", + "type": "object", + "properties": { + "GameServerIpProtocolSupported": { + "description": "The IP protocol supported by the game server.", + "type": "string", + "enum": [ + "IPv4", + "DUAL_STACK" + ], + "markdownDescription": "The IP protocol supported by the game server.\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPv4 | DUAL_STACK \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration for player gateway.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ResourceCreationLimitPolicy": { "description": "A policy that limits the number of game sessions a player can create on the same fleet. This optional policy gives game owners control over how players can consume available game server resources. A resource creation policy makes the following statement: \"An individual player can create a maximum number of new game sessions within a specified time period\".\n\nThe policy is evaluated when a player tries to create a new game session. For example, assume you have a policy of 10 new game sessions and a time period of 60 minutes. On receiving a CreateGameSession request, Amazon GameLift checks that the player (identified by CreatorId) has created fewer than 10 game sessions in the past 60 minutes.", "type": "object", @@ -552,6 +609,11 @@ "maxLength": 1024, "markdownDescription": "A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the AWS Management Console.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^vpc-\\S+ \nUpdate requires: Replacement\n" }, + "PlayerGatewayConfiguration": { + "description": "Configuration for player gateway.", + "$ref": "#/definitions/PlayerGatewayConfiguration", + "markdownDescription": "Configuration for player gateway.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, "ResourceCreationLimitPolicy": { "description": "A policy that limits the number of game sessions an individual player can create over a span of time for this fleet.", "$ref": "#/definitions/ResourceCreationLimitPolicy", @@ -606,6 +668,16 @@ "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift Servers Fleet resource and uniquely identifies it. ARNs are unique across all Regions. In a GameLift Fleet ARN, the resource ID matches the FleetId value.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift Servers Fleet resource and uniquely identifies it. ARNs are unique across all Regions. In a GameLift Fleet ARN, the resource ID matches the FleetId value.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:.*:fleet/[a-z]*fleet-[a-zA-Z0-9\\-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PlayerGatewayMode": { + "description": "The player gateway mode for the fleet.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "REQUIRED" + ], + "markdownDescription": "The player gateway mode for the fleet.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED | REQUIRED \nUpdate requires: Replacement\n" } }, "required": [ @@ -625,7 +697,9 @@ "/properties/ScriptId", "/properties/ServerLaunchParameters", "/properties/ServerLaunchPath", - "/properties/ComputeType" + "/properties/ComputeType", + "/properties/PlayerGatewayMode", + "/properties/PlayerGatewayConfiguration" ], "deprecatedProperties": [ "/properties/LogPaths", @@ -637,7 +711,8 @@ ], "readOnlyProperties": [ "/properties/FleetId", - "/properties/FleetArn" + "/properties/FleetArn", + "/properties/Locations/*/PlayerGatewayStatus" ], "writeOnlyProperties": [ "/properties/ApplyCapacity" diff --git a/server/schema/resources/aws-gamelift-script.json b/server/schema/resources/aws-gamelift-script.json index 05c00308..0bca84e9 100644 --- a/server/schema/resources/aws-gamelift-script.json +++ b/server/schema/resources/aws-gamelift-script.json @@ -130,14 +130,22 @@ "SizeOnDisk": { "description": "The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at \"0\".", "type": "integer", - "minimum": 1, + "minimum": 0, "markdownDescription": "The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at \"0\".\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NodeJsVersion": { + "description": "The Node.js version used for execution of the Realtime script.", + "type": "string", + "markdownDescription": "The Node.js version used for execution of the Realtime script.\n\n---\n\nRequired: No \nType: String \nPattern: ^\\d+\\.[x0-9]+$ \nUpdate requires: Replacement\n" } }, "additionalProperties": false, "required": [ "StorageLocation" ], + "createOnlyProperties": [ + "/properties/NodeJsVersion" + ], "readOnlyProperties": [ "/properties/Id", "/properties/CreationTime", @@ -205,7 +213,7 @@ "SizeOnDisk": { "description": "The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at \"0\".", "type": "integer", - "minimum": 1, + "minimum": 0, "markdownDescription": "The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at \"0\".\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" } } diff --git a/server/schema/resources/aws-gameliftstreams-application.json b/server/schema/resources/aws-gameliftstreams-application.json index df8fe593..1635c899 100644 --- a/server/schema/resources/aws-gameliftstreams-application.json +++ b/server/schema/resources/aws-gameliftstreams-application.json @@ -132,6 +132,18 @@ "s3:ListBucket" ] }, + "delete": { + "permissions": [ + "gameliftstreams:DeleteApplication", + "gameliftstreams:GetApplication" + ] + }, + "list": { + "permissions": [ + "gameliftstreams:ListApplications", + "gameliftstreams:ListTagsForResource" + ] + }, "read": { "permissions": [ "gameliftstreams:GetApplication", @@ -146,18 +158,6 @@ "gameliftstreams:UntagResource", "gameliftstreams:ListTagsForResource" ] - }, - "delete": { - "permissions": [ - "gameliftstreams:DeleteApplication", - "gameliftstreams:GetApplication" - ] - }, - "list": { - "permissions": [ - "gameliftstreams:ListApplications", - "gameliftstreams:ListTagsForResource" - ] } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-gameliftstreams-streamgroup.json b/server/schema/resources/aws-gameliftstreams-streamgroup.json index 34abfd6f..ca67b5b7 100644 --- a/server/schema/resources/aws-gameliftstreams-streamgroup.json +++ b/server/schema/resources/aws-gameliftstreams-streamgroup.json @@ -36,9 +36,23 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "OnDemandCapacity": { + "type": "integer", + "minimum": 0, + "description": "This shape is deprecated.", + "markdownDescription": "This shape is deprecated.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TargetIdleCapacity": { + "type": "integer", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaximumCapacity": { "type": "integer", "minimum": 0, "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "VpcTransitConfiguration": { + "$ref": "#/definitions/VpcTransitConfiguration" } }, "required": [ @@ -67,6 +81,34 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "VpcTransitConfiguration": { + "type": "object", + "properties": { + "VpcId": { + "type": "string", + "maxLength": 32, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 32 \nUpdate requires: No interruption\n" + }, + "Ipv4CidrBlocks": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[1-2][0-9]|3[0-2])$ \nUpdate requires: No interruption\n" + }, + "maxItems": 5, + "minItems": 1, + "uniqueItems": true, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Ipv4CidrBlocks", + "VpcId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "StreamClass": { "type": "string", "maxLength": 20, @@ -138,7 +180,20 @@ "gameliftstreams:GetStreamGroup", "gameliftstreams:TagResource", "gameliftstreams:ListTagsForResource", - "gameliftstreams:AssociateApplications" + "gameliftstreams:AssociateApplications", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "gameliftstreams:DeleteStreamGroup", + "gameliftstreams:GetStreamGroup" + ] + }, + "list": { + "permissions": [ + "gameliftstreams:ListStreamGroups", + "gameliftstreams:ListTagsForResource" ] }, "read": { @@ -155,19 +210,8 @@ "gameliftstreams:RemoveStreamGroupLocations", "gameliftstreams:TagResource", "gameliftstreams:UntagResource", - "gameliftstreams:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "gameliftstreams:DeleteStreamGroup", - "gameliftstreams:GetStreamGroup" - ] - }, - "list": { - "permissions": [ - "gameliftstreams:ListStreamGroups", - "gameliftstreams:ListTagsForResource" + "gameliftstreams:ListTagsForResource", + "ec2:DescribeVpcs" ] } }, @@ -184,11 +228,18 @@ "gameliftstreams:ListTagsForResource" ] }, + "propertyTransform": { + "/properties/LocationConfiguration/OnDemandCapacity": "$exists(LocationConfiguration.MaximumCapacity) ? (LocationConfiguration.MaximumCapacity - LocationConfiguration.AlwaysOnCapacity) : 0", + "/properties/LocationConfiguration/MaximumCapacity": "($exists(LocationConfiguration.OnDemandCapacity) ? LocationConfiguration.OnDemandCapacity : 0) + LocationConfiguration.AlwaysOnCapacity" + }, "additionalIdentifiers": [ [ "/properties/Id" ] ], + "deprecatedProperties": [ + "/properties/LocationConfiguration/OnDemandCapacity" + ], "attributes": { "Arn": { "type": "string", diff --git a/server/schema/resources/aws-glue-catalog.json b/server/schema/resources/aws-glue-catalog.json new file mode 100644 index 00000000..e2edb460 --- /dev/null +++ b/server/schema/resources/aws-glue-catalog.json @@ -0,0 +1,422 @@ +{ + "typeName": "AWS::Glue::Catalog", + "description": "Creates a catalog in the Glue Data Catalog.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue", + "definitions": { + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FederatedCatalog": { + "type": "object", + "description": "A FederatedCatalog structure that references an entity outside the Glue Data Catalog.", + "properties": { + "Identifier": { + "type": "string", + "description": "A unique identifier for the federated catalog.", + "markdownDescription": "A unique identifier for the federated catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ConnectionName": { + "type": "string", + "description": "The name of the connection to an external data source.", + "markdownDescription": "The name of the connection to an external data source.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A FederatedCatalog structure that references an entity outside the Glue Data Catalog.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetRedshiftCatalog": { + "type": "object", + "description": "A structure that describes a target catalog for resource linking.", + "properties": { + "CatalogArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the catalog resource.", + "markdownDescription": "The Amazon Resource Name (ARN) of the catalog resource.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CatalogArn" + ], + "additionalProperties": false, + "markdownDescription": "A structure that describes a target catalog for resource linking.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataLakePrincipal": { + "type": "object", + "description": "The Lake Formation principal.", + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string", + "description": "An identifier for the Lake Formation principal.", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "An identifier for the Lake Formation principal.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The Lake Formation principal.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PrincipalPermissions": { + "type": "object", + "description": "Permissions granted to a principal.", + "properties": { + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + }, + "Permissions": { + "type": "array", + "description": "The permissions that are granted to the principal.", + "items": { + "type": "string", + "enum": [ + "ALL", + "SELECT", + "ALTER", + "DROP", + "DELETE", + "INSERT", + "CREATE_DATABASE", + "CREATE_TABLE", + "DATA_LOCATION_ACCESS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALL | SELECT | ALTER | DROP | DELETE | INSERT | CREATE_DATABASE | CREATE_TABLE | DATA_LOCATION_ACCESS \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The permissions that are granted to the principal.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Permissions granted to a principal.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CatalogProperties": { + "type": "object", + "description": "A structure that specifies data lake access properties and other custom properties.", + "properties": { + "DataLakeAccessProperties": { + "$ref": "#/definitions/DataLakeAccessProperties" + }, + "CustomProperties": { + "type": "object", + "description": "Additional key-value properties for the catalog.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Additional key-value properties for the catalog.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A structure that specifies data lake access properties and other custom properties.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DataLakeAccessProperties": { + "type": "object", + "description": "Data lake access properties for the catalog.", + "properties": { + "DataLakeAccess": { + "type": "boolean", + "description": "Turns on or off data lake access for Apache Spark applications that access Amazon Redshift databases in the Data Catalog from any non-Redshift engine.", + "markdownDescription": "Turns on or off data lake access for Apache Spark applications that access Amazon Redshift databases in the Data Catalog from any non-Redshift engine.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "DataTransferRole": { + "type": "string", + "description": "A role that will be assumed by Glue for transferring data into/out of the staging bucket during a query.", + "markdownDescription": "A role that will be assumed by Glue for transferring data into/out of the staging bucket during a query.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "KmsKey": { + "type": "string", + "description": "An encryption key that will be used for the staging bucket that will be created along with the catalog.", + "markdownDescription": "An encryption key that will be used for the staging bucket that will be created along with the catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CatalogType": { + "type": "string", + "description": "Specifies a federated catalog type for the native catalog resource.", + "markdownDescription": "Specifies a federated catalog type for the native catalog resource.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ManagedWorkgroupName": { + "type": "string", + "description": "The name of the managed workgroup associated with the catalog.", + "markdownDescription": "The name of the managed workgroup associated with the catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ManagedWorkgroupStatus": { + "type": "string", + "description": "The status of the managed workgroup.", + "markdownDescription": "The status of the managed workgroup.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RedshiftDatabaseName": { + "type": "string", + "description": "The name of the Redshift database.", + "markdownDescription": "The name of the Redshift database.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AllowFullTableExternalDataAccess": { + "type": "string", + "description": "Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation.", + "enum": [ + "True", + "False" + ], + "markdownDescription": "Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation.\n\n---\n\nRequired: No \nType: String \nAllowed Values: True | False \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Data lake access properties for the catalog.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "CatalogId": { + "type": "string", + "description": "The ID of the catalog.", + "markdownDescription": "The ID of the catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the catalog.", + "markdownDescription": "The Amazon Resource Name (ARN) of the catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreateTime": { + "type": "integer", + "description": "The time at which the catalog was created.", + "markdownDescription": "The time at which the catalog was created.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdateTime": { + "type": "integer", + "description": "The time at which the catalog was last updated.", + "markdownDescription": "The time at which the catalog was last updated.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "The name of the catalog to create.", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "The name of the catalog to create.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "description": "A description of the catalog.", + "maxLength": 2048, + "markdownDescription": "A description of the catalog.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "Parameters": { + "type": "object", + "description": "A map of key-value pairs that define parameters and properties of the catalog.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A map of key-value pairs that define parameters and properties of the catalog.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FederatedCatalog": { + "$ref": "#/definitions/FederatedCatalog" + }, + "TargetRedshiftCatalog": { + "$ref": "#/definitions/TargetRedshiftCatalog" + }, + "CatalogProperties": { + "$ref": "#/definitions/CatalogProperties" + }, + "CreateTableDefaultPermissions": { + "type": "array", + "description": "An array of PrincipalPermissions objects for default table permissions.", + "items": { + "$ref": "#/definitions/PrincipalPermissions" + }, + "markdownDescription": "An array of PrincipalPermissions objects for default table permissions.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CreateDatabaseDefaultPermissions": { + "type": "array", + "description": "An array of PrincipalPermissions objects for default database permissions.", + "items": { + "$ref": "#/definitions/PrincipalPermissions" + }, + "markdownDescription": "An array of PrincipalPermissions objects for default database permissions.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowFullTableExternalDataAccess": { + "type": "string", + "description": "Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation.", + "enum": [ + "True", + "False" + ], + "markdownDescription": "Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation.\n\n---\n\nRequired: No \nType: String \nAllowed Values: True | False \nUpdate requires: No interruption\n" + }, + "OverwriteChildResourcePermissionsWithDefault": { + "type": "string", + "description": "Specifies whether to overwrite child resource permissions with the default permissions.", + "enum": [ + "Accept", + "Deny" + ], + "markdownDescription": "Specifies whether to overwrite child resource permissions with the default permissions.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Accept | Deny \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "description": "An array of key-value pairs to apply to this resource.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "readOnlyProperties": [ + "/properties/CatalogId", + "/properties/ResourceArn", + "/properties/CreateTime", + "/properties/UpdateTime", + "/properties/CatalogProperties/DataLakeAccessProperties/ManagedWorkgroupName", + "/properties/CatalogProperties/DataLakeAccessProperties/ManagedWorkgroupStatus", + "/properties/CatalogProperties/DataLakeAccessProperties/RedshiftDatabaseName", + "/properties/CatalogProperties/CustomProperties", + "/properties/CreateDatabaseDefaultPermissions/*/Principal", + "/properties/CreateDatabaseDefaultPermissions/*/Principal/DataLakePrincipalIdentifier", + "/properties/CreateDatabaseDefaultPermissions/*/Permissions", + "/properties/CreateTableDefaultPermissions/*/Principal", + "/properties/CreateTableDefaultPermissions/*/Principal/DataLakePrincipalIdentifier", + "/properties/CreateTableDefaultPermissions/*/Permissions" + ], + "primaryIdentifier": [ + "/properties/ResourceArn" + ], + "writeOnlyProperties": [ + "/properties/CatalogProperties/DataLakeAccessProperties/AllowFullTableExternalDataAccess", + "/properties/OverwriteChildResourcePermissionsWithDefault" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "glue:TagResource", + "glue:UntagResource", + "glue:GetTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "glue:CreateCatalog", + "glue:GetCatalog", + "glue:UpdateCatalog", + "glue:TagResource", + "glue:GetTags", + "iam:PassRole", + "redshift-serverless:CreateNamespace", + "redshift-serverless:GetNamespace", + "redshift-serverless:CreateWorkgroup", + "redshift-serverless:GetWorkgroup", + "redshift-serverless:TagResource", + "lakeformation:GetDataLakeSettings", + "lakeformation:PutDataLakeSettings", + "lakeformation:RegisterResource", + "lakeformation:GrantPermissions", + "s3:CreateBucket", + "s3:DeleteBucket", + "s3:PutBucketTagging", + "s3:PutBucketPolicy", + "s3:PutEncryptionConfiguration", + "s3:PutLifecycleConfiguration", + "s3:PutBucketVersioning", + "s3:GetBucketLocation" + ] + }, + "read": { + "permissions": [ + "glue:GetCatalog", + "glue:GetTags" + ] + }, + "update": { + "permissions": [ + "glue:UpdateCatalog", + "glue:GetCatalog", + "glue:TagResource", + "glue:UntagResource", + "glue:GetTags", + "iam:PassRole", + "redshift-serverless:UpdateNamespace", + "redshift-serverless:GetNamespace", + "redshift-serverless:UpdateWorkgroup", + "redshift-serverless:GetWorkgroup", + "redshift-serverless:TagResource", + "redshift-serverless:UntagResource", + "lakeformation:GetDataLakeSettings", + "lakeformation:PutDataLakeSettings" + ] + }, + "delete": { + "permissions": [ + "glue:DeleteCatalog", + "glue:GetCatalog", + "redshift-serverless:DeleteNamespace", + "redshift-serverless:GetNamespace", + "redshift-serverless:DeleteWorkgroup", + "redshift-serverless:GetWorkgroup", + "lakeformation:DeregisterResource", + "lakeformation:RevokePermissions", + "s3:DeleteBucket" + ] + }, + "list": { + "permissions": [ + "glue:GetCatalogs" + ] + } + }, + "attributes": { + "CatalogId": { + "type": "string", + "description": "The ID of the catalog.", + "markdownDescription": "The ID of the catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the catalog.", + "markdownDescription": "The Amazon Resource Name (ARN) of the catalog.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreateTime": { + "type": "integer", + "description": "The time at which the catalog was created.", + "markdownDescription": "The time at which the catalog was created.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdateTime": { + "type": "integer", + "description": "The time at which the catalog was last updated.", + "markdownDescription": "The time at which the catalog was last updated.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-glue-identitycenterconfiguration.json b/server/schema/resources/aws-glue-identitycenterconfiguration.json new file mode 100644 index 00000000..2afcf5b2 --- /dev/null +++ b/server/schema/resources/aws-glue-identitycenterconfiguration.json @@ -0,0 +1,118 @@ +{ + "typeName": "AWS::Glue::IdentityCenterConfiguration", + "description": "Resource Type definition for AWS::Glue::IdentityCenterConfiguration", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git", + "definitions": {}, + "properties": { + "InstanceArn": { + "description": "The IAM identity center instance arn", + "type": "string", + "maxLength": 1224, + "minLength": 10, + "markdownDescription": "The IAM identity center instance arn\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: Replacement\n" + }, + "Scopes": { + "description": "The downstream scopes that Glue identity center configuration can access", + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The downstream scopes that Glue identity center configuration can access\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "UserBackgroundSessionsEnabled": { + "description": "Enable or disable user background sessions for Glue Identity Center", + "type": "boolean", + "markdownDescription": "Enable or disable user background sessions for Glue Identity Center\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ApplicationArn": { + "description": "The Glue IAM identity center application arn", + "type": "string", + "maxLength": 1224, + "minLength": 10, + "markdownDescription": "The Glue IAM identity center application arn\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccountId": { + "type": "string", + "description": "The identifier for the specified AWS account.", + "markdownDescription": "The identifier for the specified AWS account.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "InstanceArn" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "createOnlyProperties": [ + "/properties/InstanceArn" + ], + "readOnlyProperties": [ + "/properties/ApplicationArn", + "/properties/AccountId" + ], + "replacementStrategy": "delete_then_create", + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "glue:CreateGlueIdentityCenterConfiguration", + "glue:GetGlueIdentityCenterConfiguration", + "sso:CreateApplication", + "sso:ListInstances", + "sso:ListApplications", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAssignmentConfiguration", + "sso:PutApplicationSessionConfiguration" + ] + }, + "read": { + "permissions": [ + "glue:GetGlueIdentityCenterConfiguration" + ] + }, + "update": { + "permissions": [ + "glue:UpdateGlueIdentityCenterConfiguration", + "glue:GetGlueIdentityCenterConfiguration", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAssignmentConfiguration", + "sso:DeleteApplicationAccessScope", + "sso:PutApplicationSessionConfiguration" + ] + }, + "delete": { + "permissions": [ + "glue:DeleteGlueIdentityCenterConfiguration", + "glue:GetGlueIdentityCenterConfiguration", + "sso:DeleteApplication" + ] + } + }, + "attributes": { + "ApplicationArn": { + "description": "The Glue IAM identity center application arn", + "type": "string", + "maxLength": 1224, + "minLength": 10, + "markdownDescription": "The Glue IAM identity center application arn\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccountId": { + "type": "string", + "description": "The identifier for the specified AWS account.", + "markdownDescription": "The identifier for the specified AWS account.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-glue-integration.json b/server/schema/resources/aws-glue-integration.json new file mode 100644 index 00000000..8e7037aa --- /dev/null +++ b/server/schema/resources/aws-glue-integration.json @@ -0,0 +1,255 @@ +{ + "tagging": { + "permissions": [ + "glue:TagResource", + "glue:UntagResource", + "glue:GetTags" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::Glue::Integration", + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime", + "/properties/Status" + ], + "description": "Resource Type definition for AWS::Glue::Integration", + "createOnlyProperties": [ + "/properties/IntegrationName", + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KmsKeyId", + "/properties/AdditionalEncryptionContext", + "/properties/IntegrationConfig", + "/properties/IntegrationConfig/RefreshInterval" + ], + "primaryIdentifier": [ + "/properties/IntegrationArn", + "/properties/IntegrationName" + ], + "required": [ + "IntegrationName", + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "handlers": { + "read": { + "permissions": [ + "glue:DescribeIntegrations", + "glue:GetTags" + ] + }, + "create": { + "permissions": [ + "glue:CreateIntegration", + "glue:DescribeIntegrations", + "glue:TagResource", + "glue:GetTags", + "kms:CreateGrant", + "kms:DescribeKey", + "glue:CreateInboundIntegration" + ] + }, + "update": { + "permissions": [ + "glue:DescribeIntegrations", + "glue:ModifyIntegration", + "glue:TagResource", + "glue:UntagResource" + ] + }, + "list": { + "permissions": [ + "glue:DescribeIntegrations" + ] + }, + "delete": { + "permissions": [ + "glue:UntagResource", + "glue:DeleteIntegration", + "glue:DescribeIntegrations" + ] + } + }, + "writeOnlyProperties": [ + "/properties/IntegrationConfig/SourceProperties", + "/properties/IntegrationConfig/ContinuousSync" + ], + "additionalProperties": false, + "definitions": { + "IntegrationConfig": { + "description": "The configuration settings for the integration.", + "additionalProperties": false, + "type": "object", + "properties": { + "ContinuousSync": { + "description": "Enables continuous synchronization for on-demand data extractions.", + "type": "boolean", + "markdownDescription": "Enables continuous synchronization for on-demand data extractions.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "RefreshInterval": { + "description": "Specifies the frequency at which CDC (Change Data Capture) pulls or incremental loads should occur.", + "type": "string", + "maxLength": 128, + "markdownDescription": "Specifies the frequency at which CDC (Change Data Capture) pulls or incremental loads should occur.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "SourceProperties": { + "$ref": "#/definitions/SourceProperties" + } + }, + "markdownDescription": "The configuration settings for the integration.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, + "IntegrationAdditionalEncryptionContextMap": { + "patternProperties": { + "^[\\s\\S]*$": { + "minLength": 0, + "type": "string", + "maxLength": 131072, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 131072 \nUpdate requires: No interruption\n" + } + }, + "description": "An optional set of non-secret key value pairs that contains additional contextual information about the data.", + "additionalProperties": false, + "type": "object", + "markdownDescription": "An optional set of non-secret key value pairs that contains additional contextual information about the data.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -. ", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -. ", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceProperties": { + "patternProperties": { + "^[\\s\\S]*$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "description": "A collection of key-value pairs that specify additional properties for the integration source.", + "additionalProperties": false, + "type": "object", + "markdownDescription": "A collection of key-value pairs that specify additional properties for the integration source.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "maxItems": 50, + "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DataFilter": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The status of the integration.", + "type": "string", + "markdownDescription": "The status of the integration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IntegrationArn": { + "description": "The Amazon Resource Name (ARN) of the integration.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the integration.\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws:.*:.*:[0-9]+:.* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IntegrationName": { + "minLength": 1, + "description": "The name of the integration.", + "type": "string", + "maxLength": 128, + "markdownDescription": "The name of the integration.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: Replacement\n" + }, + "Description": { + "type": "string", + "maxLength": 1000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "SourceArn": { + "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication", + "type": "string", + "maxLength": 512, + "markdownDescription": "The Amazon Resource Name (ARN) of the database to use as the source for replication\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 512 \nPattern: arn:aws:.*:.*:[0-9]+:.* \nUpdate requires: Replacement\n" + }, + "IntegrationConfig": { + "$ref": "#/definitions/IntegrationConfig" + }, + "KmsKeyId": { + "description": "An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used.", + "type": "string", + "markdownDescription": "An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "CreateTime": { + "description": "The time (UTC) when the integration was created.", + "type": "string", + "markdownDescription": "The time (UTC) when the integration was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetArn": { + "description": "The Amazon Resource Name (ARN) of the Glue data warehouse to use as the target for replication", + "type": "string", + "maxLength": 512, + "markdownDescription": "The Amazon Resource Name (ARN) of the Glue data warehouse to use as the target for replication\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 512 \nPattern: arn:aws:.*:.*:[0-9]+:.* \nUpdate requires: Replacement\n" + }, + "AdditionalEncryptionContext": { + "$ref": "#/definitions/IntegrationAdditionalEncryptionContextMap" + }, + "Tags": { + "maxItems": 50, + "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "attributes": { + "Status": { + "description": "The status of the integration.", + "type": "string", + "markdownDescription": "The status of the integration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IntegrationArn": { + "description": "The Amazon Resource Name (ARN) of the integration.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the integration.\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws:.*:.*:[0-9]+:.* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreateTime": { + "description": "The time (UTC) when the integration was created.", + "type": "string", + "markdownDescription": "The time (UTC) when the integration was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-glue-integrationresourceproperty.json b/server/schema/resources/aws-glue-integrationresourceproperty.json new file mode 100644 index 00000000..9a5af354 --- /dev/null +++ b/server/schema/resources/aws-glue-integrationresourceproperty.json @@ -0,0 +1,179 @@ +{ + "typeName": "AWS::Glue::IntegrationResourceProperty", + "description": "Resource Type definition for AWS::Glue::IntegrationResourceProperty", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git", + "properties": { + "ResourceArn": { + "type": "string", + "description": "The connection ARN of the source, or the database ARN of the target.", + "markdownDescription": "The connection ARN of the source, or the database ARN of the target.\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws:.*:.*:[0-9]+:.* \nUpdate requires: Replacement\n" + }, + "ResourcePropertyArn": { + "type": "string", + "description": "The integration resource property ARN.", + "markdownDescription": "The integration resource property ARN.\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws:glue:.*:[0-9]+:.* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SourceProcessingProperties": { + "type": "object", + "additionalProperties": false, + "description": "The resource properties associated with the integration source.", + "properties": { + "RoleArn": { + "type": "string", + "maxLength": 128, + "description": "The IAM role to access the Glue connection.", + "markdownDescription": "The IAM role to access the Glue connection.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RoleArn" + ], + "markdownDescription": "The resource properties associated with the integration source.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetProcessingProperties": { + "type": "object", + "additionalProperties": false, + "description": "The resource properties associated with the integration target.", + "properties": { + "RoleArn": { + "type": "string", + "maxLength": 128, + "description": "The IAM role to access the Glue database.", + "markdownDescription": "The IAM role to access the Glue database.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: arn:aws:iam:.*:[0-9]+:.* \nUpdate requires: No interruption\n" + }, + "KmsArn": { + "type": "string", + "maxLength": 128, + "description": "The ARN of the KMS key used for encryption.", + "markdownDescription": "The ARN of the KMS key used for encryption.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: arn:aws:kms:.*:[0-9]+:.* \nUpdate requires: No interruption\n" + }, + "ConnectionName": { + "type": "string", + "maxLength": 128, + "description": "The Glue network connection to configure the Glue job running in the customer VPC.", + "markdownDescription": "The Glue network connection to configure the Glue job running in the customer VPC.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "EventBusArn": { + "type": "string", + "maxLength": 128, + "description": "The ARN of an Eventbridge event bus to receive the integration status notification.", + "markdownDescription": "The ARN of an Eventbridge event bus to receive the integration status notification.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RoleArn" + ], + "markdownDescription": "The resource properties associated with the integration target.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "description": "An array of key-value pairs to apply to this resource.", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ResourceArn" + ], + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "createOnlyProperties": [ + "/properties/ResourceArn" + ], + "primaryIdentifier": [ + "/properties/ResourceArn", + "/properties/ResourcePropertyArn" + ], + "readOnlyProperties": [ + "/properties/ResourcePropertyArn" + ], + "handlers": { + "create": { + "permissions": [ + "glue:CreateIntegrationResourceProperty", + "glue:GetIntegrationResourceProperty", + "iam:PassRole", + "glue:TagResource", + "glue:GetConnections", + "glue:GetConnection" + ] + }, + "read": { + "permissions": [ + "glue:GetIntegrationResourceProperty", + "glue:GetTags" + ] + }, + "update": { + "permissions": [ + "glue:UpdateIntegrationResourceProperty", + "glue:GetIntegrationResourceProperty", + "glue:TagResource", + "glue:UntagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "glue:UntagResource", + "glue:DeleteIntegrationResourceProperty", + "glue:UpdateIntegrationResourceProperty" + ] + }, + "list": { + "permissions": [ + "glue:ListIntegrationResourceProperties" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "glue:TagResource", + "glue:UntagResource", + "glue:GetTags" + ] + }, + "additionalProperties": false, + "attributes": { + "ResourcePropertyArn": { + "type": "string", + "description": "The integration resource property ARN.", + "markdownDescription": "The integration resource property ARN.\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws:glue:.*:[0-9]+:.* \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-glue-securityconfiguration.json b/server/schema/resources/aws-glue-securityconfiguration.json index fbacf790..cf7e98f8 100644 --- a/server/schema/resources/aws-glue-securityconfiguration.json +++ b/server/schema/resources/aws-glue-securityconfiguration.json @@ -16,9 +16,19 @@ } }, "definitions": { - "S3Encryptions": { + "S3Encryption": { "type": "object", "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "S3EncryptionMode": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { @@ -26,7 +36,12 @@ "additionalProperties": false, "properties": { "S3Encryptions": { - "$ref": "#/definitions/S3Encryptions" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/S3Encryption" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "JobBookmarksEncryption": { "$ref": "#/definitions/JobBookmarksEncryption" diff --git a/server/schema/resources/aws-glue-table.json b/server/schema/resources/aws-glue-table.json index a3a25979..0dc9bf36 100644 --- a/server/schema/resources/aws-glue-table.json +++ b/server/schema/resources/aws-glue-table.json @@ -20,6 +20,10 @@ "CatalogId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" } }, "definitions": { @@ -65,6 +69,186 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "MetadataOperation": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OpenTableFormatInput": { + "type": "object", + "additionalProperties": false, + "properties": { + "IcebergInput": { + "$ref": "#/definitions/IcebergInput" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergSortOrder": { + "type": "object", + "additionalProperties": false, + "properties": { + "OrderId": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Fields": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/IcebergSortField" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Fields", + "OrderId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ViewDefinition": { + "type": "object", + "additionalProperties": false, + "properties": { + "Definer": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SubObjects": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Representations": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ViewRepresentation" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IsProtected": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergPartitionSpec": { + "type": "object", + "additionalProperties": false, + "properties": { + "SpecId": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Fields": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/IcebergPartitionField" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Fields" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StorageDescriptor": { + "type": "object", + "additionalProperties": false, + "properties": { + "StoredAsSubDirectories": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Parameters": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BucketColumns": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NumberOfBuckets": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "OutputFormat": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Columns": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Column" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SerdeInfo": { + "$ref": "#/definitions/SerdeInfo" + }, + "SortColumns": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Order" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Compressed": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "SchemaReference": { + "$ref": "#/definitions/SchemaReference" + }, + "SkewedInfo": { + "$ref": "#/definitions/SkewedInfo" + }, + "InputFormat": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Location": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SerdeInfo": { + "type": "object", + "additionalProperties": false, + "properties": { + "Parameters": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SerializationLibrary": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "SchemaReference": { "type": "object", "additionalProperties": false, @@ -83,6 +267,34 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "IcebergTableInput": { + "type": "object", + "additionalProperties": false, + "properties": { + "WriteOrder": { + "$ref": "#/definitions/IcebergSortOrder" + }, + "Properties": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PartitionSpec": { + "$ref": "#/definitions/IcebergPartitionSpec" + }, + "Schema": { + "$ref": "#/definitions/IcebergSchema" + }, + "Location": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Schema", + "Location" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TableInput": { "type": "object", "additionalProperties": false, @@ -107,13 +319,24 @@ "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ViewExpandedText": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "ViewDefinition": { + "$ref": "#/definitions/ViewDefinition" }, "StorageDescriptor": { "$ref": "#/definitions/StorageDescriptor" }, + "Retention": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ViewExpandedText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "TargetTable": { "$ref": "#/definitions/TableIdentifier" }, @@ -124,29 +347,68 @@ "$ref": "#/definitions/Column" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Retention": { + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergSchema": { + "type": "object", + "additionalProperties": false, + "properties": { + "SchemaId": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Name": { + "Type": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Fields": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/IcebergStructField" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "IdentifierFieldIds": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "required": [ + "Fields" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "MetadataOperation": { - "type": "object", - "additionalProperties": false, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "OpenTableFormatInput": { + "ViewRepresentation": { "type": "object", "additionalProperties": false, "properties": { - "IcebergInput": { - "$ref": "#/definitions/IcebergInput" + "Dialect": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ViewOriginalText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DialectVersion": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ViewExpandedText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ValidationConnection": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -202,73 +464,33 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "StorageDescriptor": { + "IcebergSortField": { "type": "object", "additionalProperties": false, "properties": { - "StoredAsSubDirectories": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "Parameters": { - "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "BucketColumns": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "NumberOfBuckets": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "OutputFormat": { + "NullOrder": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Columns": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Column" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "SerdeInfo": { - "$ref": "#/definitions/SerdeInfo" - }, - "SortColumns": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Order" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Compressed": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "SchemaReference": { - "$ref": "#/definitions/SchemaReference" - }, - "SkewedInfo": { - "$ref": "#/definitions/SkewedInfo" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "InputFormat": { + "Transform": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Location": { + "Direction": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "SourceId": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" } }, + "required": [ + "SourceId", + "NullOrder", + "Transform", + "Direction" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SchemaId": { @@ -294,6 +516,9 @@ "type": "object", "additionalProperties": false, "properties": { + "IcebergTableInput": { + "$ref": "#/definitions/IcebergTableInput" + }, "MetadataOperation": { "$ref": "#/definitions/MetadataOperation" }, @@ -304,32 +529,74 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "SerdeInfo": { + "IcebergPartitionField": { "type": "object", "additionalProperties": false, "properties": { - "Parameters": { - "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "Transform": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "SerializationLibrary": { + "SourceId": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "FieldId": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SourceId", + "Transform", + "Name" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergStructField": { + "type": "object", + "additionalProperties": false, + "properties": { + "Doc": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "Type": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Id": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Required": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, + "required": [ + "Type", + "Required", + "Id", + "Name" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ - "TableInput", "DatabaseName", "CatalogId" ], "createOnlyProperties": [ + "/properties/Name", "/properties/DatabaseName", "/properties/CatalogId" ], diff --git a/server/schema/resources/aws-groundstation-config.json b/server/schema/resources/aws-groundstation-config.json index 1d8d4cc0..a4012eff 100644 --- a/server/schema/resources/aws-groundstation-config.json +++ b/server/schema/resources/aws-groundstation-config.json @@ -32,6 +32,9 @@ }, "S3RecordingConfig": { "$ref": "#/definitions/S3RecordingConfig" + }, + "TelemetrySinkConfig": { + "$ref": "#/definitions/TelemetrySinkConfig" } }, "additionalProperties": false, @@ -125,6 +128,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[^:\\n]+:iam::[^:\\n]+:role\\/.+$ \nUpdate requires: No interruption\n" }, + "KinesisDataStreamArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z0-9-.]{1,63}:kinesis:[-a-z0-9]{1,50}:[0-9]{12}:stream/[a-zA-Z0-9_.-]{1,128}$ \nUpdate requires: No interruption\n" + }, "UplinkSpectrumConfig": { "type": "object", "properties": { @@ -279,6 +286,64 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TelemetrySinkType": { + "type": "string", + "enum": [ + "KINESIS_DATA_STREAM" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: KINESIS_DATA_STREAM \nUpdate requires: No interruption\n" + }, + "KinesisDataStreamData": { + "type": "object", + "properties": { + "KinesisRoleArn": { + "$ref": "#/definitions/RoleArn" + }, + "KinesisDataStreamArn": { + "$ref": "#/definitions/KinesisDataStreamArn" + } + }, + "required": [ + "KinesisRoleArn", + "KinesisDataStreamArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TelemetrySinkData": { + "type": "object", + "oneOf": [ + { + "required": [ + "KinesisDataStreamData" + ] + } + ], + "properties": { + "KinesisDataStreamData": { + "$ref": "#/definitions/KinesisDataStreamData" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TelemetrySinkConfig": { + "type": "object", + "properties": { + "TelemetrySinkType": { + "$ref": "#/definitions/TelemetrySinkType" + }, + "TelemetrySinkData": { + "$ref": "#/definitions/TelemetrySinkData" + } + }, + "required": [ + "TelemetrySinkType", + "TelemetrySinkData" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "type": "object", "properties": { diff --git a/server/schema/resources/aws-groundstation-dataflowendpointgroupv2.json b/server/schema/resources/aws-groundstation-dataflowendpointgroupv2.json new file mode 100644 index 00000000..2ca9dab7 --- /dev/null +++ b/server/schema/resources/aws-groundstation-dataflowendpointgroupv2.json @@ -0,0 +1,494 @@ +{ + "typeName": "AWS::GroundStation::DataflowEndpointGroupV2", + "description": "Resource Type definition for AWS Ground Station DataflowEndpointGroupV2", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ground-station.git", + "definitions": { + "SocketAddress": { + "type": "object", + "properties": { + "Name": { + "description": "IPv4 socket address.", + "type": "string", + "markdownDescription": "IPv4 socket address.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Port": { + "description": "Port of a socket address.", + "type": "integer", + "markdownDescription": "Port of a socket address.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Port" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AgentStatus": { + "description": "The status of AgentEndpoint.", + "type": "string", + "enum": [ + "SUCCESS", + "FAILED", + "ACTIVE", + "INACTIVE" + ], + "markdownDescription": "The status of AgentEndpoint.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SUCCESS | FAILED | ACTIVE | INACTIVE \nUpdate requires: No interruption\n" + }, + "AuditResults": { + "description": "The results of the audit.", + "type": "string", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "markdownDescription": "The results of the audit.\n\n---\n\nRequired: No \nType: String \nAllowed Values: HEALTHY | UNHEALTHY \nUpdate requires: No interruption\n" + }, + "IntegerRange": { + "description": "An integer range that has a minimum and maximum value.", + "type": "object", + "properties": { + "Minimum": { + "description": "A minimum value.", + "type": "integer", + "markdownDescription": "A minimum value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Maximum": { + "description": "A maximum value.", + "type": "integer", + "markdownDescription": "A maximum value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Minimum", + "Maximum" + ], + "markdownDescription": "An integer range that has a minimum and maximum value.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RangedSocketAddress": { + "description": "A socket address with a port range.", + "type": "object", + "properties": { + "Name": { + "description": "IPv4 socket address.", + "type": "string", + "markdownDescription": "IPv4 socket address.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$ \nUpdate requires: No interruption\n" + }, + "PortRange": { + "description": "Port range of a socket address.", + "$ref": "#/definitions/IntegerRange", + "markdownDescription": "Port range of a socket address.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "PortRange" + ], + "markdownDescription": "A socket address with a port range.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConnectionDetails": { + "description": "Socket address of an uplink or downlink agent endpoint with an optional mtu.", + "type": "object", + "properties": { + "SocketAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "Mtu": { + "description": "Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.", + "type": "integer", + "minimum": 1400, + "maximum": 1500, + "markdownDescription": "Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "SocketAddress" + ], + "markdownDescription": "Socket address of an uplink or downlink agent endpoint with an optional mtu.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RangedConnectionDetails": { + "description": "Socket address of an uplink or downlink agent endpoint with a port range and an optional mtu.", + "type": "object", + "properties": { + "SocketAddress": { + "$ref": "#/definitions/RangedSocketAddress" + }, + "Mtu": { + "description": "Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.", + "type": "integer", + "minimum": 1400, + "maximum": 1500, + "markdownDescription": "Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "SocketAddress" + ], + "markdownDescription": "Socket address of an uplink or downlink agent endpoint with a port range and an optional mtu.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UplinkConnectionDetails": { + "description": "Connection details for uplink, from ground station to agent, and customer to agent", + "type": "object", + "properties": { + "IngressAddressAndPort": { + "$ref": "#/definitions/ConnectionDetails" + }, + "AgentIpAndPortAddress": { + "$ref": "#/definitions/RangedConnectionDetails" + } + }, + "additionalProperties": false, + "required": [ + "IngressAddressAndPort", + "AgentIpAndPortAddress" + ], + "markdownDescription": "Connection details for uplink, from ground station to agent, and customer to agent\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UplinkDataflowDetails": { + "description": "Dataflow details for uplink", + "type": "object", + "properties": { + "AgentConnectionDetails": { + "$ref": "#/definitions/UplinkConnectionDetails" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "AgentConnectionDetails" + ] + } + ], + "markdownDescription": "Dataflow details for uplink\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UplinkAwsGroundStationAgentEndpoint": { + "description": "Information about UplinkAwsGroundStationAgentEndpoint used for create", + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[ a-zA-Z0-9_:-]{1,256}$ \nUpdate requires: No interruption\n" + }, + "DataflowDetails": { + "$ref": "#/definitions/UplinkDataflowDetails" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "DataflowDetails" + ], + "markdownDescription": "Information about UplinkAwsGroundStationAgentEndpoint used for create\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UplinkAwsGroundStationAgentEndpointDetails": { + "description": "Information about UplinkAwsGroundStationAgentEndpoint", + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[ a-zA-Z0-9_:-]{1,256}$ \nUpdate requires: No interruption\n" + }, + "DataflowDetails": { + "$ref": "#/definitions/UplinkDataflowDetails" + }, + "AgentStatus": { + "$ref": "#/definitions/AgentStatus" + }, + "AuditResults": { + "$ref": "#/definitions/AuditResults" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "DataflowDetails" + ], + "markdownDescription": "Information about UplinkAwsGroundStationAgentEndpoint\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DownlinkConnectionDetails": { + "description": "Connection details for downlink, from ground station to agent, and customer to agent", + "type": "object", + "properties": { + "EgressAddressAndPort": { + "$ref": "#/definitions/ConnectionDetails" + }, + "AgentIpAndPortAddress": { + "$ref": "#/definitions/RangedConnectionDetails" + } + }, + "additionalProperties": false, + "required": [ + "EgressAddressAndPort", + "AgentIpAndPortAddress" + ], + "markdownDescription": "Connection details for downlink, from ground station to agent, and customer to agent\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DownlinkDataflowDetails": { + "description": "Dataflow details for downlink", + "type": "object", + "properties": { + "AgentConnectionDetails": { + "$ref": "#/definitions/DownlinkConnectionDetails" + } + }, + "oneOf": [ + { + "required": [ + "AgentConnectionDetails" + ] + } + ], + "additionalProperties": false, + "markdownDescription": "Dataflow details for downlink\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DownlinkAwsGroundStationAgentEndpoint": { + "description": "Information about DownlinkAwsGroundStationAgentEndpoint used for create", + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[ a-zA-Z0-9_:-]{1,256}$ \nUpdate requires: No interruption\n" + }, + "DataflowDetails": { + "$ref": "#/definitions/DownlinkDataflowDetails" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "DataflowDetails" + ], + "markdownDescription": "Information about DownlinkAwsGroundStationAgentEndpoint used for create\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DownlinkAwsGroundStationAgentEndpointDetails": { + "description": "Information about DownlinkAwsGroundStationAgentEndpoint", + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[ a-zA-Z0-9_:-]{1,256}$ \nUpdate requires: No interruption\n" + }, + "DataflowDetails": { + "$ref": "#/definitions/DownlinkDataflowDetails" + }, + "AgentStatus": { + "$ref": "#/definitions/AgentStatus" + }, + "AuditResults": { + "$ref": "#/definitions/AuditResults" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "DataflowDetails" + ], + "markdownDescription": "Information about DownlinkAwsGroundStationAgentEndpoint\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EndpointDetails": { + "type": "object", + "properties": { + "UplinkAwsGroundStationAgentEndpoint": { + "$ref": "#/definitions/UplinkAwsGroundStationAgentEndpointDetails" + }, + "DownlinkAwsGroundStationAgentEndpoint": { + "$ref": "#/definitions/DownlinkAwsGroundStationAgentEndpointDetails" + } + }, + "oneOf": [ + { + "required": [ + "UplinkAwsGroundStationAgentEndpoint" + ] + }, + { + "required": [ + "DownlinkAwsGroundStationAgentEndpoint" + ] + } + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CreateEndpointDetails": { + "type": "object", + "properties": { + "UplinkAwsGroundStationAgentEndpoint": { + "$ref": "#/definitions/UplinkAwsGroundStationAgentEndpoint" + }, + "DownlinkAwsGroundStationAgentEndpoint": { + "$ref": "#/definitions/DownlinkAwsGroundStationAgentEndpoint" + } + }, + "oneOf": [ + { + "required": [ + "UplinkAwsGroundStationAgentEndpoint" + ] + }, + { + "required": [ + "DownlinkAwsGroundStationAgentEndpoint" + ] + } + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[ a-zA-Z0-9\\+\\-=._:/@]{1,128}$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[ a-zA-Z0-9\\+\\-=._:/@]{1,256}$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EndpointDetails": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/EndpointDetails" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Endpoints": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/CreateEndpointDetails" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "ContactPrePassDurationSeconds": { + "type": "integer", + "description": "Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a PREPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the PREPASS state.", + "minimum": 30, + "maximum": 480, + "markdownDescription": "Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a PREPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the PREPASS state.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "ContactPostPassDurationSeconds": { + "type": "integer", + "description": "Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a POSTPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the POSTPASS state.", + "minimum": 30, + "maximum": 480, + "markdownDescription": "Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a POSTPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the POSTPASS state.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "readOnlyProperties": [ + "/properties/EndpointDetails", + "/properties/Id", + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Endpoints", + "/properties/ContactPrePassDurationSeconds", + "/properties/ContactPostPassDurationSeconds" + ], + "writeOnlyProperties": [ + "/properties/Endpoints" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "groundstation:TagResource", + "groundstation:UntagResource", + "groundstation:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "groundstation:CreateDataflowEndpointGroupV2", + "groundstation:GetDataflowEndpointGroup", + "groundstation:TagResource", + "iam:PassRole", + "ec2:describeAddresses", + "ec2:describeNetworkInterfaces", + "iam:createServiceLinkedRole" + ] + }, + "update": { + "permissions": [ + "groundstation:ListTagsForResource", + "groundstation:TagResource", + "groundstation:UntagResource" + ] + }, + "read": { + "permissions": [ + "groundstation:GetDataflowEndpointGroup", + "groundstation:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "groundstation:DeleteDataflowEndpointGroup", + "groundstation:GetDataflowEndpointGroup" + ] + }, + "list": { + "permissions": [ + "groundstation:ListDataflowEndpointGroups" + ] + } + }, + "additionalProperties": false, + "attributes": { + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EndpointDetails": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/EndpointDetails" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-groundstation-missionprofile.json b/server/schema/resources/aws-groundstation-missionprofile.json index b1f0de24..a793b1c8 100644 --- a/server/schema/resources/aws-groundstation-missionprofile.json +++ b/server/schema/resources/aws-groundstation-missionprofile.json @@ -105,6 +105,11 @@ "type": "string", "markdownDescription": "The ARN of the KMS Key or Alias Key role used to define permissions on KMS Key usage.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "TelemetrySinkConfigArn": { + "description": "ARN of a Config resource of type TelemetrySinkConfig used for telemetry data sink configuration.", + "type": "string", + "markdownDescription": "ARN of a Config resource of type TelemetrySinkConfig used for telemetry data sink configuration.\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$ \nUpdate requires: No interruption\n" + }, "DataflowEdges": { "description": "", "type": "array", diff --git a/server/schema/resources/aws-guardduty-detector.json b/server/schema/resources/aws-guardduty-detector.json index 68f27588..a966889d 100644 --- a/server/schema/resources/aws-guardduty-detector.json +++ b/server/schema/resources/aws-guardduty-detector.json @@ -6,7 +6,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags" }, "properties": { diff --git a/server/schema/resources/aws-guardduty-filter.json b/server/schema/resources/aws-guardduty-filter.json index 2ace694d..523ae1e6 100644 --- a/server/schema/resources/aws-guardduty-filter.json +++ b/server/schema/resources/aws-guardduty-filter.json @@ -6,7 +6,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "guardduty:TagResource", diff --git a/server/schema/resources/aws-guardduty-ipset.json b/server/schema/resources/aws-guardduty-ipset.json index bca10f12..ae824307 100644 --- a/server/schema/resources/aws-guardduty-ipset.json +++ b/server/schema/resources/aws-guardduty-ipset.json @@ -6,7 +6,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "guardduty:TagResource", diff --git a/server/schema/resources/aws-guardduty-publishingdestination.json b/server/schema/resources/aws-guardduty-publishingdestination.json index 11064c05..df8cf7fd 100644 --- a/server/schema/resources/aws-guardduty-publishingdestination.json +++ b/server/schema/resources/aws-guardduty-publishingdestination.json @@ -6,7 +6,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "guardduty:TagResource", diff --git a/server/schema/resources/aws-guardduty-threatintelset.json b/server/schema/resources/aws-guardduty-threatintelset.json index e12d0866..bce6aa29 100644 --- a/server/schema/resources/aws-guardduty-threatintelset.json +++ b/server/schema/resources/aws-guardduty-threatintelset.json @@ -7,7 +7,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "guardduty:TagResource", diff --git a/server/schema/resources/aws-iam-policy.json b/server/schema/resources/aws-iam-policy.json index 29717202..faa43432 100644 --- a/server/schema/resources/aws-iam-policy.json +++ b/server/schema/resources/aws-iam-policy.json @@ -1,57 +1,97 @@ { - "typeName": "AWS::IAM::Policy", - "description": "Adds or updates an inline policy document that is embedded in the specified IAM group, user or role.\n An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *User Guide*.\n The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.\n For information about policy documents see [Creating policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *User Guide*.\n For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*.\n This resource does not support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). The following inline policy resource types support drift detection:\n + [AWS::IAM::GroupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html) \n + [AWS::IAM::RolePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html) \n + [AWS::IAM::UserPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html)", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam.git", - "properties": { - "Id": { - "description": "", - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "handlers": { + "create": { + "permissions": [ + "iam:GetUserPolicy", + "iam:GetRolePolicy", + "iam:GetGroupPolicy", + "iam:PutUserPolicy", + "iam:PutRolePolicy", + "iam:PutGroupPolicy" + ], + "timeoutInMinutes": 2160 }, + "update": { + "permissions": [ + "iam:PutUserPolicy", + "iam:PutRolePolicy", + "iam:PutGroupPolicy", + "iam:DeleteRolePolicy", + "iam:DeleteUserPolicy", + "iam:DeleteGroupPolicy" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "iam:DeleteRolePolicy", + "iam:DeleteUserPolicy", + "iam:DeleteGroupPolicy" + ], + "timeoutInMinutes": 2160 + } + }, + "taggable": false, + "typeName": "AWS::IAM::Policy", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Adds or updates an inline policy document that is embedded in the specified IAM group, user or role.\n An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *User Guide*.\n The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.\n For information about policy documents, see [Creating policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *User Guide*.\n For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*.\n This resource does not support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). The following inline policy resource types support drift detection:\n + [AWS::IAM::GroupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html) \n + [AWS::IAM::RolePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html) \n + [AWS::IAM::UserPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html)", + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { "Groups": { - "description": "The name of the group to associate the policy with.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.", - "type": "array", "uniqueItems": false, + "description": "The name of the group to associate the policy with.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "The name of the group to associate the policy with.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "PolicyName": { + "minLength": 1, + "description": "The name of the policy document.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-", + "type": "string", + "maxLength": 128, + "markdownDescription": "The name of the policy document.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, "PolicyDocument": { + "minLength": 1, "description": "The policy document.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)", "type": [ "object", "string" ], - "minLength": 1, "maxLength": 131072, "markdownDescription": "The policy document.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nMinimum Length: 1 \nMaximum Length: 131072 \nUpdate requires: No interruption\n" }, - "PolicyName": { - "description": "The name of the policy document.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-", - "type": "string", - "minLength": 1, - "maxLength": 128, - "markdownDescription": "The name of the policy document.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, "Roles": { - "description": "The name of the role to associate the policy with.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy.", - "type": "array", "uniqueItems": false, + "description": "The name of the role to associate the policy with.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy.", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "The name of the role to associate the policy with.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "Id": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "Users": { - "description": "The name of the user to associate the policy with.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-", - "type": "array", "uniqueItems": false, + "description": "The name of the user to associate the policy with.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -59,50 +99,10 @@ "markdownDescription": "The name of the user to associate the policy with.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, - "taggable": false, "required": [ "PolicyDocument", "PolicyName" ], - "readOnlyProperties": [ - "/properties/Id" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "handlers": { - "create": { - "permissions": [ - "iam:GetUserPolicy", - "iam:GetRolePolicy", - "iam:GetGroupPolicy", - "iam:PutUserPolicy", - "iam:PutRolePolicy", - "iam:PutGroupPolicy" - ], - "timeoutInMinutes": 2160 - }, - "update": { - "permissions": [ - "iam:PutUserPolicy", - "iam:PutRolePolicy", - "iam:PutGroupPolicy", - "iam:DeleteRolePolicy", - "iam:DeleteUserPolicy", - "iam:DeleteGroupPolicy" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "iam:DeleteRolePolicy", - "iam:DeleteUserPolicy", - "iam:DeleteGroupPolicy" - ], - "timeoutInMinutes": 2160 - } - }, "attributes": { "Id": { "description": "", diff --git a/server/schema/resources/aws-imagebuilder-component.json b/server/schema/resources/aws-imagebuilder-component.json index e3be06f1..de56899d 100644 --- a/server/schema/resources/aws-imagebuilder-component.json +++ b/server/schema/resources/aws-imagebuilder-component.json @@ -1,22 +1,155 @@ { - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, "typeName": "AWS::ImageBuilder::Component", + "description": "Resource schema for AWS::ImageBuilder::Component", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the component.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the component.", + "type": "string", + "markdownDescription": "The name of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Version": { + "description": "The version of the component.", + "type": "string", + "markdownDescription": "The version of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Description": { + "description": "The description of the component.", + "type": "string", + "markdownDescription": "The description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ChangeDescription": { + "description": "The change description of the component.", + "type": "string", + "markdownDescription": "The change description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "description": "The type of the component denotes whether the component is used to build the image or only to test it. ", + "type": "string", + "enum": [ + "BUILD", + "TEST" + ], + "markdownDescription": "The type of the component denotes whether the component is used to build the image or only to test it. \n\n---\n\nRequired: No \nType: String \nAllowed Values: BUILD | TEST \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Platform": { + "description": "The platform of the component.", + "type": "string", + "enum": [ + "Windows", + "Linux", + "macOS" + ], + "markdownDescription": "The platform of the component.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Windows | Linux | macOS \nUpdate requires: Replacement\n" + }, + "Data": { + "description": "The data of the component.", + "type": "string", + "minLength": 1, + "maxLength": 16000, + "markdownDescription": "The data of the component.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the component.", + "type": "string", + "markdownDescription": "The KMS key identifier used to encrypt the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Encrypted": { + "description": "The encryption status of the component.", + "type": "boolean", + "markdownDescription": "The encryption status of the component.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "The tags associated with the component.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags associated with the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Uri": { + "description": "The uri of the component.", + "type": "string", + "markdownDescription": "The uri of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "SupportedOsVersions": { + "description": "The operating system (OS) version supported by the component.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The operating system (OS) version supported by the component.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "LatestVersion": { + "description": "The latest version references of the component.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the component.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "LatestVersion": { + "description": "The latest version references of the component.", + "type": "object", + "additionalProperties": false, + "properties": { + "Arn": { + "description": "The latest version ARN of the created component.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Major": { + "description": "The latest version ARN of the created component, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created component, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created component, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Platform", + "Version" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], "readOnlyProperties": [ "/properties/Arn", "/properties/Type", - "/properties/Encrypted" + "/properties/Encrypted", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" + ], + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" ], - "description": "Resource schema for AWS::ImageBuilder::Component", "createOnlyProperties": [ "/properties/Name", "/properties/Version", @@ -28,22 +161,18 @@ "/properties/KmsKeyId", "/properties/SupportedOsVersions" ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Platform", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetComponent", - "kms:Decrypt" - ] - }, "create": { "permissions": [ "iam:CreateServiceLinkedRole", @@ -68,6 +197,19 @@ "imagebuilder:UntagResource" ] }, + "read": { + "permissions": [ + "imagebuilder:GetComponent", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetComponent", + "imagebuilder:UntagResource", + "imagebuilder:DeleteComponent" + ] + }, "list": { "permissions": [ "imagebuilder:ListComponents", @@ -80,73 +222,13 @@ } } } - }, - "delete": { - "permissions": [ - "imagebuilder:GetComponent", - "imagebuilder:UntagResource", - "imagebuilder:DeleteComponent" - ] } }, - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ], - "additionalProperties": false, - "definitions": {}, - "properties": { - "Description": { - "description": "The description of the component.", - "type": "string", - "markdownDescription": "The description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "SupportedOsVersions": { - "description": "The operating system (OS) version supported by the component.", - "insertionOrder": false, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "The operating system (OS) version supported by the component.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" - }, - "Platform": { - "description": "The platform of the component.", - "type": "string", - "enum": [ - "Windows", - "Linux", - "macOS" - ], - "markdownDescription": "The platform of the component.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Windows | Linux | macOS \nUpdate requires: Replacement\n" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the component.", - "type": "string", - "markdownDescription": "The KMS key identifier used to encrypt the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Encrypted": { - "description": "The encryption status of the component.", - "type": "boolean", - "markdownDescription": "The encryption status of the component.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Data": { - "minLength": 1, - "description": "The data of the component.", - "type": "string", - "maxLength": 16000, - "markdownDescription": "The data of the component.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" - }, - "Uri": { - "description": "The uri of the component.", - "type": "string", - "markdownDescription": "The uri of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Name": { - "description": "The name of the component.", + "attributes": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the component.", "type": "string", - "markdownDescription": "The name of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Type": { "description": "The type of the component denotes whether the component is used to build the image or only to test it. ", @@ -157,53 +239,15 @@ ], "markdownDescription": "The type of the component denotes whether the component is used to build the image or only to test it. \n\n---\n\nRequired: No \nType: String \nAllowed Values: BUILD | TEST \nUpdate requires: No interruption\nRead only property: Yes" }, - "Version": { - "description": "The version of the component.", - "type": "string", - "markdownDescription": "The version of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "ChangeDescription": { - "description": "The change description of the component.", - "type": "string", - "markdownDescription": "The change description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the component.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags associated with the component.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags associated with the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "attributes": { "Encrypted": { "description": "The encryption status of the component.", "type": "boolean", "markdownDescription": "The encryption status of the component.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" }, - "Type": { - "description": "The type of the component denotes whether the component is used to build the image or only to test it. ", - "type": "string", - "enum": [ - "BUILD", - "TEST" - ], - "markdownDescription": "The type of the component denotes whether the component is used to build the image or only to test it. \n\n---\n\nRequired: No \nType: String \nAllowed Values: BUILD | TEST \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the component.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "LatestVersion": { + "description": "The latest version references of the component.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the component.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-imagebuilder-containerrecipe.json b/server/schema/resources/aws-imagebuilder-containerrecipe.json index 594a06dc..05a81d7d 100644 --- a/server/schema/resources/aws-imagebuilder-containerrecipe.json +++ b/server/schema/resources/aws-imagebuilder-containerrecipe.json @@ -30,7 +30,7 @@ "items": { "$ref": "#/definitions/ComponentConfiguration" }, - "markdownDescription": "Components for build and test that are included in the container recipe.\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "Components for build and test that are included in the container recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, "InstanceConfiguration": { "additionalProperties": false, @@ -101,6 +101,11 @@ } }, "markdownDescription": "Tags that are attached to the container recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LatestVersion": { + "description": "The latest version references of the container recipe.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the container recipe.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -280,6 +285,34 @@ "Value" ], "markdownDescription": "Contains a key/value pair that sets the named component parameter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LatestVersion": { + "description": "The latest version references of the container recipe.", + "type": "object", + "additionalProperties": false, + "properties": { + "Arn": { + "description": "The latest version ARN of the created container recipe.", + "type": "string", + "markdownDescription": "The latest version ARN of the created container recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Major": { + "description": "The latest version ARN of the created container recipe, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created container recipe, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created container recipe, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created container recipe, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created container recipe, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created container recipe, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the container recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } }, "additionalProperties": false, @@ -288,7 +321,6 @@ "required": [ "Name", "Version", - "Components", "ParentImage", "TargetRepository", "ContainerType" @@ -296,7 +328,12 @@ } ], "readOnlyProperties": [ - "/properties/Arn" + "/properties/Arn", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" ], "primaryIdentifier": [ "/properties/Arn" @@ -388,6 +425,11 @@ "description": "The Amazon Resource Name (ARN) of the container recipe.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the container recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LatestVersion": { + "description": "The latest version references of the container recipe.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the container recipe.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-imagebuilder-image.json b/server/schema/resources/aws-imagebuilder-image.json index 9fec2ca9..1880f0db 100644 --- a/server/schema/resources/aws-imagebuilder-image.json +++ b/server/schema/resources/aws-imagebuilder-image.json @@ -15,7 +15,12 @@ "/properties/Arn", "/properties/Name", "/properties/ImageId", - "/properties/ImageUri" + "/properties/ImageUri", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" ], "description": "Resource schema for AWS::ImageBuilder::Image", "createOnlyProperties": [ @@ -31,6 +36,9 @@ "primaryIdentifier": [ "/properties/Arn" ], + "conditionalCreateOnlyProperties": [ + "/properties/ImagePipelineExecutionSettings" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", "oneOf": [ { @@ -49,11 +57,6 @@ "required": [ "ImagePipelineExecutionSettings" ] - }, - { - "required": [ - "ImportDiskImageSettings" - ] } ], "handlers": { @@ -69,11 +72,13 @@ "iam:PassRole", "iam:CreateServiceLinkedRole", "imagebuilder:GetImageRecipe", + "imagebuilder:GetContainerRecipe", "imagebuilder:GetInfrastructureConfiguration", "imagebuilder:GetDistributionConfiguration", "imagebuilder:GetWorkflow", "imagebuilder:GetImage", "imagebuilder:CreateImage", + "imagebuilder:StartImagePipelineExecution", "imagebuilder:TagResource", "inspector2:BatchGetAccountStatus" ], @@ -107,8 +112,25 @@ ] } }, + "writeOnlyProperties": [ + "/properties/DeletionSettings", + "/properties/ImagePipelineExecutionSettings" + ], "additionalProperties": false, "definitions": { + "ImageLoggingConfiguration": { + "description": "The logging configuration settings for the image.", + "additionalProperties": false, + "type": "object", + "properties": { + "LogGroupName": { + "description": "The name of the log group for image build logs.", + "type": "string", + "markdownDescription": "The name of the log group for image build logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The logging configuration settings for the image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ImageScanningConfiguration": { "description": "Contains settings for Image Builder image resource and container image scans.", "additionalProperties": false, @@ -186,6 +208,34 @@ }, "markdownDescription": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "LatestVersion": { + "description": "The latest version references of the image.", + "additionalProperties": false, + "type": "object", + "properties": { + "Major": { + "description": "The latest version ARN of the created image, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created image, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "The latest version ARN of the created image.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created image, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, "WorkflowParameterValue": { "description": "The value associated with the workflow parameter", "type": "string", @@ -229,6 +279,22 @@ }, "markdownDescription": "The image tests configuration used when creating this image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DeletionSettings": { + "description": "The deletion settings of the image, indicating whether to delete the underlying resources in addition to the image.", + "additionalProperties": false, + "type": "object", + "properties": { + "ExecutionRole": { + "description": "The execution role to use for deleting the image, as well as underlying resources.", + "type": "string", + "markdownDescription": "The execution role to use for deleting the image, as well as underlying resources.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ExecutionRole" + ], + "markdownDescription": "The deletion settings of the image, indicating whether to delete the underlying resources in addition to the image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "WorkflowParameter": { "description": "A parameter associated with the workflow", "additionalProperties": false, @@ -270,6 +336,67 @@ }, "markdownDescription": "Workflows to define the image build process\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, + "ImagePipelineExecutionSettings": { + "description": "The image pipeline execution settings of the image.", + "$ref": "#/definitions/ImagePipelineExecutionSettings", + "dependencies": { + "ImagePipelineExecutionSettings": { + "oneOf": [ + { + "required": [ + "ImageRecipeArn" + ] + }, + { + "required": [ + "ContainerRecipeArn" + ] + }, + { + "required": [ + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Workflows" + ] + }, + { + "required": [ + "DistributionConfigurationArn" + ] + }, + { + "required": [ + "ImageTestsConfiguration" + ] + }, + { + "required": [ + "ImageScanningConfiguration" + ] + }, + { + "required": [ + "EnhancedImageMetadataEnabled" + ] + }, + { + "required": [ + "ImportDiskImageSettings" + ] + } + ] + } + }, + "markdownDescription": "The image pipeline execution settings of the image.\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: Some interruptions\n" + }, + "DeletionSettings": { + "description": "The deletion settings of the image, indicating whether to delete the underlying resources in addition to the image.", + "$ref": "#/definitions/DeletionSettings", + "markdownDescription": "The deletion settings of the image, indicating whether to delete the underlying resources in addition to the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "ImageUri": { "description": "URI for containers created in current Region with default ECR image tag", "type": "string", @@ -295,6 +422,16 @@ "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the distribution configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, + "LatestVersion": { + "description": "The latest version references of the image.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LoggingConfiguration": { + "description": "The logging configuration settings for the image.", + "$ref": "#/definitions/ImageLoggingConfiguration", + "markdownDescription": "The logging configuration settings for the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "ImageId": { "description": "The AMI ID of the EC2 AMI in current region.", "type": "string", @@ -344,6 +481,11 @@ "type": "string", "markdownDescription": "The name of the image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "LatestVersion": { + "description": "The latest version references of the image.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, "ImageId": { "description": "The AMI ID of the EC2 AMI in current region.", "type": "string", diff --git a/server/schema/resources/aws-imagebuilder-imagepipeline.json b/server/schema/resources/aws-imagebuilder-imagepipeline.json index b050530c..6b853993 100644 --- a/server/schema/resources/aws-imagebuilder-imagepipeline.json +++ b/server/schema/resources/aws-imagebuilder-imagepipeline.json @@ -1,94 +1,134 @@ { + "typeName": "AWS::ImageBuilder::ImagePipeline", + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] + "Name": { + "description": "The name of the image pipeline.", + "type": "string", + "markdownDescription": "The name of the image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" }, - "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" - ] + "Description": { + "description": "The description of the image pipeline.", + "type": "string", + "markdownDescription": "The description of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow", - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ] + "ImageTestsConfiguration": { + "description": "The image tests configuration of the image pipeline.", + "$ref": "#/definitions/ImageTestsConfiguration", + "markdownDescription": "The image tests configuration of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] + "Status": { + "description": "The status of the image pipeline.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ], + "markdownDescription": "The status of the image pipeline.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "imagebuilder:UntagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] + "Schedule": { + "description": "The schedule of the image pipeline.", + "$ref": "#/definitions/Schedule", + "markdownDescription": "The schedule of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "markdownDescription": "Workflows to define the image build process\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean", + "markdownDescription": "Collects additional information about the image being created, including the operating system (OS) version and package list.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ImageScanningConfiguration": { + "description": "Contains settings for vulnerability scans.", + "$ref": "#/definitions/ImageScanningConfiguration", + "markdownDescription": "Contains settings for vulnerability scans.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string", + "markdownDescription": "The execution role name/ARN for the image build, if provided\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LoggingConfiguration": { + "description": "The logging configuration settings for the image pipeline.", + "$ref": "#/definitions/PipelineLoggingConfiguration", + "markdownDescription": "The logging configuration settings for the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "The tags of this image pipeline.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags of this image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DeploymentId": { + "description": "The deployment ID of the pipeline, used for resource create/update triggers.", + "type": "string", + "markdownDescription": "The deployment ID of the pipeline, used for resource create/update triggers.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, - "typeName": "AWS::ImageBuilder::ImagePipeline", - "readOnlyProperties": [ - "/properties/Arn" - ], - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "createOnlyProperties": [ - "/properties/Name" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], "definitions": { + "ImageTestsConfiguration": { + "description": "Image tests configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean", + "markdownDescription": "Defines if tests should be executed when building this image.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "type": "integer", + "minimum": 60, + "maximum": 1440, + "markdownDescription": "The maximum time in minutes that tests are permitted to run.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Image tests configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ImageScanningConfiguration": { "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.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "EcrConfiguration": { "description": "Contains ECR settings for vulnerability scans.", @@ -103,51 +143,15 @@ }, "markdownDescription": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "WorkflowConfiguration": { - "description": "The workflow configuration of the image", - "additionalProperties": false, - "type": "object", - "properties": { - "ParallelGroup": { - "description": "The parallel group name", - "type": "string", - "markdownDescription": "The parallel group name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "markdownDescription": "The parameters associated with the workflow\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the workflow\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "type": "string", - "enum": [ - "CONTINUE", - "ABORT" - ], - "markdownDescription": "Define execution decision in case of workflow failure\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONTINUE | ABORT \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "The workflow configuration of the image\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "EcrConfiguration": { "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "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, "type": "array", + "insertionOrder": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -162,15 +166,10 @@ }, "markdownDescription": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string", - "markdownDescription": "The value associated with the workflow parameter\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "Schedule": { "description": "The schedule of the image pipeline.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "ScheduleExpression": { "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", @@ -188,142 +187,195 @@ }, "AutoDisablePolicy": { "description": "The auto-disable policy for the image pipeline.", + "$ref": "#/definitions/AutoDisablePolicy", "markdownDescription": "The auto-disable policy for the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "The schedule of the image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ImageTestsConfiguration": { - "description": "Image tests configuration.", - "additionalProperties": false, + "AutoDisablePolicy": { + "description": "The auto-disable policy configuration for the image pipeline.", "type": "object", + "additionalProperties": false, "properties": { - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, + "FailureCount": { + "description": "The number of consecutive failures after which the pipeline should be automatically disabled.", "type": "integer", - "minimum": 60, - "markdownDescription": "The maximum time in minutes that tests are permitted to run.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "minimum": 1, + "markdownDescription": "The number of consecutive failures after which the pipeline should be automatically disabled.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FailureCount" + ], + "markdownDescription": "The auto-disable policy configuration for the image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkflowConfiguration": { + "description": "The workflow configuration of the image", + "type": "object", + "additionalProperties": false, + "properties": { + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the workflow\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean", - "markdownDescription": "Defines if tests should be executed when building this image.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "Parameters": { + "description": "The parameters associated with the workflow", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "markdownDescription": "The parameters associated with the workflow\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string", + "markdownDescription": "The parallel group name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "type": "string", + "enum": [ + "CONTINUE", + "ABORT" + ], + "markdownDescription": "Define execution decision in case of workflow failure\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONTINUE | ABORT \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Image tests configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The workflow configuration of the image\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "WorkflowParameter": { "description": "A parameter associated with the workflow", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Value": { - "insertionOrder": true, "type": "array", + "insertionOrder": true, "items": { "$ref": "#/definitions/WorkflowParameterValue" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "A parameter associated with the workflow\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "properties": { - "Status": { - "description": "The status of the image pipeline.", - "type": "string", - "enum": [ - "DISABLED", - "ENABLED" - ], - "markdownDescription": "The status of the image pipeline.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" }, - "ImageScanningConfiguration": { - "description": "Contains settings for vulnerability scans.", - "$ref": "#/definitions/ImageScanningConfiguration", - "markdownDescription": "Contains settings for vulnerability scans.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string", - "markdownDescription": "The description of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The value associated with the workflow parameter\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/WorkflowConfiguration" + "PipelineLoggingConfiguration": { + "description": "The logging configuration settings for the image pipeline.", + "type": "object", + "additionalProperties": false, + "properties": { + "ImageLogGroupName": { + "description": "The name of the log group for image build logs.", + "type": "string", + "markdownDescription": "The name of the log group for image build logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PipelineLogGroupName": { + "description": "The name of the log group for pipeline execution logs.", + "type": "string", + "markdownDescription": "The name of the log group for pipeline execution logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } }, - "markdownDescription": "Workflows to define the image build process\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string", - "markdownDescription": "The name of the image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Schedule": { - "description": "The schedule of the image pipeline.", - "$ref": "#/definitions/Schedule", - "markdownDescription": "The schedule of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The logging configuration settings for the image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] }, - "ImageTestsConfiguration": { - "description": "The image tests configuration of the image pipeline.", - "$ref": "#/definitions/ImageTestsConfiguration", - "markdownDescription": "The image tests configuration of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DeploymentId" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetContainerRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetContainerRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean", - "markdownDescription": "Collects additional information about the image being created, including the operating system (OS) version and package list.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string", - "markdownDescription": "The execution role name/ARN for the image build, if provided\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "delete": { + "permissions": [ + "imagebuilder:UntagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags of this image pipeline.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags of this image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] } }, "attributes": { @@ -331,6 +383,11 @@ "description": "The Amazon Resource Name (ARN) of the image pipeline.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeploymentId": { + "description": "The deployment ID of the pipeline, used for resource create/update triggers.", + "type": "string", + "markdownDescription": "The deployment ID of the pipeline, used for resource create/update triggers.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-imagebuilder-imagerecipe.json b/server/schema/resources/aws-imagebuilder-imagerecipe.json index 7cdd475c..be2b19cc 100644 --- a/server/schema/resources/aws-imagebuilder-imagerecipe.json +++ b/server/schema/resources/aws-imagebuilder-imagerecipe.json @@ -1,227 +1,220 @@ { + "typeName": "AWS::ImageBuilder::ImageRecipe", + "description": "Resource schema for AWS::ImageBuilder::ImageRecipe", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetImageRecipe" - ] + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image recipe.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "create": { - "permissions": [ - "iam:GetRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetComponent", - "imagebuilder:GetImage", - "imagebuilder:TagResource", - "imagebuilder:GetImageRecipe", - "imagebuilder:CreateImageRecipe", - "ec2:DescribeImages" - ] + "Name": { + "description": "The name of the image recipe.", + "type": "string", + "markdownDescription": "The name of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "update": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ] + "Description": { + "description": "The description of the image recipe.", + "type": "string", + "markdownDescription": "The description of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "list": { - "permissions": [ - "imagebuilder:ListImageRecipes" - ] + "Version": { + "description": "The version of the image recipe.", + "type": "string", + "markdownDescription": "The version of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "delete": { - "permissions": [ - "imagebuilder:UntagResource", - "imagebuilder:GetImageRecipe", - "imagebuilder:DeleteImageRecipe" - ] + "Components": { + "description": "The components of the image recipe.", + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ComponentConfiguration" + }, + "markdownDescription": "The components of the image recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "BlockDeviceMappings": { + "description": "The block device mappings to apply when creating images from this recipe.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceBlockDeviceMapping" + }, + "markdownDescription": "The block device mappings to apply when creating images from this recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "ParentImage": { + "description": "The parent image of the image recipe.", + "type": "string", + "markdownDescription": "The parent image of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "WorkingDirectory": { + "description": "The working directory to be used during build and test workflows.", + "type": "string", + "markdownDescription": "The working directory to be used during build and test workflows.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "AdditionalInstanceConfiguration": { + "description": "Specify additional settings and launch scripts for your build instances.", + "$ref": "#/definitions/AdditionalInstanceConfiguration", + "markdownDescription": "Specify additional settings and launch scripts for your build instances.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AmiTags": { + "description": "The tags to apply to the AMI created by this image recipe.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags to apply to the AMI created by this image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "The tags of the image recipe.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags of the image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LatestVersion": { + "description": "The latest version references of the image recipe.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the image recipe.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } }, - "typeName": "AWS::ImageBuilder::ImageRecipe", - "readOnlyProperties": [ - "/properties/Arn" - ], - "description": "Resource schema for AWS::ImageBuilder::ImageRecipe", - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/Components", - "/properties/ParentImage", - "/properties/Description", - "/properties/BlockDeviceMappings", - "/properties/WorkingDirectory" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], "definitions": { "ComponentConfiguration": { "description": "Configuration details of the component.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "ComponentArn": { + "description": "The Amazon Resource Name (ARN) of the component.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Parameters": { "description": "A group of parameter settings that are used to configure the component for a specific recipe.", - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/ComponentParameter" }, "markdownDescription": "A group of parameter settings that are used to configure the component for a specific recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ComponentArn": { - "description": "The Amazon Resource Name (ARN) of the component.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "Configuration details of the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ComponentParameter": { - "description": "Contains a key/value pair that sets the named component parameter.", - "additionalProperties": false, + "InstanceBlockDeviceMapping": { + "description": "Defines block device mappings for the instance used to configure your image. ", "type": "object", + "additionalProperties": false, "properties": { - "Value": { - "description": "Sets the value for the named component parameter.", - "insertionOrder": true, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "Sets the value for the named component parameter.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "DeviceName": { + "description": "The device to which these mappings apply.", + "type": "string", + "markdownDescription": "The device to which these mappings apply.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Name": { - "description": "The name of the component parameter to set.", + "VirtualName": { + "description": "Use to manage instance ephemeral devices.", "type": "string", - "markdownDescription": "The name of the component parameter to set.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Use to manage instance ephemeral devices.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NoDevice": { + "description": "Use to remove a mapping from the parent image.", + "type": "string", + "markdownDescription": "Use to remove a mapping from the parent image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Ebs": { + "description": "Use to manage Amazon EBS-specific configuration for this mapping.", + "$ref": "#/definitions/EbsInstanceBlockDeviceSpecification", + "markdownDescription": "Use to manage Amazon EBS-specific configuration for this mapping.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "required": [ - "Name", - "Value" - ], - "markdownDescription": "Contains a key/value pair that sets the named component parameter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Defines block device mappings for the instance used to configure your image. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EbsInstanceBlockDeviceSpecification": { "description": "Amazon EBS-specific block device mapping specifications. ", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "SnapshotId": { - "description": "The snapshot that defines the device contents.", - "type": "string", - "markdownDescription": "The snapshot that defines the device contents.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Encrypted": { + "description": "Use to configure device encryption.", + "type": "boolean", + "markdownDescription": "Use to configure device encryption.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "VolumeType": { - "description": "Use to override the device's volume type.", - "type": "string", - "enum": [ - "standard", - "io1", - "io2", - "gp2", - "gp3", - "sc1", - "st1" - ], - "markdownDescription": "Use to override the device's volume type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: standard | io1 | io2 | gp2 | gp3 | sc1 | st1 \nUpdate requires: No interruption\n" + "DeleteOnTermination": { + "description": "Use to configure delete on termination of the associated device.", + "type": "boolean", + "markdownDescription": "Use to configure delete on termination of the associated device.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Iops": { + "description": "Use to configure device IOPS.", + "type": "integer", + "markdownDescription": "Use to configure device IOPS.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "KmsKeyId": { "description": "Use to configure the KMS key to use when encrypting the device.", "type": "string", "markdownDescription": "Use to configure the KMS key to use when encrypting the device.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Encrypted": { - "description": "Use to configure device encryption.", - "type": "boolean", - "markdownDescription": "Use to configure device encryption.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "SnapshotId": { + "description": "The snapshot that defines the device contents.", + "type": "string", + "markdownDescription": "The snapshot that defines the device contents.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Throughput": { "description": "For GP3 volumes only - The throughput in MiB/s that the volume supports.", "type": "integer", "markdownDescription": "For GP3 volumes only - The throughput in MiB/s that the volume supports.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Iops": { - "description": "Use to configure device IOPS.", - "type": "integer", - "markdownDescription": "Use to configure device IOPS.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, "VolumeSize": { "description": "Use to override the device's volume size.", "type": "integer", "markdownDescription": "Use to override the device's volume size.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "DeleteOnTermination": { - "description": "Use to configure delete on termination of the associated device.", - "type": "boolean", - "markdownDescription": "Use to configure delete on termination of the associated device.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "Amazon EBS-specific block device mapping specifications. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "InstanceBlockDeviceMapping": { - "description": "Defines block device mappings for the instance used to configure your image. ", - "additionalProperties": false, - "type": "object", - "properties": { - "Ebs": { - "description": "Use to manage Amazon EBS-specific configuration for this mapping.", - "$ref": "#/definitions/EbsInstanceBlockDeviceSpecification", - "markdownDescription": "Use to manage Amazon EBS-specific configuration for this mapping.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "NoDevice": { - "description": "Use to remove a mapping from the parent image.", - "type": "string", - "markdownDescription": "Use to remove a mapping from the parent image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "VirtualName": { - "description": "Use to manage instance ephemeral devices.", - "type": "string", - "markdownDescription": "Use to manage instance ephemeral devices.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "DeviceName": { - "description": "The device to which these mappings apply.", + "VolumeType": { + "description": "Use to override the device's volume type.", "type": "string", - "markdownDescription": "The device to which these mappings apply.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "gp3", + "sc1", + "st1" + ], + "markdownDescription": "Use to override the device's volume type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: standard | io1 | io2 | gp2 | gp3 | sc1 | st1 \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Defines block device mappings for the instance used to configure your image. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Amazon EBS-specific block device mapping specifications. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AdditionalInstanceConfiguration": { - "description": "Specify additional settings and launch scripts for your build instances.", "additionalProperties": false, + "description": "Specify additional settings and launch scripts for your build instances.", "type": "object", "properties": { - "UserDataOverride": { - "description": "Use this property to provide commands or a command script to run when you launch your build instance.", - "type": "string", - "markdownDescription": "Use this property to provide commands or a command script to run when you launch your build instance.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "SystemsManagerAgent": { "description": "Contains settings for the SSM agent on your build instance.", "$ref": "#/definitions/SystemsManagerAgent", "markdownDescription": "Contains settings for the SSM agent on your build instance.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "UserDataOverride": { + "description": "Use this property to provide commands or a command script to run when you launch your build instance.", + "type": "string", + "markdownDescription": "Use this property to provide commands or a command script to run when you launch your build instance.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specify additional settings and launch scripts for your build instances.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SystemsManagerAgent": { - "description": "Contains settings for the SSM agent on your build instance.", "additionalProperties": false, + "description": "Contains settings for the SSM agent on your build instance.", "type": "object", "properties": { "UninstallAfterBuild": { @@ -231,79 +224,135 @@ } }, "markdownDescription": "Contains settings for the SSM agent on your build instance.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ComponentParameter": { + "additionalProperties": false, + "description": "Contains a key/value pair that sets the named component parameter.", + "type": "object", + "properties": { + "Name": { + "description": "The name of the component parameter to set.", + "type": "string", + "markdownDescription": "The name of the component parameter to set.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "Sets the value for the named component parameter.", + "type": "array", + "insertionOrder": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Sets the value for the named component parameter.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Value" + ], + "markdownDescription": "Contains a key/value pair that sets the named component parameter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LatestVersion": { + "description": "The latest version references of the image recipe.", + "type": "object", + "additionalProperties": false, + "properties": { + "Arn": { + "description": "The latest version ARN of the created image recipe.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Major": { + "description": "The latest version ARN of the created image recipe, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image recipe, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created image recipe, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image recipe, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created image recipe, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image recipe, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } }, + "additionalProperties": false, "required": [ "Name", "Version", - "Components", "ParentImage" ], - "properties": { - "Components": { - "description": "The components of the image recipe.", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/ComponentConfiguration" - }, - "markdownDescription": "The components of the image recipe.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" - }, - "WorkingDirectory": { - "description": "The working directory to be used during build and test workflows.", - "type": "string", - "markdownDescription": "The working directory to be used during build and test workflows.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "ParentImage": { - "description": "The parent image of the image recipe.", - "type": "string", - "markdownDescription": "The parent image of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "Description": { - "description": "The description of the image recipe.", - "type": "string", - "markdownDescription": "The description of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Version": { - "description": "The version of the image recipe.", - "type": "string", - "markdownDescription": "The version of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "BlockDeviceMappings": { - "description": "The block device mappings to apply when creating images from this recipe.", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/InstanceBlockDeviceMapping" - }, - "markdownDescription": "The block device mappings to apply when creating images from this recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "primaryIdentifier": [ + "/properties/Arn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/Components", + "/properties/ParentImage", + "/properties/Description", + "/properties/BlockDeviceMappings", + "/properties/WorkingDirectory" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetComponent", + "imagebuilder:GetImage", + "imagebuilder:TagResource", + "imagebuilder:GetImageRecipe", + "imagebuilder:CreateImageRecipe", + "ec2:DescribeImages" + ] }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image recipe.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "read": { + "permissions": [ + "imagebuilder:GetImageRecipe" + ] }, - "AdditionalInstanceConfiguration": { - "description": "Specify additional settings and launch scripts for your build instances.", - "$ref": "#/definitions/AdditionalInstanceConfiguration", - "markdownDescription": "Specify additional settings and launch scripts for your build instances.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "update": { + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags of the image recipe.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags of the image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "delete": { + "permissions": [ + "imagebuilder:UntagResource", + "imagebuilder:GetImageRecipe", + "imagebuilder:DeleteImageRecipe" + ] }, - "Name": { - "description": "The name of the image recipe.", - "type": "string", - "markdownDescription": "The name of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "list": { + "permissions": [ + "imagebuilder:ListImageRecipes" + ] } }, "attributes": { @@ -311,6 +360,11 @@ "description": "The Amazon Resource Name (ARN) of the image recipe.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LatestVersion": { + "description": "The latest version references of the image recipe.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the image recipe.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-imagebuilder-workflow.json b/server/schema/resources/aws-imagebuilder-workflow.json index 340f737c..2bcb90fb 100644 --- a/server/schema/resources/aws-imagebuilder-workflow.json +++ b/server/schema/resources/aws-imagebuilder-workflow.json @@ -1,20 +1,129 @@ { - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, "typeName": "AWS::ImageBuilder::Workflow", - "readOnlyProperties": [ + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string", + "markdownDescription": "The name of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string", + "markdownDescription": "The version of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string", + "markdownDescription": "The description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string", + "markdownDescription": "The change description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "type": "string", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "markdownDescription": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: BUILD | TEST | DISTRIBUTION \nUpdate requires: Replacement\n" + }, + "Data": { + "description": "The data of the workflow.", + "type": "string", + "minLength": 1, + "maxLength": 16000, + "markdownDescription": "The data of the workflow.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string", + "markdownDescription": "The uri of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string", + "markdownDescription": "The KMS key identifier used to encrypt the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "The tags associated with the workflow.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags associated with the workflow.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LatestVersion": { + "description": "The latest version references of the workflow.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the workflow.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "LatestVersion": { + "description": "The latest version references of the workflow.", + "type": "object", + "additionalProperties": false, + "properties": { + "Arn": { + "description": "The latest version ARN of the created workflow.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Major": { + "description": "The latest version ARN of the created workflow, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created workflow, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created workflow, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the workflow.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Type", + "Version" + ], + "primaryIdentifier": [ "/properties/Arn" ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" + ], + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ], "createOnlyProperties": [ "/properties/Name", "/properties/Version", @@ -25,22 +134,18 @@ "/properties/Type", "/properties/KmsKeyId" ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetWorkflow", - "kms:Decrypt" - ] - }, "create": { "permissions": [ "iam:GetRole", @@ -58,12 +163,25 @@ "imagebuilder:CreateWorkflow" ] }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow", + "kms:Decrypt" + ] + }, "update": { "permissions": [ "imagebuilder:TagResource", "imagebuilder:UntagResource" ] }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UntagResource", + "imagebuilder:DeleteWorkflow" + ] + }, "list": { "permissions": [ "imagebuilder:ListWorkflows", @@ -76,85 +194,6 @@ } } } - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UntagResource", - "imagebuilder:DeleteWorkflow" - ] - } - }, - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ], - "additionalProperties": false, - "definitions": {}, - "properties": { - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "type": "string", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "markdownDescription": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: BUILD | TEST | DISTRIBUTION \nUpdate requires: Replacement\n" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string", - "markdownDescription": "The description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string", - "markdownDescription": "The KMS key identifier used to encrypt the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string", - "markdownDescription": "The version of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string", - "markdownDescription": "The change description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Data": { - "minLength": 1, - "description": "The data of the workflow.", - "type": "string", - "maxLength": 16000, - "markdownDescription": "The data of the workflow.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string", - "markdownDescription": "The uri of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags associated with the workflow.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags associated with the workflow.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string", - "markdownDescription": "The name of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" } }, "attributes": { @@ -162,6 +201,11 @@ "description": "The Amazon Resource Name (ARN) of the workflow.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LatestVersion": { + "description": "The latest version references of the workflow.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the workflow.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-interconnect-connection.json b/server/schema/resources/aws-interconnect-connection.json new file mode 100644 index 00000000..1aadb406 --- /dev/null +++ b/server/schema/resources/aws-interconnect-connection.json @@ -0,0 +1,301 @@ +{ + "typeName": "AWS::Interconnect::Connection", + "description": "Resource Type definition for AWS::Interconnect::Connection. Creates a managed network connection between AWS and a partner cloud service provider.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AttachPoint": { + "description": "The logical attachment point in your AWS network where the managed connection will be connected.", + "type": "object", + "properties": { + "DirectConnectGateway": { + "type": "string", + "description": "The ID of the Direct Connect Gateway to attach to.", + "markdownDescription": "The ID of the Direct Connect Gateway to attach to.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "description": "The ARN of the resource to attach to.", + "markdownDescription": "The ARN of the resource to attach to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The logical attachment point in your AWS network where the managed connection will be connected.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Provider": { + "description": "The partner cloud service provider.", + "type": "object", + "properties": { + "CloudServiceProvider": { + "type": "string", + "description": "The name of the cloud service provider.", + "maxLength": 32, + "markdownDescription": "The name of the cloud service provider.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 32 \nUpdate requires: No interruption\n" + }, + "LastMileProvider": { + "type": "string", + "description": "The name of the last mile provider.", + "maxLength": 32, + "markdownDescription": "The name of the last mile provider.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 32 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The partner cloud service provider.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ConnectionId": { + "description": "The unique identifier for the connection.", + "type": "string", + "markdownDescription": "The unique identifier for the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^mcc-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the connection.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:interconnect:[^:]+:[0-9]{12}:connection/mcc-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "description": "A description of the connection.", + "type": "string", + "maxLength": 255, + "markdownDescription": "A description of the connection.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nPattern: ^[-a-zA-Z0-9_ ]+$ \nUpdate requires: No interruption\n" + }, + "Bandwidth": { + "description": "The bandwidth of the connection (e.g., 50Mbps, 1Gbps). Required when creating a connection through AWS.", + "type": "string", + "markdownDescription": "The bandwidth of the connection (e.g., 50Mbps, 1Gbps). Required when creating a connection through AWS.\n\n---\n\nRequired: No \nType: String \nPattern: ^\\d+[MG]bps$ \nUpdate requires: No interruption\n" + }, + "AttachPoint": { + "description": "The logical attachment point in your AWS network where the managed connection will be connected.", + "$ref": "#/definitions/AttachPoint", + "markdownDescription": "The logical attachment point in your AWS network where the managed connection will be connected.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "EnvironmentId": { + "description": "The ID of the environment for the connection. Required when creating a connection through AWS. Mutually exclusive with ActivationKey.", + "type": "string", + "minLength": 1, + "maxLength": 32, + "markdownDescription": "The ID of the environment for the connection. Required when creating a connection through AWS. Mutually exclusive with ActivationKey.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 32 \nUpdate requires: Replacement\n" + }, + "RemoteOwnerAccount": { + "description": "The account ID of the remote owner. Required when creating a connection through AWS.", + "type": "string", + "maxLength": 255, + "markdownDescription": "The account ID of the remote owner. Required when creating a connection through AWS.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nPattern: ^[-a-zA-Z0-9_@\\.]+$ \nUpdate requires: No interruption\n" + }, + "ActivationKey": { + "description": "The activation key for accepting a connection proposal from a partner CSP. Mutually exclusive with EnvironmentId.", + "type": "string", + "markdownDescription": "The activation key for accepting a connection proposal from a partner CSP. Mutually exclusive with EnvironmentId.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Provider": { + "description": "The partner cloud service provider.", + "$ref": "#/definitions/Provider", + "markdownDescription": "The partner cloud service provider.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Type": { + "description": "The type of managed connection.", + "type": "string", + "minLength": 5, + "maxLength": 32, + "markdownDescription": "The type of managed connection.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 32 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The current state of the connection.", + "type": "string", + "enum": [ + "available", + "requested", + "pending", + "down", + "deleting", + "deleted", + "failed" + ], + "markdownDescription": "The current state of the connection.\n\n---\n\nRequired: No \nType: String \nAllowed Values: available | requested | pending | down | deleting | deleted | failed \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SharedId": { + "description": "The shared identifier for the connection pairing.", + "type": "string", + "markdownDescription": "The shared identifier for the connection pairing.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerAccount": { + "description": "The AWS account ID of the connection owner.", + "type": "string", + "markdownDescription": "The AWS account ID of the connection owner.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "BillingTier": { + "description": "The billing tier for the connection.", + "type": "integer", + "minimum": 0, + "maximum": 8, + "markdownDescription": "The billing tier for the connection.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "AttachPoint" + ], + "createOnlyProperties": [ + "/properties/AttachPoint", + "/properties/EnvironmentId", + "/properties/ActivationKey" + ], + "readOnlyProperties": [ + "/properties/ConnectionId", + "/properties/Arn", + "/properties/Provider", + "/properties/Type", + "/properties/State", + "/properties/SharedId", + "/properties/OwnerAccount", + "/properties/BillingTier" + ], + "writeOnlyProperties": [ + "/properties/RemoteOwnerAccount" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/ConnectionId" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "interconnect:TagResource", + "interconnect:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "interconnect:CreateConnection", + "interconnect:AcceptConnectionProposal", + "interconnect:TagResource" + ] + }, + "read": { + "permissions": [ + "interconnect:GetConnection", + "interconnect:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "interconnect:UpdateConnection", + "interconnect:GetConnection", + "interconnect:TagResource", + "interconnect:UntagResource", + "interconnect:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "interconnect:GetConnection", + "interconnect:DeleteConnection" + ] + }, + "list": { + "permissions": [ + "interconnect:ListConnections" + ] + } + }, + "attributes": { + "ConnectionId": { + "description": "The unique identifier for the connection.", + "type": "string", + "markdownDescription": "The unique identifier for the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^mcc-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the connection.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the connection.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[a-z-]*:interconnect:[^:]+:[0-9]{12}:connection/mcc-[a-z0-9]{8}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Provider": { + "description": "The partner cloud service provider.", + "$ref": "#/definitions/Provider", + "markdownDescription": "The partner cloud service provider.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Type": { + "description": "The type of managed connection.", + "type": "string", + "minLength": 5, + "maxLength": 32, + "markdownDescription": "The type of managed connection.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 32 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The current state of the connection.", + "type": "string", + "enum": [ + "available", + "requested", + "pending", + "down", + "deleting", + "deleted", + "failed" + ], + "markdownDescription": "The current state of the connection.\n\n---\n\nRequired: No \nType: String \nAllowed Values: available | requested | pending | down | deleting | deleted | failed \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SharedId": { + "description": "The shared identifier for the connection pairing.", + "type": "string", + "markdownDescription": "The shared identifier for the connection pairing.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerAccount": { + "description": "The AWS account ID of the connection owner.", + "type": "string", + "markdownDescription": "The AWS account ID of the connection owner.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "BillingTier": { + "description": "The billing tier for the connection.", + "type": "integer", + "minimum": 0, + "maximum": 8, + "markdownDescription": "The billing tier for the connection.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-iot-authorizer.json b/server/schema/resources/aws-iot-authorizer.json index 9450afe4..c976020d 100644 --- a/server/schema/resources/aws-iot-authorizer.json +++ b/server/schema/resources/aws-iot-authorizer.json @@ -84,7 +84,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-cacertificate.json b/server/schema/resources/aws-iot-cacertificate.json index 318f8e74..4fcc60a2 100644 --- a/server/schema/resources/aws-iot-cacertificate.json +++ b/server/schema/resources/aws-iot-cacertificate.json @@ -123,7 +123,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-certificateprovider.json b/server/schema/resources/aws-iot-certificateprovider.json index e2cd2ad4..6facf8d9 100644 --- a/server/schema/resources/aws-iot-certificateprovider.json +++ b/server/schema/resources/aws-iot-certificateprovider.json @@ -81,7 +81,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-command.json b/server/schema/resources/aws-iot-command.json index 7da652d1..0bbd2b3c 100644 --- a/server/schema/resources/aws-iot-command.json +++ b/server/schema/resources/aws-iot-command.json @@ -25,6 +25,12 @@ }, "Description": { "$ref": "#/definitions/CommandParameterDescription" + }, + "Type": { + "$ref": "#/definitions/CommandParameterType" + }, + "ValueConditions": { + "$ref": "#/definitions/CommandParameterValueConditionList" } }, "required": [ @@ -84,6 +90,116 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CommandParameterType": { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "DOUBLE", + "LONG", + "UNSIGNEDLONG", + "BOOLEAN", + "BINARY" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | INTEGER | DOUBLE | LONG | UNSIGNEDLONG | BOOLEAN | BINARY \nUpdate requires: No interruption\n" + }, + "CommandParameterValueConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommandParameterValueCondition" + }, + "minItems": 1, + "insertionOrder": true, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CommandParameterValueCondition": { + "type": "object", + "properties": { + "ComparisonOperator": { + "$ref": "#/definitions/CommandParameterValueComparisonOperator" + }, + "Operand": { + "$ref": "#/definitions/CommandParameterValueComparisonOperand" + } + }, + "required": [ + "ComparisonOperator", + "Operand" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CommandParameterValueComparisonOperator": { + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "LESS_THAN", + "LESS_THAN_EQUALS", + "GREATER_THAN", + "GREATER_THAN_EQUALS", + "IN_SET", + "NOT_IN_SET", + "IN_RANGE", + "NOT_IN_RANGE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EQUALS | NOT_EQUALS | LESS_THAN | LESS_THAN_EQUALS | GREATER_THAN | GREATER_THAN_EQUALS | IN_SET | NOT_IN_SET | IN_RANGE | NOT_IN_RANGE \nUpdate requires: No interruption\n" + }, + "CommandParameterValueComparisonOperand": { + "type": "object", + "properties": { + "Number": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Numbers": { + "$ref": "#/definitions/CommandParameterValueStringList" + }, + "String": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Strings": { + "$ref": "#/definitions/CommandParameterValueStringList" + }, + "NumberRange": { + "$ref": "#/definitions/CommandParameterValueNumberRange" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CommandParameterValueNumberRange": { + "type": "object", + "properties": { + "Min": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Min", + "Max" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CommandParameterValueStringList": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 10, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "MimeType": { "type": "string", "minLength": 1, @@ -106,6 +222,37 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "OutputFormat": { + "type": "string", + "enum": [ + "JSON", + "CBOR" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: JSON | CBOR \nUpdate requires: No interruption\n" + }, + "AwsJsonSubstitutionCommandPreprocessorConfig": { + "type": "object", + "properties": { + "OutputFormat": { + "$ref": "#/definitions/OutputFormat" + } + }, + "required": [ + "OutputFormat" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CommandPreprocessor": { + "type": "object", + "properties": { + "AwsJsonSubstitution": { + "$ref": "#/definitions/AwsJsonSubstitutionCommandPreprocessorConfig" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", @@ -198,6 +345,17 @@ "description": "The payload associated with the command.", "markdownDescription": "The payload associated with the command.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "PayloadTemplate": { + "type": "string", + "maxLength": 32768, + "description": "The payload template associated with the command.", + "markdownDescription": "The payload template associated with the command.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 32768 \nUpdate requires: Replacement\n" + }, + "Preprocessor": { + "$ref": "#/definitions/CommandPreprocessor", + "description": "The command preprocessor configuration.", + "markdownDescription": "The command preprocessor configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, "PendingDeletion": { "type": "boolean", "description": "A flag indicating whether the command is pending deletion.", @@ -217,7 +375,9 @@ "CommandId" ], "createOnlyProperties": [ - "/properties/CommandId" + "/properties/CommandId", + "/properties/PayloadTemplate", + "/properties/Preprocessor" ], "readOnlyProperties": [ "/properties/CommandArn" diff --git a/server/schema/resources/aws-iot-domainconfiguration.json b/server/schema/resources/aws-iot-domainconfiguration.json index b5af4f99..8be575f0 100644 --- a/server/schema/resources/aws-iot-domainconfiguration.json +++ b/server/schema/resources/aws-iot-domainconfiguration.json @@ -228,7 +228,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-logging.json b/server/schema/resources/aws-iot-logging.json index 50c4989f..8c0dc989 100644 --- a/server/schema/resources/aws-iot-logging.json +++ b/server/schema/resources/aws-iot-logging.json @@ -3,7 +3,45 @@ "description": "Logging Options enable you to configure your IoT V2 logging role and default logging level so that you can monitor progress events logs as it passes from your devices through Iot core service.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot.git", "documentationUrl": "https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html", - "definitions": {}, + "definitions": { + "EventConfiguration": { + "description": "Configuration for event-based logging that specifies which event types to log and their logging settings. Used for account-level logging overrides.", + "type": "object", + "properties": { + "EventType": { + "description": "The type of event to log. These include event types like Connect, Publish, and Disconnect.", + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "The type of event to log. These include event types like Connect, Publish, and Disconnect.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\n" + }, + "LogLevel": { + "description": "The logging level for the specified event type. Determines the verbosity of log messages generated for this event type.", + "type": "string", + "enum": [ + "ERROR", + "WARN", + "INFO", + "DEBUG", + "DISABLED" + ], + "markdownDescription": "The logging level for the specified event type. Determines the verbosity of log messages generated for this event type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ERROR | WARN | INFO | DEBUG | DISABLED \nUpdate requires: No interruption\n" + }, + "LogDestination": { + "description": "CloudWatch Log Group for event-based logging. Specifies where log events should be sent. The log destination for event-based logging overrides default Log Group for the specified event type and applies to all resources associated with that event.", + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "CloudWatch Log Group for event-based logging. Specifies where log events should be sent. The log destination for event-based logging overrides default Log Group for the specified event type and applies to all resources associated with that event.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^(?!aws/)[a-zA-Z0-9_\\-/.#]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EventType" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for event-based logging that specifies which event types to log and their logging settings. Used for account-level logging overrides.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, "properties": { "AccountId": { "description": "Your 12-digit account ID (used as the primary identifier for the CloudFormation resource).", @@ -30,6 +68,15 @@ "DISABLED" ], "markdownDescription": "The log level to use. Valid values are: ERROR, WARN, INFO, DEBUG, or DISABLED.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ERROR | WARN | INFO | DEBUG | DISABLED \nUpdate requires: No interruption\n" + }, + "EventConfigurations": { + "description": "Configurations for event-based logging that specifies which event types to log and their logging settings. Overrides account-level logging for the specified event", + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/EventConfiguration" + }, + "markdownDescription": "Configurations for event-based logging that specifies which event types to log and their logging settings. Overrides account-level logging for the specified event\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-iot-policy.json b/server/schema/resources/aws-iot-policy.json index 5135066e..51f7b098 100644 --- a/server/schema/resources/aws-iot-policy.json +++ b/server/schema/resources/aws-iot-policy.json @@ -27,7 +27,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-provisioningtemplate.json b/server/schema/resources/aws-iot-provisioningtemplate.json index 1cad22c7..f6618ee7 100644 --- a/server/schema/resources/aws-iot-provisioningtemplate.json +++ b/server/schema/resources/aws-iot-provisioningtemplate.json @@ -91,7 +91,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-rolealias.json b/server/schema/resources/aws-iot-rolealias.json index d969c04a..cfa5956c 100644 --- a/server/schema/resources/aws-iot-rolealias.json +++ b/server/schema/resources/aws-iot-rolealias.json @@ -70,7 +70,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:ListTagsForResource", diff --git a/server/schema/resources/aws-iot-topicrule.json b/server/schema/resources/aws-iot-topicrule.json index 41a81526..3baf6f12 100644 --- a/server/schema/resources/aws-iot-topicrule.json +++ b/server/schema/resources/aws-iot-topicrule.json @@ -385,6 +385,13 @@ }, "Auth": { "$ref": "#/definitions/HttpAuthorization" + }, + "EnableBatching": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "BatchConfig": { + "$ref": "#/definitions/BatchConfig" } }, "required": [ @@ -445,6 +452,25 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "BatchConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxBatchOpenMs": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxBatchSize": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxBatchSizeBytes": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "IotAnalyticsAction": { "type": "object", "additionalProperties": false, @@ -1138,6 +1164,10 @@ "readOnlyProperties": [ "/properties/Arn" ], + "deprecatedProperties": [ + "/properties/TopicRulePayload/ErrorAction/IotAnalytics", + "/properties/TopicRulePayload/Actions/*/IotAnalytics" + ], "handlers": { "create": { "permissions": [ diff --git a/server/schema/resources/aws-iot-topicruledestination.json b/server/schema/resources/aws-iot-topicruledestination.json index dbba350b..fe9ff72d 100644 --- a/server/schema/resources/aws-iot-topicruledestination.json +++ b/server/schema/resources/aws-iot-topicruledestination.json @@ -88,7 +88,7 @@ "taggable": false, "tagOnCreate": false, "tagUpdatable": false, - "cloudFormationSystemTags": true + "cloudFormationSystemTags": false }, "additionalProperties": false, "readOnlyProperties": [ diff --git a/server/schema/resources/aws-iotfleethub-application.json b/server/schema/resources/aws-iotfleethub-application.json deleted file mode 100644 index d5224a10..00000000 --- a/server/schema/resources/aws-iotfleethub-application.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "typeName": "AWS::IoTFleetHub::Application", - "description": "Resource schema for AWS::IoTFleetHub::Application", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotfleethub.git", - "definitions": { - "Tag": { - "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", - "type": "object", - "properties": { - "Key": { - "type": "string", - "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 -.", - "minLength": 1, - "maxLength": 128, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, - "Value": { - "type": "string", - "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 -.", - "minLength": 1, - "maxLength": 256, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Key", - "Value" - ], - "additionalProperties": false, - "markdownDescription": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "properties": { - "ApplicationId": { - "description": "The ID of the application.", - "type": "string", - "minLength": 36, - "maxLength": 36, - "markdownDescription": "The ID of the application.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 36 \nMaximum Length: 36 \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationArn": { - "description": "The ARN of the application.", - "type": "string", - "minLength": 1, - "maxLength": 1600, - "markdownDescription": "The ARN of the application.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1600 \nPattern: ^arn:[!-~]+$ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationName": { - "description": "Application Name, should be between 1 and 256 characters.", - "type": "string", - "minLength": 1, - "maxLength": 256, - "markdownDescription": "Application Name, should be between 1 and 256 characters.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[ -~]*$ \nUpdate requires: No interruption\n" - }, - "ApplicationDescription": { - "description": "Application Description, should be between 1 and 2048 characters.", - "type": "string", - "minLength": 1, - "maxLength": 2048, - "markdownDescription": "Application Description, should be between 1 and 2048 characters.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^[ -~]*$ \nUpdate requires: No interruption\n" - }, - "ApplicationUrl": { - "description": "The URL of the application.", - "type": "string", - "markdownDescription": "The URL of the application.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationState": { - "description": "The current state of the application.", - "type": "string", - "markdownDescription": "The current state of the application.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationCreationDate": { - "description": "When the Application was created", - "type": "integer", - "markdownDescription": "When the Application was created\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationLastUpdateDate": { - "description": "When the Application was last updated", - "type": "integer", - "markdownDescription": "When the Application was last updated\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" - }, - "RoleArn": { - "description": "The ARN of the role that the web application assumes when it interacts with AWS IoT Core. For more info on configuring this attribute, see https://docs.aws.amazon.com/iot/latest/apireference/API_iotfleethub_CreateApplication.html#API_iotfleethub_CreateApplication_RequestSyntax", - "type": "string", - "minLength": 1, - "maxLength": 1600, - "markdownDescription": "The ARN of the role that the web application assumes when it interacts with AWS IoT Core. For more info on configuring this attribute, see https://docs.aws.amazon.com/iot/latest/apireference/API_iotfleethub_CreateApplication.html#API_iotfleethub_CreateApplication_RequestSyntax\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1600 \nPattern: ^arn:[!-~]+$ \nUpdate requires: No interruption\n" - }, - "SsoClientId": { - "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", - "type": "string", - "markdownDescription": "The AWS SSO application generated client ID (used with AWS SSO APIs).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ErrorMessage": { - "description": "A message indicating why Create or Delete Application failed.", - "type": "string", - "markdownDescription": "A message indicating why Create or Delete Application failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Tags": { - "description": "A list of key-value pairs that contain metadata for the application.", - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "minItems": 0, - "maxItems": 50, - "markdownDescription": "A list of key-value pairs that contain metadata for the application.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationName", - "RoleArn" - ], - "readOnlyProperties": [ - "/properties/ApplicationArn", - "/properties/ApplicationId", - "/properties/ApplicationUrl", - "/properties/ApplicationState", - "/properties/ApplicationCreationDate", - "/properties/ApplicationLastUpdateDate", - "/properties/SsoClientId", - "/properties/ErrorMessage" - ], - "primaryIdentifier": [ - "/properties/ApplicationId" - ], - "handlers": { - "create": { - "permissions": [ - "iotfleethub:CreateApplication", - "iotfleethub:TagResource", - "iam:PassRole", - "sso:CreateManagedApplicationInstance", - "sso:DescribeRegisteredRegions" - ] - }, - "read": { - "permissions": [ - "iotfleethub:DescribeApplication" - ] - }, - "update": { - "permissions": [ - "iotfleethub:UpdateApplication", - "iotfleethub:DescribeApplication", - "iotfleethub:TagResource", - "iotfleethub:UntagResource" - ] - }, - "delete": { - "permissions": [ - "iotfleethub:DeleteApplication", - "iotfleethub:DescribeApplication", - "sso:DeleteManagedApplicationInstance" - ] - }, - "list": { - "permissions": [ - "iotfleethub:ListApplications" - ] - } - }, - "attributes": { - "ApplicationId": { - "description": "The ID of the application.", - "type": "string", - "minLength": 36, - "maxLength": 36, - "markdownDescription": "The ID of the application.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 36 \nMaximum Length: 36 \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationArn": { - "description": "The ARN of the application.", - "type": "string", - "minLength": 1, - "maxLength": 1600, - "markdownDescription": "The ARN of the application.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1600 \nPattern: ^arn:[!-~]+$ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationUrl": { - "description": "The URL of the application.", - "type": "string", - "markdownDescription": "The URL of the application.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationState": { - "description": "The current state of the application.", - "type": "string", - "markdownDescription": "The current state of the application.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationCreationDate": { - "description": "When the Application was created", - "type": "integer", - "markdownDescription": "When the Application was created\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ApplicationLastUpdateDate": { - "description": "When the Application was last updated", - "type": "integer", - "markdownDescription": "When the Application was last updated\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" - }, - "SsoClientId": { - "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", - "type": "string", - "markdownDescription": "The AWS SSO application generated client ID (used with AWS SSO APIs).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "ErrorMessage": { - "description": "A message indicating why Create or Delete Application failed.", - "type": "string", - "markdownDescription": "A message indicating why Create or Delete Application failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - } - } -} \ No newline at end of file diff --git a/server/schema/resources/aws-ivs-channel.json b/server/schema/resources/aws-ivs-channel.json index e8cb9b18..0a9849d5 100644 --- a/server/schema/resources/aws-ivs-channel.json +++ b/server/schema/resources/aws-ivs-channel.json @@ -170,7 +170,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-encoderconfiguration.json b/server/schema/resources/aws-ivs-encoderconfiguration.json index 9c235193..32fbb149 100644 --- a/server/schema/resources/aws-ivs-encoderconfiguration.json +++ b/server/schema/resources/aws-ivs-encoderconfiguration.json @@ -103,7 +103,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-ingestconfiguration.json b/server/schema/resources/aws-ivs-ingestconfiguration.json index 37897840..d77b6bdb 100644 --- a/server/schema/resources/aws-ivs-ingestconfiguration.json +++ b/server/schema/resources/aws-ivs-ingestconfiguration.json @@ -114,7 +114,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-playbackkeypair.json b/server/schema/resources/aws-ivs-playbackkeypair.json index 0272a973..2aef0665 100644 --- a/server/schema/resources/aws-ivs-playbackkeypair.json +++ b/server/schema/resources/aws-ivs-playbackkeypair.json @@ -69,7 +69,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-playbackrestrictionpolicy.json b/server/schema/resources/aws-ivs-playbackrestrictionpolicy.json index 3c9cb9a7..2a22257c 100644 --- a/server/schema/resources/aws-ivs-playbackrestrictionpolicy.json +++ b/server/schema/resources/aws-ivs-playbackrestrictionpolicy.json @@ -91,7 +91,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-publickey.json b/server/schema/resources/aws-ivs-publickey.json index fefdb8be..55c835cb 100644 --- a/server/schema/resources/aws-ivs-publickey.json +++ b/server/schema/resources/aws-ivs-publickey.json @@ -69,7 +69,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-recordingconfiguration.json b/server/schema/resources/aws-ivs-recordingconfiguration.json index c6808e25..d0a261f2 100644 --- a/server/schema/resources/aws-ivs-recordingconfiguration.json +++ b/server/schema/resources/aws-ivs-recordingconfiguration.json @@ -211,7 +211,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-stage.json b/server/schema/resources/aws-ivs-stage.json index 0dbd4bc5..5a01b95b 100644 --- a/server/schema/resources/aws-ivs-stage.json +++ b/server/schema/resources/aws-ivs-stage.json @@ -206,7 +206,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-storageconfiguration.json b/server/schema/resources/aws-ivs-storageconfiguration.json index c7c920f2..aad51d73 100644 --- a/server/schema/resources/aws-ivs-storageconfiguration.json +++ b/server/schema/resources/aws-ivs-storageconfiguration.json @@ -82,7 +82,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-ivs-streamkey.json b/server/schema/resources/aws-ivs-streamkey.json index fff20647..4d885383 100644 --- a/server/schema/resources/aws-ivs-streamkey.json +++ b/server/schema/resources/aws-ivs-streamkey.json @@ -68,7 +68,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "ivs:TagResource", diff --git a/server/schema/resources/aws-kafkaconnect-connector.json b/server/schema/resources/aws-kafkaconnect-connector.json index 5da4d6c7..9e1f399c 100644 --- a/server/schema/resources/aws-kafkaconnect-connector.json +++ b/server/schema/resources/aws-kafkaconnect-connector.json @@ -64,6 +64,15 @@ "type": "string", "markdownDescription": "The version of Kafka Connect. It has to be compatible with both the Kafka cluster's version and the plugins.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, + "NetworkType": { + "description": "The network type of the Connector.", + "type": "string", + "enum": [ + "IPV4", + "DUAL" + ], + "markdownDescription": "The network type of the Connector.\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUAL \nUpdate requires: Replacement\n" + }, "LogDelivery": { "$ref": "#/definitions/LogDelivery" }, @@ -149,6 +158,11 @@ 8 ], "markdownDescription": "Specifies how many MSK Connect Units (MCU) as the minimum scaling unit.\n\n---\n\nRequired: Yes \nType: Integer \nAllowed Values: 1 | 2 | 4 | 8 \nUpdate requires: No interruption\n" + }, + "MaxAutoscalingTaskCount": { + "description": "The maximum number of tasks allocated to the connector during autoscaling operations.", + "type": "integer", + "markdownDescription": "The maximum number of tasks allocated to the connector during autoscaling operations.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "required": [ @@ -354,7 +368,7 @@ 4, 8 ], - "markdownDescription": "Specifies how many MSK Connect Units (MCU) are allocated to the connector.\n\n---\n\nRequired: No \nType: Integer \nAllowed Values: 1 | 2 | 4 | 8 \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies how many MSK Connect Units (MCU) are allocated to the connector.\n\n---\n\nRequired: Yes \nType: Integer \nAllowed Values: 1 | 2 | 4 | 8 \nUpdate requires: No interruption\n" }, "WorkerCount": { "description": "Number of workers for a connector.", @@ -363,6 +377,7 @@ } }, "required": [ + "McuCount", "WorkerCount" ], "markdownDescription": "Details about a fixed capacity allocated to a connector.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -561,7 +576,8 @@ "/properties/LogDelivery", "/properties/Plugins", "/properties/ServiceExecutionRoleArn", - "/properties/WorkerConfiguration" + "/properties/WorkerConfiguration", + "/properties/NetworkType" ], "handlers": { "create": { diff --git a/server/schema/resources/aws-kendra-datasource.json b/server/schema/resources/aws-kendra-datasource.json index f4a86128..bc257f6c 100644 --- a/server/schema/resources/aws-kendra-datasource.json +++ b/server/schema/resources/aws-kendra-datasource.json @@ -1956,6 +1956,18 @@ "/properties/Type", "/properties/IndexId" ], + "deprecatedProperties": [ + "/properties/DataSourceConfiguration/S3Configuration", + "/properties/DataSourceConfiguration/SharePointConfiguration", + "/properties/DataSourceConfiguration/SalesforceConfiguration", + "/properties/DataSourceConfiguration/OneDriveConfiguration", + "/properties/DataSourceConfiguration/ServiceNowConfiguration", + "/properties/DataSourceConfiguration/DatabaseConfiguration", + "/properties/DataSourceConfiguration/ConfluenceConfiguration", + "/properties/DataSourceConfiguration/GoogleDriveConfiguration", + "/properties/DataSourceConfiguration/WebCrawlerConfiguration", + "/properties/DataSourceConfiguration/WorkDocsConfiguration" + ], "attributes": { "Id": { "$ref": "#/definitions/Id" diff --git a/server/schema/resources/aws-kendra-faq.json b/server/schema/resources/aws-kendra-faq.json index 6c874aed..b615b9f6 100644 --- a/server/schema/resources/aws-kendra-faq.json +++ b/server/schema/resources/aws-kendra-faq.json @@ -184,6 +184,7 @@ }, "update": { "permissions": [ + "kendra:DescribeFaq", "kendra:ListTagsForResource", "kendra:UntagResource", "kendra:TagResource" diff --git a/server/schema/resources/aws-kinesis-stream.json b/server/schema/resources/aws-kinesis-stream.json index 3630cd96..8bf5c914 100644 --- a/server/schema/resources/aws-kinesis-stream.json +++ b/server/schema/resources/aws-kinesis-stream.json @@ -105,6 +105,24 @@ "Value" ], "markdownDescription": "An arbitrary set of tags (key-value pairs) to associate with the Kinesis stream.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WarmThroughputObject": { + "description": "Warm throughput configuration details for the stream. Only present for ON_DEMAND streams.", + "type": "object", + "additionalProperties": false, + "properties": { + "TargetMiBps": { + "description": "Target warm throughput in MiB/s that a customer can write to a stream at any given time", + "type": "integer", + "markdownDescription": "Target warm throughput in MiB/s that a customer can write to a stream at any given time\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "CurrentMiBps": { + "description": "Current warm throughput in MiB/s", + "type": "integer", + "markdownDescription": "Current warm throughput in MiB/s\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Warm throughput configuration details for the stream. Only present for ON_DEMAND streams.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -157,7 +175,7 @@ "markdownDescription": "When specified, enables or updates server-side encryption using an AWS KMS key for a specified stream.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "Tags": { - "description": "An arbitrary set of tags (key\u2013value pairs) to associate with the Kinesis stream.", + "description": "An arbitrary set of tags (key-value pairs) to associate with the Kinesis stream.", "type": "array", "uniqueItems": false, "insertionOrder": false, @@ -165,12 +183,30 @@ "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "An arbitrary set of tags (key\u2013value pairs) to associate with the Kinesis stream.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "An arbitrary set of tags (key-value pairs) to associate with the Kinesis stream.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MaxRecordSizeInKiB": { + "description": "Maximum size of a data record in KiB allowed to be put into Kinesis stream.", + "type": "integer", + "minimum": 1024, + "maximum": 10240, + "markdownDescription": "Maximum size of a data record in KiB allowed to be put into Kinesis stream.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "WarmThroughputMiBps": { + "description": "Target warm throughput in MiB/s for the stream. This property can ONLY be set when StreamMode is ON_DEMAND.", + "type": "integer", + "markdownDescription": "Target warm throughput in MiB/s for the stream. This property can ONLY be set when StreamMode is ON_DEMAND.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "WarmThroughputObject": { + "description": "Warm throughput configuration details for the stream. Only present for ON_DEMAND streams.", + "$ref": "#/definitions/WarmThroughputObject", + "markdownDescription": "Warm throughput configuration details for the stream. Only present for ON_DEMAND streams.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } }, "additionalProperties": false, "readOnlyProperties": [ - "/properties/Arn" + "/properties/Arn", + "/properties/WarmThroughputObject" ], "createOnlyProperties": [ "/properties/Name" @@ -178,6 +214,9 @@ "primaryIdentifier": [ "/properties/Name" ], + "writeOnlyProperties": [ + "/properties/WarmThroughputMiBps" + ], "$comment": "Do not set SystemTags to true without implementing a fail-open mechanism. It should not fail when adding systemTags for customers without AddTagsToStream Permission. Cloudformation will automatically add system tags even if customer does not have the AddTagsToStream permission. COE: https://www.coe.a2z.com/coe/236297/content", "tagging": { "taggable": true, @@ -204,7 +243,9 @@ "kinesis:StartStreamEncryption", "kinesis:AddTagsToStream", "kinesis:ListTagsForStream", - "kinesis:ListTagsForResource" + "kinesis:ListTagsForResource", + "kinesis:UpdateMaxRecordSize", + "kinesis:UpdateStreamWarmThroughput" ] }, "read": { @@ -230,7 +271,9 @@ "kinesis:RemoveTagsFromStream", "kinesis:UntagResource", "kinesis:ListTagsForStream", - "kinesis:ListTagsForResource" + "kinesis:ListTagsForResource", + "kinesis:UpdateMaxRecordSize", + "kinesis:UpdateStreamWarmThroughput" ], "timeoutInMinutes": 240 }, @@ -253,6 +296,11 @@ "description": "The Amazon resource name (ARN) of the Kinesis stream", "type": "string", "markdownDescription": "The Amazon resource name (ARN) of the Kinesis stream\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "WarmThroughputObject": { + "description": "Warm throughput configuration details for the stream. Only present for ON_DEMAND streams.", + "$ref": "#/definitions/WarmThroughputObject", + "markdownDescription": "Warm throughput configuration details for the stream. Only present for ON_DEMAND streams.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-kinesisanalyticsv2-application.json b/server/schema/resources/aws-kinesisanalyticsv2-application.json index 46e55a94..c0c54b6a 100644 --- a/server/schema/resources/aws-kinesisanalyticsv2-application.json +++ b/server/schema/resources/aws-kinesisanalyticsv2-application.json @@ -10,7 +10,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "kinesisanalytics:TagResource", + "kinesisanalytics:UntagResource", + "kinesisanalytics:ListTagsForResource" + ] }, "properties": { "ApplicationConfiguration": { @@ -1131,6 +1136,7 @@ "kinesisanalytics:DescribeApplication", "kinesisanalytics:ListTagsForResource", "kinesisanalytics:UpdateApplicationMaintenanceConfiguration", + "kinesisanalytics:TagResource", "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", @@ -1146,6 +1152,7 @@ }, "update": { "permissions": [ + "iam:PassRole", "kinesisanalytics:UpdateApplication", "kinesisanalytics:DescribeApplication", "kinesisanalytics:TagResource", diff --git a/server/schema/resources/aws-kinesisvideo-stream.json b/server/schema/resources/aws-kinesisvideo-stream.json index cc7aa4cf..5de973ed 100644 --- a/server/schema/resources/aws-kinesisvideo-stream.json +++ b/server/schema/resources/aws-kinesisvideo-stream.json @@ -28,6 +28,24 @@ ], "additionalProperties": false, "markdownDescription": "A key-value pair to associated with the Kinesis Video Stream.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StreamStorageConfiguration": { + "description": "Configuration for the storage tier of the Kinesis Video Stream.", + "type": "object", + "properties": { + "DefaultStorageTier": { + "type": "string", + "description": "The storage tier for the Kinesis Video Stream. Determines the storage class used for stream data.", + "enum": [ + "HOT", + "WARM" + ], + "default": "HOT", + "markdownDescription": "The storage tier for the Kinesis Video Stream. Determines the storage class used for stream data.\n\n---\n\nRequired: No \nType: String \nAllowed Values: HOT | WARM \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Configuration for the storage tier of the Kinesis Video Stream.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -82,6 +100,11 @@ "minItems": 1, "maxItems": 50, "markdownDescription": "An array of key-value pairs associated with the Kinesis Video Stream.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "StreamStorageConfiguration": { + "description": "Configuration for the storage tier of the Kinesis Video Stream.", + "$ref": "#/definitions/StreamStorageConfiguration", + "markdownDescription": "Configuration for the storage tier of the Kinesis Video Stream.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -117,7 +140,8 @@ "read": { "permissions": [ "kinesisvideo:DescribeStream", - "kinesisvideo:ListTagsForStream" + "kinesisvideo:ListTagsForStream", + "kinesisvideo:DescribeStreamStorageConfiguration" ] }, "update": { diff --git a/server/schema/resources/aws-kms-key.json b/server/schema/resources/aws-kms-key.json index c20bdc4f..077c4140 100644 --- a/server/schema/resources/aws-kms-key.json +++ b/server/schema/resources/aws-kms-key.json @@ -80,7 +80,7 @@ "markdownDescription": "The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is ``AWS_KMS``, which means that KMS creates the key material.\n To [create a KMS key with no key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html) (for imported key material), set this value to ``EXTERNAL``. For more information about importing key material into KMS, see [Importing Key Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in the *Developer Guide*.\n You can ignore ``ENABLED`` when Origin is ``EXTERNAL``. When a KMS key with Origin ``EXTERNAL`` is created, the key state is ``PENDING_IMPORT`` and ``ENABLED`` is ``false``. After you import the key material, ``ENABLED`` updated to ``true``. The KMS key can then be used for Cryptographic Operations. \n + CFN doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values.\n + ``EXTERNAL`` is not supported for ML-DSA keys.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AWS_KMS | EXTERNAL \nUpdate requires: No interruption\n" }, "KeySpec": { - "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + Asymmetric ML-DSA key pairs (signing and verification)\n + ``ML_DSA_44`` \n + ``ML_DSA_65`` \n + ``ML_DSA_87`` \n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", + "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n + ``ECC_NIST_EDWARDS25519`` (ed25519) - signing and verification only\n + *Note:* For ECC_NIST_EDWARDS25519 KMS keys, the ED25519_SHA_512 signing algorithm requires [MessageType:RAW](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType), while ED25519_PH_SHA_512 requires [MessageType:DIGEST](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType). These message types cannot be used interchangeably.\n \n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + Asymmetric ML-DSA key pairs (signing and verification)\n + ``ML_DSA_44`` \n + ``ML_DSA_65`` \n + ``ML_DSA_87`` \n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", "type": "string", "default": "SYMMETRIC_DEFAULT", "enum": [ @@ -99,9 +99,10 @@ "SM2", "ML_DSA_44", "ML_DSA_65", - "ML_DSA_87" + "ML_DSA_87", + "ECC_NIST_EDWARDS25519" ], - "markdownDescription": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + Asymmetric ML-DSA key pairs (signing and verification)\n + ``ML_DSA_44`` \n + ``ML_DSA_65`` \n + ``ML_DSA_87`` \n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)\n\n---\n\nRequired: No \nType: String \nAllowed Values: SYMMETRIC_DEFAULT | RSA_2048 | RSA_3072 | RSA_4096 | ECC_NIST_P256 | ECC_NIST_P384 | ECC_NIST_P521 | ECC_SECG_P256K1 | HMAC_224 | HMAC_256 | HMAC_384 | HMAC_512 | SM2 | ML_DSA_44 | ML_DSA_65 | ML_DSA_87 \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n + ``ECC_NIST_EDWARDS25519`` (ed25519) - signing and verification only\n + *Note:* For ECC_NIST_EDWARDS25519 KMS keys, the ED25519_SHA_512 signing algorithm requires [MessageType:RAW](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType), while ED25519_PH_SHA_512 requires [MessageType:DIGEST](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType). These message types cannot be used interchangeably.\n \n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + Asymmetric ML-DSA key pairs (signing and verification)\n + ``ML_DSA_44`` \n + ``ML_DSA_65`` \n + ``ML_DSA_87`` \n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)\n\n---\n\nRequired: No \nType: String \nAllowed Values: SYMMETRIC_DEFAULT | RSA_2048 | RSA_3072 | RSA_4096 | ECC_NIST_P256 | ECC_NIST_P384 | ECC_NIST_P521 | ECC_SECG_P256K1 | HMAC_224 | HMAC_256 | HMAC_384 | HMAC_512 | SM2 | ML_DSA_44 | ML_DSA_65 | ML_DSA_87 | ECC_NIST_EDWARDS25519 \nUpdate requires: No interruption\n" }, "MultiRegion": { "description": "Creates a multi-Region primary key that you can replicate in other AWS-Regions. You can't change the ``MultiRegion`` value after the KMS key is created.\n For a list of AWS-Regions in which multi-Region keys are supported, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the **.\n If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n For a multi-Region key, set to this property to ``true``. For a single-Region key, omit this property or set it to ``false``. The default value is ``false``.\n *Multi-Region keys* are an KMS feature that lets you create multiple interoperable KMS keys in different AWS-Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS-Region and decrypt it in a different AWS-Region without making a cross-Region call or exposing the plaintext data. For more information, see [Multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.\n You can create a symmetric encryption, HMAC, or asymmetric multi-Region KMS key, and you can create a multi-Region key with imported key material. However, you cannot create a multi-Region key in a custom key store.\n To create a replica of this primary key in a different AWS-Region , create an [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html) resource in a CloudFormation stack in the replica Region. Specify the key ARN of this primary key.", diff --git a/server/schema/resources/aws-lakeformation-datalakesettings.json b/server/schema/resources/aws-lakeformation-datalakesettings.json index bb64fda1..35a87f8e 100644 --- a/server/schema/resources/aws-lakeformation-datalakesettings.json +++ b/server/schema/resources/aws-lakeformation-datalakesettings.json @@ -8,10 +8,20 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "ExternalDataFilteringAllowList": { - "$ref": "#/definitions/ExternalDataFilteringAllowList" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/DataLakePrincipal" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "CreateTableDefaultPermissions": { - "$ref": "#/definitions/CreateTableDefaultPermissions" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/PrincipalPermissions" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "MutationType": { "type": "string", @@ -21,15 +31,33 @@ "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ReadOnlyAdmins": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/DataLakePrincipal" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "AllowFullTableExternalDataAccess": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Admins": { - "$ref": "#/definitions/Admins" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/DataLakePrincipal" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "CreateDatabaseDefaultPermissions": { - "$ref": "#/definitions/CreateDatabaseDefaultPermissions" + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/PrincipalPermissions" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Id": { "type": "string", @@ -55,24 +83,41 @@ } }, "definitions": { - "ExternalDataFilteringAllowList": { - "type": "object", - "additionalProperties": false, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CreateTableDefaultPermissions": { - "type": "object", - "additionalProperties": false, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Admins": { + "DataLakePrincipal": { "type": "object", "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DataLakePrincipalIdentifier" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CreateDatabaseDefaultPermissions": { + "PrincipalPermissions": { "type": "object", "additionalProperties": false, + "properties": { + "Permissions": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "required": [ + "Permissions", + "Principal" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, diff --git a/server/schema/resources/aws-lambda-capacityprovider.json b/server/schema/resources/aws-lambda-capacityprovider.json new file mode 100644 index 00000000..44e85312 --- /dev/null +++ b/server/schema/resources/aws-lambda-capacityprovider.json @@ -0,0 +1,380 @@ +{ + "typeName": "AWS::Lambda::CapacityProvider", + "description": "Creates a capacity provider that manages compute resources for Lambda functions", + "definitions": { + "Architecture": { + "description": "Specifications for the types of EC2 instances that the capacity provider can use.", + "type": "string", + "enum": [ + "x86_64", + "arm64" + ], + "markdownDescription": "Specifications for the types of EC2 instances that the capacity provider can use.\n\n---\n\nRequired: No \nType: String \nAllowed Values: x86_64 | arm64 \nUpdate requires: No interruption\n" + }, + "CapacityProviderPermissionsConfig": { + "description": "Configuration that specifies the permissions required for the capacity provider to manage compute resources.", + "type": "object", + "properties": { + "CapacityProviderOperatorRoleArn": { + "description": "The ARN of the IAM role that the capacity provider uses to manage compute instances and other AWS resources.", + "type": "string", + "maxLength": 10000, + "minLength": 0, + "markdownDescription": "The ARN of the IAM role that the capacity provider uses to manage compute instances and other AWS resources.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 10000 \nPattern: ^arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CapacityProviderOperatorRoleArn" + ], + "additionalProperties": false, + "markdownDescription": "Configuration that specifies the permissions required for the capacity provider to manage compute resources.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CapacityProviderPredefinedMetricType": { + "description": "The predefined metric for target tracking.", + "type": "string", + "enum": [ + "LambdaCapacityProviderAverageCPUUtilization" + ], + "markdownDescription": "The predefined metric for target tracking.\n\n---\n\nRequired: No \nType: String \nAllowed Values: LambdaCapacityProviderAverageCPUUtilization \nUpdate requires: No interruption\n" + }, + "CapacityProviderScalingConfig": { + "description": "Configuration that defines how the capacity provider scales compute instances based on demand and policies.", + "type": "object", + "additionalProperties": false, + "properties": { + "MaxVCpuCount": { + "description": "The maximum number of vCPUs that the capacity provider can provision across all compute instances.", + "type": "integer", + "minimum": 2, + "maximum": 15000, + "markdownDescription": "The maximum number of vCPUs that the capacity provider can provision across all compute instances.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ScalingMode": { + "$ref": "#/definitions/CapacityProviderScalingMode", + "description": "The scaling mode that determines how the capacity provider responds to changes in demand.", + "markdownDescription": "The scaling mode that determines how the capacity provider responds to changes in demand.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ScalingPolicies": { + "description": "A list of target tracking scaling policies for the capacity provider.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetTrackingScalingPolicy" + }, + "maxItems": 10, + "minItems": 1, + "markdownDescription": "A list of target tracking scaling policies for the capacity provider.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Configuration that defines how the capacity provider scales compute instances based on demand and policies.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CapacityProviderScalingMode": { + "description": "The scaling mode for the capacity provider.", + "type": "string", + "enum": [ + "Auto", + "Manual" + ], + "markdownDescription": "The scaling mode for the capacity provider.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Auto | Manual \nUpdate requires: No interruption\n" + }, + "CapacityProviderState": { + "description": "The current state of the capacity provider. Indicates whether the provider is being created, is active and ready for use, has failed, or is being deleted.", + "type": "string", + "enum": [ + "Pending", + "Active", + "Failed", + "Deleting" + ], + "markdownDescription": "The current state of the capacity provider. Indicates whether the provider is being created, is active and ready for use, has failed, or is being deleted.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Pending | Active | Failed | Deleting \nUpdate requires: No interruption\n" + }, + "CapacityProviderVpcConfig": { + "description": "VPC configuration that specifies the network settings for compute instances managed by the capacity provider.", + "type": "object", + "properties": { + "SubnetIds": { + "description": "A list of subnet IDs where the capacity provider launches compute instances.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "maxLength": 1024, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^subnet-[0-9a-z]*$ \nUpdate requires: No interruption\n" + }, + "maxItems": 16, + "minItems": 1, + "markdownDescription": "A list of subnet IDs where the capacity provider launches compute instances.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "description": "A list of security group IDs that control network access for compute instances managed by the capacity provider.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "maxLength": 1024, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^sg-[0-9a-zA-Z]*$ \nUpdate requires: No interruption\n" + }, + "maxItems": 5, + "minItems": 0, + "markdownDescription": "A list of security group IDs that control network access for compute instances managed by the capacity provider.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SubnetIds", + "SecurityGroupIds" + ], + "additionalProperties": false, + "markdownDescription": "VPC configuration that specifies the network settings for compute instances managed by the capacity provider.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InstanceRequirements": { + "description": "Specifications that define the characteristics and constraints for compute instances used by the capacity provider.", + "type": "object", + "properties": { + "Architectures": { + "description": "A list of supported CPU architectures for compute instances. Valid values include ``x86_64`` and ``arm64``.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Architecture" + }, + "maxItems": 1, + "minItems": 1, + "markdownDescription": "A list of supported CPU architectures for compute instances. Valid values include ``x86_64`` and ``arm64``.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedInstanceTypes": { + "description": "A list of EC2 instance types that the capacity provider is allowed to use. If not specified, all compatible instance types are allowed.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "maxLength": 30, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: ^[a-zA-Z0-9\\.\\-]+$ \nUpdate requires: No interruption\n" + }, + "maxItems": 400, + "minItems": 0, + "markdownDescription": "A list of EC2 instance types that the capacity provider is allowed to use. If not specified, all compatible instance types are allowed.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ExcludedInstanceTypes": { + "description": "A list of EC2 instance types that the capacity provider should not use, even if they meet other requirements.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "maxLength": 30, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: ^[a-zA-Z0-9\\.\\-]+$ \nUpdate requires: No interruption\n" + }, + "maxItems": 400, + "minItems": 0, + "markdownDescription": "A list of EC2 instance types that the capacity provider should not use, even if they meet other requirements.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Specifications that define the characteristics and constraints for compute instances used by the capacity provider.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair that provides metadata for the capacity provider.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair that provides metadata for the capacity provider.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetTrackingScalingPolicy": { + "description": "A scaling policy for the capacity provider that automatically adjusts capacity to maintain a target value for a specific metric.", + "type": "object", + "properties": { + "PredefinedMetricType": { + "$ref": "#/definitions/CapacityProviderPredefinedMetricType", + "description": "The predefined metric type to track for scaling decisions.", + "markdownDescription": "The predefined metric type to track for scaling decisions.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "TargetValue": { + "description": "The target value for the metric that the scaling policy attempts to maintain through scaling actions.", + "type": "number", + "minimum": 0, + "markdownDescription": "The target value for the metric that the scaling policy attempts to maintain through scaling actions.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PredefinedMetricType", + "TargetValue" + ], + "additionalProperties": false, + "markdownDescription": "A scaling policy for the capacity provider that automatically adjusts capacity to maintain a target value for a specific metric.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "description": "", + "type": "string", + "maxLength": 140, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 140 \nPattern: ^arn:aws[a-zA-Z-]*:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:capacity-provider:[a-zA-Z0-9-_]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CapacityProviderName": { + "description": "", + "type": "string", + "maxLength": 140, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 140 \nPattern: ^(arn:aws[a-zA-Z-]*:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:capacity-provider:[a-zA-Z0-9-_]+)|[a-zA-Z0-9-_]+$ \nUpdate requires: Replacement\n" + }, + "CapacityProviderScalingConfig": { + "description": "The scaling configuration for the capacity provider.", + "$ref": "#/definitions/CapacityProviderScalingConfig", + "markdownDescription": "The scaling configuration for the capacity provider.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "InstanceRequirements": { + "description": "The instance requirements for compute resources managed by the capacity provider.", + "$ref": "#/definitions/InstanceRequirements", + "markdownDescription": "The instance requirements for compute resources managed by the capacity provider.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "KmsKeyArn": { + "description": "The ARN of the KMS key used to encrypt the capacity provider's resources.", + "type": "string", + "maxLength": 10000, + "minLength": 0, + "markdownDescription": "The ARN of the KMS key used to encrypt the capacity provider's resources.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 10000 \nPattern: ^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$ \nUpdate requires: Replacement\n" + }, + "PermissionsConfig": { + "description": "The permissions configuration for the capacity provider.", + "$ref": "#/definitions/CapacityProviderPermissionsConfig", + "markdownDescription": "The permissions configuration for the capacity provider.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "State": { + "description": "", + "$ref": "#/definitions/CapacityProviderState", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "A key-value pair that provides metadata for the capacity provider.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A key-value pair that provides metadata for the capacity provider.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "description": "The VPC configuration for the capacity provider.", + "$ref": "#/definitions/CapacityProviderVpcConfig", + "markdownDescription": "The VPC configuration for the capacity provider.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + } + }, + "required": [ + "PermissionsConfig", + "VpcConfig" + ], + "readOnlyProperties": [ + "/properties/State", + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/CapacityProviderName", + "/properties/VpcConfig", + "/properties/InstanceRequirements", + "/properties/PermissionsConfig", + "/properties/KmsKeyArn" + ], + "primaryIdentifier": [ + "/properties/CapacityProviderName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "lambda:TagResource", + "lambda:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "lambda:CreateCapacityProvider", + "lambda:GetCapacityProvider", + "lambda:TagResource", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "kms:DescribeKey" + ] + }, + "read": { + "permissions": [ + "lambda:GetCapacityProvider", + "lambda:ListTags" + ] + }, + "update": { + "permissions": [ + "lambda:UpdateCapacityProvider", + "lambda:TagResource", + "lambda:UntagResource" + ] + }, + "delete": { + "permissions": [ + "lambda:DeleteCapacityProvider", + "lambda:GetCapacityProvider" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "State": { + "description": "The current state of the capacity provider. Indicates whether the provider is being created, is active and ready for use, has failed, or is being deleted.", + "type": "string", + "enum": [ + "Pending", + "Active", + "Failed", + "Deleting" + ], + "markdownDescription": "The current state of the capacity provider. Indicates whether the provider is being created, is active and ready for use, has failed, or is being deleted.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Pending | Active | Failed | Deleting \nUpdate requires: No interruption\n" + } + } + }, + "permissions": [ + "lambda:ListCapacityProviders" + ] + } + }, + "additionalProperties": false, + "attributes": { + "Arn": { + "description": "", + "type": "string", + "maxLength": 140, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 140 \nPattern: ^arn:aws[a-zA-Z-]*:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:capacity-provider:[a-zA-Z0-9-_]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "", + "$ref": "#/definitions/CapacityProviderState", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-lambda-codesigningconfig.json b/server/schema/resources/aws-lambda-codesigningconfig.json index e69b5f52..7a34c0c5 100644 --- a/server/schema/resources/aws-lambda-codesigningconfig.json +++ b/server/schema/resources/aws-lambda-codesigningconfig.json @@ -28,7 +28,7 @@ "CodeSigningConfigArn": { "description": "A unique Arn for CodeSigningConfig resource", "type": "string", - "markdownDescription": "A unique Arn for CodeSigningConfig resource\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:code-signing-config:csc-[a-z0-9]{17} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "A unique Arn for CodeSigningConfig resource\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws[a-zA-Z-]*)?:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:code-signing-config:csc-[a-z0-9]{17} \nUpdate requires: No interruption\nRead only property: Yes" }, "Tags": { "description": "A list of tags to apply to CodeSigningConfig resource", @@ -56,7 +56,7 @@ "type": "string", "minLength": 12, "maxLength": 1024, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 1024 \nPattern: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*) \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 1024 \nPattern: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*) \nUpdate requires: No interruption\n" }, "markdownDescription": "List of Signing profile version Arns\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } @@ -174,7 +174,7 @@ "CodeSigningConfigArn": { "description": "A unique Arn for CodeSigningConfig resource", "type": "string", - "markdownDescription": "A unique Arn for CodeSigningConfig resource\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:code-signing-config:csc-[a-z0-9]{17} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "A unique Arn for CodeSigningConfig resource\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws[a-zA-Z-]*)?:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:code-signing-config:csc-[a-z0-9]{17} \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-lambda-eventinvokeconfig.json b/server/schema/resources/aws-lambda-eventinvokeconfig.json index b45203e0..ef68e100 100644 --- a/server/schema/resources/aws-lambda-eventinvokeconfig.json +++ b/server/schema/resources/aws-lambda-eventinvokeconfig.json @@ -61,7 +61,7 @@ "FunctionName": { "description": "The name of the Lambda function.", "type": "string", - "markdownDescription": "The name of the Lambda function.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]+(-[a-z]+)+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: Replacement\n" + "markdownDescription": "The name of the Lambda function.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]+(-[a-z]+)+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST(\\.PUBLISHED)?|[a-zA-Z0-9-_]+))?$ \nUpdate requires: Replacement\n" }, "MaximumEventAgeInSeconds": { "description": "The maximum age of a request that Lambda sends to a function for processing.", @@ -80,7 +80,7 @@ "Qualifier": { "description": "The identifier of a version or alias.", "type": "string", - "markdownDescription": "The identifier of a version or alias.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(|[a-zA-Z0-9$_-]{1,129})$ \nUpdate requires: Replacement\n" + "markdownDescription": "The identifier of a version or alias.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^\\$(LATEST(\\.PUBLISHED)?)|[a-zA-Z0-9$_-]{1,129}$ \nUpdate requires: Replacement\n" } }, "tagging": { diff --git a/server/schema/resources/aws-lambda-eventsourcemapping.json b/server/schema/resources/aws-lambda-eventsourcemapping.json index 6b82d2af..0c1c9cb7 100644 --- a/server/schema/resources/aws-lambda-eventsourcemapping.json +++ b/server/schema/resources/aws-lambda-eventsourcemapping.json @@ -63,7 +63,7 @@ "type": "string", "minLength": 1, "maxLength": 140, - "markdownDescription": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* \u2013 ``MyFunction``.\n + *Function ARN* \u2013 ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* \u2013 ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* \u2013 ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 140 \nPattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))? \nUpdate requires: No interruption\n" + "markdownDescription": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* \u2013 ``MyFunction``.\n + *Function ARN* \u2013 ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* \u2013 ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* \u2013 ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 140 \nPattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST(\\.PUBLISHED)?|[a-zA-Z0-9-_]+))? \nUpdate requires: No interruption\n" }, "MaximumBatchingWindowInSeconds": { "description": "The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.\n *Default (, , event sources)*: 0\n *Default (, Kafka, , event sources)*: 500 ms\n *Related setting:* For SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.", @@ -192,9 +192,9 @@ "markdownDescription": "Specific configuration settings for a self-managed Apache Kafka event source.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ScalingConfig": { - "description": "(Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).", + "description": "This property is for Amazon SQS event sources only. You cannot use ``ProvisionedPollerConfig`` while using ``ScalingConfig``. These options are mutually exclusive. To remove the scaling configuration, pass an empty value.", "$ref": "#/definitions/ScalingConfig", - "markdownDescription": "(Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "This property is for Amazon SQS event sources only. You cannot use ``ProvisionedPollerConfig`` while using ``ScalingConfig``. These options are mutually exclusive. To remove the scaling configuration, pass an empty value.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "DocumentDBEventSourceConfig": { "description": "Specific configuration settings for a DocumentDB event source.", @@ -202,14 +202,19 @@ "markdownDescription": "Specific configuration settings for a DocumentDB event source.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ProvisionedPollerConfig": { - "description": "(Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode).", + "description": "(Amazon SQS, Amazon MSK, and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode).", "$ref": "#/definitions/ProvisionedPollerConfig", - "markdownDescription": "(Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "(Amazon SQS, Amazon MSK, and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "MetricsConfig": { "description": "The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics).", "$ref": "#/definitions/MetricsConfig", "markdownDescription": "The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LoggingConfig": { + "description": "The function's Amazon CloudWatch Logs configuration settings.", + "$ref": "#/definitions/LoggingConfig", + "markdownDescription": "The function's Amazon CloudWatch Logs configuration settings.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "definitions": { @@ -266,11 +271,11 @@ "additionalProperties": false, "properties": { "Destination": { - "description": "The Amazon Resource Name (ARN) of the destination resource.\n To retain records of unsuccessful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination.\n To retain records of failed invocations from [Kinesis](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html), [DynamoDB](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html), [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.", + "description": "The Amazon Resource Name (ARN) of the destination resource.\n To retain records of unsuccessful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination.\n Amazon SNS destinations have a message size limit of 256 KB. If the combined size of the function request and response payload exceeds the limit, Lambda will drop the payload when sending ``OnFailure`` event to the destination. For details on this behavior, refer to [Retaining records of asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html).\n To retain records of failed invocations from [Kinesis](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html), [DynamoDB](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html), [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.", "type": "string", "minLength": 12, "maxLength": 1024, - "markdownDescription": "The Amazon Resource Name (ARN) of the destination resource.\n To retain records of unsuccessful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination.\n To retain records of failed invocations from [Kinesis](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html), [DynamoDB](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html), [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 1024 \nPattern: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*) \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the destination resource.\n To retain records of unsuccessful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination.\n Amazon SNS destinations have a message size limit of 256 KB. If the combined size of the function request and response payload exceeds the limit, Lambda will drop the payload when sending ``OnFailure`` event to the destination. For details on this behavior, refer to [Retaining records of asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html).\n To retain records of failed invocations from [Kinesis](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html), [DynamoDB](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html), [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 1024 \nPattern: ^$|kafka://([^.]([a-zA-Z0-9\\-_.]{0,248}))|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*) \nUpdate requires: No interruption\n" } }, "markdownDescription": "A destination for events that failed processing. For more information, see [Adding a destination](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -461,26 +466,33 @@ "markdownDescription": "Specific configuration settings for a DocumentDB event source.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ProvisionedPollerConfig": { - "description": "The [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode) configuration for the event source. Use provisioned mode to customize the minimum and maximum number of event pollers for your event source.", + "description": "The [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode) configuration for the event source. Use Provisioned Mode to customize the minimum and maximum number of event pollers for your event source.", "type": "object", "additionalProperties": false, "properties": { "MinimumPollers": { - "description": "The minimum number of event pollers this event source can scale down to.", + "description": "The minimum number of event pollers this event source can scale down to. For Amazon SQS events source mappings, default is 2, and minimum 2 required. For Amazon MSK and self-managed Apache Kafka event source mappings, default is 1.", "type": "integer", "minimum": 1, "maximum": 200, - "markdownDescription": "The minimum number of event pollers this event source can scale down to.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The minimum number of event pollers this event source can scale down to. For Amazon SQS events source mappings, default is 2, and minimum 2 required. For Amazon MSK and self-managed Apache Kafka event source mappings, default is 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "MaximumPollers": { - "description": "The maximum number of event pollers this event source can scale up to.", + "description": "The maximum number of event pollers this event source can scale up to. For Amazon SQS events source mappings, default is 200, and minimum value allowed is 2. For Amazon MSK and self-managed Apache Kafka event source mappings, default is 200, and minimum value allowed is 1.", "type": "integer", "minimum": 1, "maximum": 2000, - "markdownDescription": "The maximum number of event pollers this event source can scale up to.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The maximum number of event pollers this event source can scale up to. For Amazon SQS events source mappings, default is 200, and minimum value allowed is 2. For Amazon MSK and self-managed Apache Kafka event source mappings, default is 200, and minimum value allowed is 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "PollerGroupName": { + "description": "", + "type": "string", + "minLength": 0, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode) configuration for the event source. Use provisioned mode to customize the minimum and maximum number of event pollers for your event source.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The [provisioned mode](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode) configuration for the event source. Use Provisioned Mode to customize the minimum and maximum number of event pollers for your event source.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SchemaRegistryConfig": { "description": "Specific configuration settings for a Kafka schema registry.", @@ -581,16 +593,36 @@ "items": { "type": "string", "enum": [ - "EventCount" + "EventCount", + "ErrorCount", + "KafkaMetrics" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EventCount \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EventCount | ErrorCount | KafkaMetrics \nUpdate requires: No interruption\n" }, "minItems": 0, - "maxItems": 1, + "maxItems": 3, "markdownDescription": "The metrics you want your event source mapping to produce. Include ``EventCount`` to receive event source mapping metrics related to the number of events processed by your event source mapping. For more information about these metrics, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics).\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "The metrics configuration for your event source. Use this configuration object to define which metrics you want your event source mapping to produce.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LoggingConfig": { + "description": "The function's Amazon CloudWatch Logs configuration settings.", + "type": "object", + "additionalProperties": false, + "properties": { + "SystemLogLevel": { + "description": "Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where ``DEBUG`` is the highest level and ``WARN`` is the lowest.", + "type": "string", + "enum": [ + "DEBUG", + "INFO", + "WARN" + ], + "markdownDescription": "Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where ``DEBUG`` is the highest level and ``WARN`` is the lowest.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEBUG | INFO | WARN \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The function's Amazon CloudWatch Logs configuration settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-lambda-function.json b/server/schema/resources/aws-lambda-function.json index 23b95865..552afc9a 100644 --- a/server/schema/resources/aws-lambda-function.json +++ b/server/schema/resources/aws-lambda-function.json @@ -11,12 +11,38 @@ "tagProperty": "/properties/Tags", "cloudFormationSystemTags": true }, + "typeName": "AWS::Lambda::Function", + "readOnlyProperties": [ + "/properties/SnapStartResponse", + "/properties/SnapStartResponse/ApplyOn", + "/properties/SnapStartResponse/OptimizationStatus", + "/properties/Arn" + ], + "description": "The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.\n You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*", + "createOnlyProperties": [ + "/properties/FunctionName", + "/properties/PackageType", + "/properties/TenancyConfig" + ], + "primaryIdentifier": [ + "/properties/FunctionName" + ], + "conditionalCreateOnlyProperties": [ + "/properties/DurableConfig" + ], + "required": [ + "Code", + "Role" + ], "handlers": { "read": { "permissions": [ "lambda:GetFunction", + "kms:Decrypt", "lambda:GetFunctionCodeSigningConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionRecursionConfig", + "lambda:GetRuntimeManagementConfig", + "lambda:GetFunctionScalingConfig" ] }, "create": { @@ -31,6 +57,7 @@ "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticfilesystem:DescribeMountTargets", + "s3files:ListMountTargets", "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", @@ -42,7 +69,9 @@ "lambda:PutRuntimeManagementConfig", "lambda:TagResource", "lambda:PutFunctionRecursionConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionRecursionConfig", + "lambda:PutFunctionScalingConfig", + "lambda:PassCapacityProvider" ] }, "update": { @@ -61,6 +90,7 @@ "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticfilesystem:DescribeMountTargets", + "s3files:ListMountTargets", "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDataKey", @@ -71,7 +101,10 @@ "lambda:GetCodeSigningConfig", "lambda:GetFunctionCodeSigningConfig", "lambda:PutFunctionRecursionConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionRecursionConfig", + "lambda:PutFunctionScalingConfig", + "lambda:PublishVersion", + "lambda:PassCapacityProvider" ] }, "list": { @@ -87,14 +120,6 @@ ] } }, - "typeName": "AWS::Lambda::Function", - "readOnlyProperties": [ - "/properties/SnapStartResponse", - "/properties/SnapStartResponse/ApplyOn", - "/properties/SnapStartResponse/OptimizationStatus", - "/properties/Arn" - ], - "description": "The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.\n You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*", "writeOnlyProperties": [ "/properties/SnapStart", "/properties/SnapStart/ApplyOn", @@ -103,16 +128,10 @@ "/properties/Code/S3Key", "/properties/Code/S3ObjectVersion", "/properties/Code/ZipFile", - "/properties/Code/SourceKMSKeyArn" - ], - "createOnlyProperties": [ - "/properties/FunctionName", - "/properties/PackageType" + "/properties/Code/SourceKMSKeyArn", + "/properties/PublishToLatestPublished" ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/FunctionName" - ], "definitions": { "ImageConfig": { "description": "Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).", @@ -149,6 +168,60 @@ }, "markdownDescription": "Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "FunctionScalingConfig": { + "description": "Configuration that defines the scaling behavior for a Lambda Managed Instances function, including the minimum and maximum number of execution environments that can be provisioned.", + "additionalProperties": false, + "type": "object", + "properties": { + "MinExecutionEnvironments": { + "description": "The minimum number of execution environments to maintain for the function.", + "maximum": 15000, + "type": "integer", + "minimum": 0, + "markdownDescription": "The minimum number of execution environments to maintain for the function.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxExecutionEnvironments": { + "description": "The maximum number of execution environments that can be provisioned for the function.", + "maximum": 15000, + "type": "integer", + "minimum": 0, + "markdownDescription": "The maximum number of execution environments that can be provisioned for the function.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Configuration that defines the scaling behavior for a Lambda Managed Instances function, including the minimum and maximum number of execution environments that can be provisioned.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LambdaManagedInstancesCapacityProviderConfig": { + "description": "Configuration for Lambda-managed instances used by the capacity provider.", + "additionalProperties": false, + "type": "object", + "properties": { + "ExecutionEnvironmentMemoryGiBPerVCpu": { + "description": "The amount of memory in GiB allocated per vCPU for execution environments.", + "maximum": 8, + "type": "number", + "minimum": 2, + "markdownDescription": "The amount of memory in GiB allocated per vCPU for execution environments.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "CapacityProviderArn": { + "minLength": 1, + "description": "The Amazon Resource Name (ARN) of the capacity provider.", + "type": "string", + "maxLength": 140, + "markdownDescription": "The Amazon Resource Name (ARN) of the capacity provider.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 140 \nPattern: ^arn:aws[a-zA-Z-]*:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:capacity-provider:[a-zA-Z0-9-_]+$ \nUpdate requires: No interruption\n" + }, + "PerExecutionEnvironmentMaxConcurrency": { + "description": "The maximum number of concurrent executions that can run on each execution environment.", + "maximum": 1600, + "type": "integer", + "minimum": 1, + "markdownDescription": "The maximum number of concurrent executions that can run on each execution environment.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CapacityProviderArn" + ], + "markdownDescription": "Configuration for Lambda-managed instances used by the capacity provider.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TracingConfig": { "description": "The function's [](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html) tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.", "additionalProperties": false, @@ -214,6 +287,22 @@ }, "markdownDescription": "The [dead-letter queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-dlq) for failed asynchronous invocations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CapacityProviderConfig": { + "description": "Configuration for the capacity provider that manages compute resources for Lambda functions.", + "additionalProperties": false, + "type": "object", + "properties": { + "LambdaManagedInstancesCapacityProviderConfig": { + "description": "Configuration for Lambda-managed instances used by the capacity provider.", + "$ref": "#/definitions/LambdaManagedInstancesCapacityProviderConfig", + "markdownDescription": "Configuration for Lambda-managed instances used by the capacity provider.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LambdaManagedInstancesCapacityProviderConfig" + ], + "markdownDescription": "Configuration for the capacity provider that manages compute resources for Lambda functions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RuntimeManagementConfig": { "description": "Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html).", "additionalProperties": false, @@ -240,6 +329,32 @@ ], "markdownDescription": "Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DurableConfig": { + "description": "Configuration settings for [durable functions](https://docs.aws.amazon.com/lambda/latest/dg/durable-functions.html), including execution timeout and retention period for execution history.", + "additionalProperties": false, + "type": "object", + "properties": { + "ExecutionTimeout": { + "description": "The maximum time (in seconds) that a durable execution can run before timing out. This timeout applies to the entire durable execution, not individual function invocations.", + "maximum": 31622400, + "type": "integer", + "minimum": 1, + "markdownDescription": "The maximum time (in seconds) that a durable execution can run before timing out. This timeout applies to the entire durable execution, not individual function invocations.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "RetentionPeriodInDays": { + "default": 14, + "description": "The number of days to retain execution history after a durable execution completes. After this period, execution history is no longer available through the GetDurableExecutionHistory API.", + "maximum": 90, + "type": "integer", + "minimum": 1, + "markdownDescription": "The number of days to retain execution history after a durable execution completes. After this period, execution history is no longer available through the GetDurableExecutionHistory API.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ExecutionTimeout" + ], + "markdownDescription": "Configuration settings for [durable functions](https://docs.aws.amazon.com/lambda/latest/dg/durable-functions.html), including execution timeout and retention period for execution history.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "SnapStart": { "description": "The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting.", "additionalProperties": false, @@ -287,7 +402,7 @@ "markdownDescription": "The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" }, "Code": { - "description": "The [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.", + "description": "The [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that Node.js treats the file as a CommonJS module.\n Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.", "additionalProperties": false, "type": "object", "properties": { @@ -311,9 +426,9 @@ "markdownDescription": "An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nPattern: ^[0-9A-Za-z\\.\\-_]*(?Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.

", "markdownDescription": "

Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "DrmSettings": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "

Optionally specify one or more DRM settings for all of your manifest egress requests. When you include a DRM setting, note that you cannot use an identical DRM setting query parameter for this manifest's endpoint URL.

", + "markdownDescription": "

Optionally specify one or more DRM settings for all of your manifest egress requests. When you include a DRM setting, note that you cannot use an identical DRM setting query parameter for this manifest's endpoint URL.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, "Start": { "type": "string", "description": "

Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.

", @@ -641,6 +653,50 @@ "additionalProperties": false, "markdownDescription": "

Retrieve the low-latency HTTP live streaming (HLS) manifest configuration.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "MssManifestConfiguration": { + "type": "object", + "description": "

Configuration details for a Microsoft Smooth Streaming (MSS) manifest associated with an origin endpoint. This includes all the settings and properties that define how the MSS content is packaged and delivered.

", + "properties": { + "ManifestName": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "

The name of the MSS manifest. This name is appended to the origin endpoint URL to create the unique path for accessing this specific MSS manifest.

", + "markdownDescription": "

The name of the MSS manifest. This name is appended to the origin endpoint URL to create the unique path for accessing this specific MSS manifest.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestWindowSeconds": { + "type": "integer", + "description": "

The duration (in seconds) of the manifest window. This represents the total amount of content available in the manifest at any given time.

", + "markdownDescription": "

The duration (in seconds) of the manifest window. This represents the total amount of content available in the manifest at any given time.

\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ManifestLayout": { + "$ref": "#/definitions/MssManifestLayout" + } + }, + "required": [ + "ManifestName" + ], + "additionalProperties": false, + "markdownDescription": "

Configuration details for a Microsoft Smooth Streaming (MSS) manifest associated with an origin endpoint. This includes all the settings and properties that define how the MSS content is packaged and delivered.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IsmEncryptionMethod": { + "type": "string", + "enum": [ + "CENC" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CENC \nUpdate requires: No interruption\n" + }, + "MssManifestLayout": { + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: FULL | COMPACT \nUpdate requires: No interruption\n" + }, "PresetSpeke20Audio": { "type": "string", "enum": [ @@ -681,6 +737,9 @@ "minItems": 0, "description": "

The SCTE-35 message types that you want to be treated as ad markers in the output.

", "markdownDescription": "

The SCTE-35 message types that you want to be treated as ad markers in the output.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ScteInSegments": { + "$ref": "#/definitions/ScteInSegments" } }, "additionalProperties": false, @@ -723,6 +782,14 @@ "additionalProperties": false, "markdownDescription": "

The SCTE configuration.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ScteInSegments": { + "type": "string", + "enum": [ + "NONE", + "ALL" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | ALL \nUpdate requires: No interruption\n" + }, "Segment": { "type": "object", "description": "

The segment configuration, including the segment name, duration, and other configuration values.

", @@ -803,6 +870,13 @@ "minLength": 1, "description": "

The URL of the API Gateway proxy that you set up to talk to your key server. The API Gateway proxy must reside in the same AWS Region as MediaPackage and must start with https://.

The following example shows a URL: https://1wm2dx1f33.execute-api.us-west-2.amazonaws.com/SpekeSample/copyProtection

", "markdownDescription": "

The URL of the API Gateway proxy that you set up to talk to your key server. The API Gateway proxy must reside in the same AWS Region as MediaPackage and must start with https://.

The following example shows a URL: https://1wm2dx1f33.execute-api.us-west-2.amazonaws.com/SpekeSample/copyProtection

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "CertificateArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "description": "

The ARN for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint. For this feature to work, your DRM key provider must support content key encryption.

", + "markdownDescription": "

The ARN for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint. For this feature to work, your DRM key provider must support content key encryption.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:([^:\\n]+):acm:([^:\\n]+):([0-9]+):certificate/[a-zA-Z0-9-_]+$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -927,6 +1001,14 @@ "format": "date-time", "markdownDescription": "

The date and time the origin endpoint was modified.

\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "MssManifests": { + "type": "array", + "items": { + "$ref": "#/definitions/MssManifestConfiguration" + }, + "description": "

The Microsoft Smooth Streaming (MSS) manifest configurations associated with this origin endpoint.

", + "markdownDescription": "

The Microsoft Smooth Streaming (MSS) manifest configurations associated with this origin endpoint.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "OriginEndpointName": { "type": "string", "maxLength": 256, @@ -951,6 +1033,14 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "MssManifestUrls": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "HlsManifestUrls": { "type": "array", "items": { @@ -986,6 +1076,7 @@ "/properties/Arn", "/properties/CreatedAt", "/properties/DashManifestUrls", + "/properties/MssManifestUrls", "/properties/HlsManifestUrls", "/properties/LowLatencyHlsManifestUrls", "/properties/ModifiedAt", @@ -1005,7 +1096,8 @@ "permissions": [ "mediapackagev2:TagResource", "mediapackagev2:CreateOriginEndpoint", - "iam:PassRole" + "iam:PassRole", + "acm:DescribeCertificate" ] }, "read": { @@ -1019,7 +1111,8 @@ "mediapackagev2:UntagResource", "mediapackagev2:ListTagsForResource", "mediapackagev2:UpdateOriginEndpoint", - "iam:PassRole" + "iam:PassRole", + "acm:DescribeCertificate" ] }, "delete": { @@ -1095,6 +1188,14 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "MssManifestUrls": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "HlsManifestUrls": { "type": "array", "items": { diff --git a/server/schema/resources/aws-mediatailor-playbackconfiguration.json b/server/schema/resources/aws-mediatailor-playbackconfiguration.json index abbf4e49..dac2e805 100644 --- a/server/schema/resources/aws-mediatailor-playbackconfiguration.json +++ b/server/schema/resources/aws-mediatailor-playbackconfiguration.json @@ -112,6 +112,9 @@ "description": "The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.", "type": "string", "markdownDescription": "The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AdDecisionServerConfiguration": { + "$ref": "#/definitions/AdDecisionServerConfiguration" } }, "definitions": { @@ -402,11 +405,78 @@ } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdDecisionServerConfiguration": { + "description": "The configuration for the request to the specified Ad Decision Server URL.", + "type": "object", + "additionalProperties": false, + "properties": { + "HttpRequest": { + "$ref": "#/definitions/HttpRequest" + } + }, + "required": [ + "HttpRequest" + ], + "markdownDescription": "The configuration for the request to the specified Ad Decision Server URL.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HttpRequest": { + "description": "The configuration for the request to the Ad Decision Server URL.", + "type": "object", + "additionalProperties": false, + "properties": { + "HttpMethod": { + "description": "Supported HTTP Methods for the request to the Ad Decision Server URL.", + "type": "string", + "enum": [ + "GET", + "POST" + ], + "markdownDescription": "Supported HTTP Methods for the request to the Ad Decision Server URL.\n\n---\n\nRequired: No \nType: String \nAllowed Values: GET | POST \nUpdate requires: No interruption\n" + }, + "Body": { + "description": "The body of the request to the Ad Decision Server URL. The maximum length is 100,000 characters.", + "type": "string", + "markdownDescription": "The body of the request to the Ad Decision Server URL. The maximum length is 100,000 characters.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Headers": { + "$ref": "#/definitions/AdDecisionServerConfigurationHttpHeaders" + }, + "CompressRequest": { + "description": "The compression type of the request sent to the Ad Decision Server URL. Only the POST HTTP Method permits compression other than NONE.", + "type": "string", + "enum": [ + "NONE", + "GZIP" + ], + "markdownDescription": "The compression type of the request sent to the Ad Decision Server URL. Only the POST HTTP Method permits compression other than NONE.\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | GZIP \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The configuration for the request to the Ad Decision Server URL.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdDecisionServerConfigurationHttpHeaders": { + "description": "The headers in the request sent to the Ad Decision Server URL. The max length is 10,000 characters.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The headers in the request sent to the Ad Decision Server URL. The max length is 10,000 characters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "tagging": { "taggable": true, - "cloudFormationSystemTags": false + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "mediatailor:TagResource", + "mediatailor:UntagResource" + ] }, "additionalProperties": false, "required": [ @@ -434,7 +504,8 @@ "mediatailor:ConfigureLogsForPlaybackConfiguration", "iam:CreateServiceLinkedRole", "mediatailor:UntagResource", - "mediatailor:TagResource" + "mediatailor:TagResource", + "mediatailor:GetPlaybackConfiguration" ] }, "read": { @@ -448,12 +519,14 @@ "mediatailor:ConfigureLogsForPlaybackConfiguration", "iam:CreateServiceLinkedRole", "mediatailor:UntagResource", - "mediatailor:TagResource" + "mediatailor:TagResource", + "mediatailor:GetPlaybackConfiguration" ] }, "delete": { "permissions": [ - "mediatailor:DeletePlaybackConfiguration" + "mediatailor:DeletePlaybackConfiguration", + "mediatailor:GetPlaybackConfiguration" ] }, "list": { diff --git a/server/schema/resources/aws-mpa-approvalteam.json b/server/schema/resources/aws-mpa-approvalteam.json index b4901d2f..3ce51a2e 100644 --- a/server/schema/resources/aws-mpa-approvalteam.json +++ b/server/schema/resources/aws-mpa-approvalteam.json @@ -183,7 +183,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "mpa:TagResource", diff --git a/server/schema/resources/aws-mpa-identitysource.json b/server/schema/resources/aws-mpa-identitysource.json index 13eaad14..28c780b3 100644 --- a/server/schema/resources/aws-mpa-identitysource.json +++ b/server/schema/resources/aws-mpa-identitysource.json @@ -111,7 +111,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "mpa:TagResource", diff --git a/server/schema/resources/aws-msk-cluster.json b/server/schema/resources/aws-msk-cluster.json index ebef303c..009537a9 100644 --- a/server/schema/resources/aws-msk-cluster.json +++ b/server/schema/resources/aws-msk-cluster.json @@ -47,7 +47,7 @@ "CurrentVersion": { "description": "The current version of the MSK cluster", "type": "string", - "markdownDescription": "The current version of the MSK cluster\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The current version of the MSK cluster\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "ClientAuthentication": { "$ref": "#/definitions/ClientAuthentication" @@ -79,6 +79,9 @@ "TIERED" ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: LOCAL | TIERED \nMinimum Length: 5 \nMaximum Length: 6 \nUpdate requires: No interruption\n" + }, + "Rebalancing": { + "$ref": "#/definitions/Rebalancing" } }, "definitions": { @@ -263,6 +266,14 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "NetworkType": { + "type": "string", + "enum": [ + "IPV4", + "DUAL" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUAL \nUpdate requires: No interruption\n" + }, "ConfigurationInfo": { "type": "object", "additionalProperties": false, @@ -331,6 +342,24 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" }, + "Rebalancing": { + "type": "object", + "additionalProperties": false, + "properties": { + "Status": { + "type": "string", + "enum": [ + "PAUSED", + "ACTIVE" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: PAUSED | ACTIVE \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Status" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "EncryptionAtRest": { "type": "object", "additionalProperties": false, @@ -378,6 +407,9 @@ }, "VpcConnectivity": { "$ref": "#/definitions/VpcConnectivity" + }, + "NetworkType": { + "$ref": "#/definitions/NetworkType" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -594,7 +626,8 @@ "/properties/Arn" ], "readOnlyProperties": [ - "/properties/Arn" + "/properties/Arn", + "/properties/CurrentVersion" ], "tagging": { "taggable": true, @@ -648,13 +681,16 @@ "kafka:UpdateStorage", "kafka:UpdateSecurity", "kafka:UpdateConnectivity", + "kafka:UpdateRebalancing", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:TagResource", "kafka:UntagResource", + "ec2:CreateTags", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", + "ec2:DescribeRouteTables", "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", "iam:PutRolePolicy", @@ -696,6 +732,11 @@ "Arn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CurrentVersion": { + "description": "The current version of the MSK cluster", + "type": "string", + "markdownDescription": "The current version of the MSK cluster\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-msk-replicator.json b/server/schema/resources/aws-msk-replicator.json index 7fccf730..a5fa2510 100644 --- a/server/schema/resources/aws-msk-replicator.json +++ b/server/schema/resources/aws-msk-replicator.json @@ -77,6 +77,11 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "A collection of tags associated with a resource\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LogDelivery": { + "description": "Configuration for log delivery for the replicator.", + "$ref": "#/definitions/LogDelivery", + "markdownDescription": "Configuration for log delivery for the replicator.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "definitions": { @@ -249,6 +254,11 @@ "description": "Whether to periodically check for new consumer groups.", "type": "boolean", "markdownDescription": "Whether to periodically check for new consumer groups.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ConsumerGroupOffsetSyncMode": { + "description": "The consumer group offset synchronization mode.", + "$ref": "#/definitions/ConsumerGroupOffsetSyncMode", + "markdownDescription": "The consumer group offset synchronization mode.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -256,6 +266,15 @@ ], "markdownDescription": "Configuration relating to consumer group replication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ConsumerGroupOffsetSyncMode": { + "description": "The consumer group offset synchronization mode.", + "type": "string", + "enum": [ + "LEGACY", + "ENHANCED" + ], + "markdownDescription": "The consumer group offset synchronization mode.\n\n---\n\nRequired: No \nType: String \nAllowed Values: LEGACY | ENHANCED \nUpdate requires: No interruption\n" + }, "ReplicationInfo": { "description": "Specifies configuration for replication between a source and target Kafka cluster.", "type": "object", @@ -264,12 +283,22 @@ "SourceKafkaClusterArn": { "description": "Amazon Resource Name of the source Kafka cluster.", "type": "string", - "markdownDescription": "Amazon Resource Name of the source Kafka cluster.\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:(aws|aws-us-gov|aws-cn):kafka:.* \nUpdate requires: No interruption\n" + "markdownDescription": "Amazon Resource Name of the source Kafka cluster.\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws|aws-us-gov|aws-cn):kafka:.* \nUpdate requires: No interruption\n" + }, + "SourceKafkaClusterId": { + "description": "The ID of the source Kafka cluster.", + "type": "string", + "markdownDescription": "The ID of the source Kafka cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TargetKafkaClusterArn": { "description": "Amazon Resource Name of the target Kafka cluster.", "type": "string", - "markdownDescription": "Amazon Resource Name of the target Kafka cluster.\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:(aws|aws-us-gov|aws-cn):kafka:.* \nUpdate requires: No interruption\n" + "markdownDescription": "Amazon Resource Name of the target Kafka cluster.\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws|aws-us-gov|aws-cn):kafka:.* \nUpdate requires: No interruption\n" + }, + "TargetKafkaClusterId": { + "description": "The ID of the target Kafka cluster.", + "type": "string", + "markdownDescription": "The ID of the target Kafka cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TargetCompressionType": { "description": "The type of compression to use writing records to target Kafka cluster.", @@ -295,8 +324,6 @@ } }, "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", "TopicReplication", "ConsumerGroupReplication", "TargetCompressionType" @@ -362,21 +389,237 @@ "additionalProperties": false, "properties": { "AmazonMskCluster": { - "description": "Details of an Amazon MSK cluster. Exactly one of AmazonMskCluster is required.", + "description": "Details of an Amazon MSK cluster.", "$ref": "#/definitions/AmazonMskCluster", - "markdownDescription": "Details of an Amazon MSK cluster. Exactly one of AmazonMskCluster is required.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Details of an Amazon MSK cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ApacheKafkaCluster": { + "description": "Details of an Apache Kafka cluster.", + "$ref": "#/definitions/ApacheKafkaCluster", + "markdownDescription": "Details of an Apache Kafka cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "VpcConfig": { "description": "Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.", "$ref": "#/definitions/KafkaClusterClientVpcConfig", - "markdownDescription": "Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ClientAuthentication": { + "description": "Details of the client authentication used by the Apache Kafka cluster.", + "$ref": "#/definitions/KafkaClusterClientAuthentication", + "markdownDescription": "Details of the client authentication used by the Apache Kafka cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "EncryptionInTransit": { + "description": "Details of encryption in transit to the Apache Kafka cluster.", + "$ref": "#/definitions/KafkaClusterEncryptionInTransit", + "markdownDescription": "Details of encryption in transit to the Apache Kafka cluster.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [], + "markdownDescription": "Details of a Kafka cluster for replication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApacheKafkaCluster": { + "description": "Details of an Apache Kafka cluster.", + "type": "object", + "additionalProperties": false, + "properties": { + "ApacheKafkaClusterId": { + "description": "The ID of the Apache Kafka cluster.", + "type": "string", + "markdownDescription": "The ID of the Apache Kafka cluster.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "BootstrapBrokerString": { + "description": "The bootstrap broker string of the Apache Kafka cluster.", + "type": "string", + "markdownDescription": "The bootstrap broker string of the Apache Kafka cluster.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "AmazonMskCluster", - "VpcConfig" + "ApacheKafkaClusterId", + "BootstrapBrokerString" ], - "markdownDescription": "Details of a Kafka cluster for replication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Details of an Apache Kafka cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KafkaClusterClientAuthentication": { + "description": "Details of the client authentication used by the Apache Kafka cluster.", + "type": "object", + "additionalProperties": false, + "properties": { + "SaslScram": { + "description": "Details for SASL/SCRAM client authentication.", + "$ref": "#/definitions/KafkaClusterSaslScramAuthentication", + "markdownDescription": "Details for SASL/SCRAM client authentication.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SaslScram" + ], + "markdownDescription": "Details of the client authentication used by the Apache Kafka cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KafkaClusterSaslScramAuthentication": { + "description": "Details for SASL/SCRAM client authentication.", + "type": "object", + "additionalProperties": false, + "properties": { + "Mechanism": { + "description": "The SASL/SCRAM authentication mechanism.", + "$ref": "#/definitions/KafkaClusterSaslScramMechanism", + "markdownDescription": "The SASL/SCRAM authentication mechanism.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the Secrets Manager secret.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the Secrets Manager secret.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mechanism", + "SecretArn" + ], + "markdownDescription": "Details for SASL/SCRAM client authentication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KafkaClusterSaslScramMechanism": { + "description": "The SASL/SCRAM authentication mechanism.", + "type": "string", + "enum": [ + "SHA256", + "SHA512" + ], + "markdownDescription": "The SASL/SCRAM authentication mechanism.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SHA256 | SHA512 \nUpdate requires: No interruption\n" + }, + "KafkaClusterEncryptionInTransit": { + "description": "Details of encryption in transit to the Apache Kafka cluster.", + "type": "object", + "additionalProperties": false, + "properties": { + "EncryptionType": { + "description": "The type of encryption in transit to the Apache Kafka cluster.", + "$ref": "#/definitions/KafkaClusterEncryptionInTransitType", + "markdownDescription": "The type of encryption in transit to the Apache Kafka cluster.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "RootCaCertificate": { + "description": "The root CA certificate.", + "type": "string", + "markdownDescription": "The root CA certificate.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EncryptionType" + ], + "markdownDescription": "Details of encryption in transit to the Apache Kafka cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KafkaClusterEncryptionInTransitType": { + "description": "The type of encryption in transit to the Apache Kafka cluster.", + "type": "string", + "enum": [ + "TLS" + ], + "markdownDescription": "The type of encryption in transit to the Apache Kafka cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: TLS \nUpdate requires: No interruption\n" + }, + "LogDelivery": { + "description": "Configuration for log delivery for the replicator.", + "type": "object", + "additionalProperties": false, + "properties": { + "ReplicatorLogDelivery": { + "description": "The replicator logs configuration.", + "$ref": "#/definitions/ReplicatorLogDelivery", + "markdownDescription": "The replicator logs configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [], + "markdownDescription": "Configuration for log delivery for the replicator.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ReplicatorLogDelivery": { + "description": "Details of the log delivery for the replicator.", + "type": "object", + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "description": "Details of the CloudWatch Logs destination for replicator logs.", + "$ref": "#/definitions/CloudWatchLogs", + "markdownDescription": "Details of the CloudWatch Logs destination for replicator logs.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Firehose": { + "description": "Details of the Kinesis Data Firehose delivery stream that is the destination for replicator logs.", + "$ref": "#/definitions/Firehose", + "markdownDescription": "Details of the Kinesis Data Firehose delivery stream that is the destination for replicator logs.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "S3": { + "description": "Details of the Amazon S3 destination for replicator logs.", + "$ref": "#/definitions/S3", + "markdownDescription": "Details of the Amazon S3 destination for replicator logs.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [], + "markdownDescription": "Details of the log delivery for the replicator.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudWatchLogs": { + "description": "Details about delivering logs to CloudWatch Logs.", + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "Whether log delivery to CloudWatch Logs is enabled.", + "type": "boolean", + "markdownDescription": "Whether log delivery to CloudWatch Logs is enabled.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "LogGroup": { + "description": "The CloudWatch log group that is the destination for log delivery.", + "type": "string", + "markdownDescription": "The CloudWatch log group that is the destination for log delivery.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Enabled" + ], + "markdownDescription": "Details about delivering logs to CloudWatch Logs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Firehose": { + "description": "Details about delivering logs to Firehose.", + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "Whether log delivery to Firehose is enabled.", + "type": "boolean", + "markdownDescription": "Whether log delivery to Firehose is enabled.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "DeliveryStream": { + "description": "The Firehose delivery stream that is the destination for log delivery.", + "type": "string", + "markdownDescription": "The Firehose delivery stream that is the destination for log delivery.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Enabled" + ], + "markdownDescription": "Details about delivering logs to Firehose.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3": { + "description": "Details about delivering logs to S3.", + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "Whether log delivery to S3 is enabled.", + "type": "boolean", + "markdownDescription": "Whether log delivery to S3 is enabled.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Bucket": { + "description": "The S3 bucket that is the destination for log delivery.", + "type": "string", + "markdownDescription": "The S3 bucket that is the destination for log delivery.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Prefix": { + "description": "The S3 prefix that is the destination for log delivery.", + "type": "string", + "markdownDescription": "The S3 prefix that is the destination for log delivery.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Enabled" + ], + "markdownDescription": "Details about delivering logs to S3.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ @@ -403,8 +646,11 @@ "/properties/KafkaClusters", "/properties/ServiceExecutionRoleArn", "/properties/ReplicationInfoList/*/SourceKafkaClusterArn", + "/properties/ReplicationInfoList/*/SourceKafkaClusterId", "/properties/ReplicationInfoList/*/TargetKafkaClusterArn", + "/properties/ReplicationInfoList/*/TargetKafkaClusterId", "/properties/ReplicationInfoList/*/TargetCompressionType", + "/properties/ReplicationInfoList/*/ConsumerGroupReplication/ConsumerGroupOffsetSyncMode", "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition", "/properties/ReplicationInfoList/*/TopicReplication/TopicNameConfiguration" ], diff --git a/server/schema/resources/aws-msk-topic.json b/server/schema/resources/aws-msk-topic.json new file mode 100644 index 00000000..6eaffefb --- /dev/null +++ b/server/schema/resources/aws-msk-topic.json @@ -0,0 +1,121 @@ +{ + "typeName": "AWS::MSK::Topic", + "description": "Resource Type definition for AWS::MSK::Topic", + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the MSK cluster", + "markdownDescription": "The Amazon Resource Name (ARN) of the MSK cluster\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "TopicName": { + "type": "string", + "description": "The name of the topic", + "markdownDescription": "The name of the topic\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "TopicArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the topic", + "markdownDescription": "The Amazon Resource Name (ARN) of the topic\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PartitionCount": { + "type": "integer", + "description": "The number of partitions for the topic", + "minimum": 1, + "markdownDescription": "The number of partitions for the topic\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "ReplicationFactor": { + "type": "integer", + "description": "The replication factor for the topic", + "minimum": 1, + "markdownDescription": "The replication factor for the topic\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" + }, + "Configs": { + "type": "string", + "description": "Base64 encoded configuration properties of the topic", + "markdownDescription": "Base64 encoded configuration properties of the topic\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClusterArn", + "TopicName", + "PartitionCount", + "ReplicationFactor" + ], + "createOnlyProperties": [ + "/properties/ClusterArn", + "/properties/TopicName", + "/properties/ReplicationFactor" + ], + "primaryIdentifier": [ + "/properties/TopicArn" + ], + "readOnlyProperties": [ + "/properties/TopicArn" + ], + "writeOnlyProperties": [ + "/properties/Configs" + ], + "additionalIdentifiers": [ + [ + "/properties/ClusterArn", + "/properties/TopicName" + ] + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "handlers": { + "create": { + "permissions": [ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + "kafka-cluster:DescribeTopicDynamicConfiguration", + "kafka-cluster:CreateTopic" + ], + "timeoutInMinutes": 5 + }, + "read": { + "permissions": [ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + "kafka-cluster:DescribeTopicDynamicConfiguration" + ] + }, + "update": { + "permissions": [ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + "kafka-cluster:AlterTopic", + "kafka-cluster:AlterTopicDynamicConfiguration" + ], + "timeoutInMinutes": 5 + }, + "delete": { + "permissions": [ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + "kafka-cluster:DescribeTopicDynamicConfiguration", + "kafka-cluster:DeleteTopic" + ], + "timeoutInMinutes": 5 + }, + "list": { + "permissions": [ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic" + ] + } + }, + "attributes": { + "TopicArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the topic", + "markdownDescription": "The Amazon Resource Name (ARN) of the topic\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-mwaaserverless-workflow.json b/server/schema/resources/aws-mwaaserverless-workflow.json new file mode 100644 index 00000000..7265e00c --- /dev/null +++ b/server/schema/resources/aws-mwaaserverless-workflow.json @@ -0,0 +1,324 @@ +{ + "description": "Resource Type definition for AWS::MWAAServerless::Workflow resource", + "typeName": "AWS::MWAAServerless::Workflow", + "additionalProperties": false, + "definitions": { + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(?:-(?:cn|us-gov|iso|iso-b|iso-e|iso-f))?:airflow-serverless:([a-z]{2}-[a-z]+-[0-9]{1}):([0-9]{12}):workflow/([a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,254}-[a-zA-z0-9]{10})$ \nUpdate requires: No interruption\n" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(?:-(?:cn|us-gov|iso|iso-b|iso-e|iso-f))?:iam::[0-9]{12}:role(/[a-zA-Z0-9+=,.@_-]{1,512})*?/[a-zA-Z0-9+=,.@_-]{1,64}$ \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*$ \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^.+$ \nUpdate requires: No interruption\n" + }, + "S3Location": { + "type": "object", + "required": [ + "Bucket", + "ObjectKey" + ], + "properties": { + "Bucket": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "ObjectKey": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "VersionId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EncryptionConfiguration": { + "type": "object", + "required": [ + "Type" + ], + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS_MANAGED_KEY", + "CUSTOMER_MANAGED_KEY" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AWS_MANAGED_KEY | CUSTOMER_MANAGED_KEY \nUpdate requires: No interruption\n" + }, + "KmsKeyId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LoggingConfiguration": { + "type": "object", + "required": [ + "LogGroupName" + ], + "properties": { + "LogGroupName": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkConfiguration": { + "type": "object", + "properties": { + "SecurityGroupIds": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkflowVersion": { + "type": "string", + "maxLength": 32, + "minLength": 32, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 32 \nMaximum Length: 32 \nPattern: ^[a-z0-9]{32}$ \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "object", + "description": "A map of key-value pairs to be applied as tags", + "patternProperties": { + "^[\\w\\d+\\-\\.\\:/@]{1,128}$": { + "type": "string", + "description": "Tag value", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "Tag value\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "maxProperties": 50, + "additionalProperties": false, + "markdownDescription": "A map of key-value pairs to be applied as tags\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TriggerMode": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "ScheduleConfiguration": { + "type": "object", + "properties": { + "CronExpression": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkflowStatus": { + "type": "string", + "enum": [ + "READY", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: READY | DELETING \nUpdate requires: No interruption\n" + }, + "Timestamp": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "properties": { + "WorkflowArn": { + "$ref": "#/definitions/Arn" + }, + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "RoleArn": { + "$ref": "#/definitions/RoleArn" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/LoggingConfiguration" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "WorkflowVersion": { + "$ref": "#/definitions/WorkflowVersion" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "TriggerMode": { + "$ref": "#/definitions/TriggerMode" + }, + "ScheduleConfiguration": { + "$ref": "#/definitions/ScheduleConfiguration" + }, + "WorkflowStatus": { + "$ref": "#/definitions/WorkflowStatus" + }, + "CreatedAt": { + "$ref": "#/definitions/Timestamp" + }, + "ModifiedAt": { + "$ref": "#/definitions/Timestamp" + } + }, + "primaryIdentifier": [ + "/properties/WorkflowArn" + ], + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "readOnlyProperties": [ + "/properties/WorkflowArn", + "/properties/WorkflowVersion", + "/properties/CreatedAt", + "/properties/ModifiedAt", + "/properties/WorkflowStatus", + "/properties/ScheduleConfiguration" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/EncryptionConfiguration" + ], + "required": [ + "DefinitionS3Location", + "RoleArn" + ], + "handlers": { + "create": { + "permissions": [ + "s3:GetObject", + "s3:GetObjectVersion", + "logs:CreateLogGroup", + "logs:DescribeLogGroups", + "iam:GetRole", + "iam:PassRole", + "airflow-serverless:CreateWorkflow", + "airflow-serverless:GetWorkflow", + "airflow-serverless:TagResource", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:GenerateDataKey" + ] + }, + "read": { + "permissions": [ + "airflow-serverless:GetWorkflow", + "airflow-serverless:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "s3:GetObject", + "s3:GetObjectVersion", + "logs:CreateLogGroup", + "logs:DescribeLogGroups", + "iam:GetRole", + "iam:PassRole", + "airflow-serverless:UpdateWorkflow", + "airflow-serverless:TagResource", + "airflow-serverless:UntagResource", + "kms:CreateGrant", + "kms:GenerateDataKey" + ] + }, + "delete": { + "permissions": [ + "airflow-serverless:GetWorkflow", + "airflow-serverless:DeleteWorkflow", + "airflow-serverless:UntagResource" + ] + }, + "list": { + "permissions": [ + "airflow-serverless:ListWorkflows", + "airflow-serverless:ListTagsForResource" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "airflow-serverless:TagResource", + "airflow-serverless:UntagResource", + "airflow-serverless:ListTagsForResource" + ] + }, + "attributes": { + "WorkflowArn": { + "$ref": "#/definitions/Arn" + }, + "WorkflowVersion": { + "$ref": "#/definitions/WorkflowVersion" + }, + "ScheduleConfiguration": { + "$ref": "#/definitions/ScheduleConfiguration" + }, + "WorkflowStatus": { + "$ref": "#/definitions/WorkflowStatus" + }, + "CreatedAt": { + "$ref": "#/definitions/Timestamp" + }, + "ModifiedAt": { + "$ref": "#/definitions/Timestamp" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-neptune-dbinstance.json b/server/schema/resources/aws-neptune-dbinstance.json index 4be24390..47b49a1b 100644 --- a/server/schema/resources/aws-neptune-dbinstance.json +++ b/server/schema/resources/aws-neptune-dbinstance.json @@ -37,6 +37,11 @@ "description": "Indicates that minor version patches are applied automatically.\n\nWhen updating this property, some interruptions may occur.", "markdownDescription": "Indicates that minor version patches are applied automatically.\n\nWhen updating this property, some interruptions may occur.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Some interruptions\n" }, + "PubliclyAccessible": { + "type": "boolean", + "description": "Indicates that public accessibility is enabled. This should be enabled in combination with IAM Auth enabled on the DBCluster", + "markdownDescription": "Indicates that public accessibility is enabled. This should be enabled in combination with IAM Auth enabled on the DBCluster\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "AvailabilityZone": { "type": "string", "description": "Specifies the name of the Availability Zone the DB instance is located in.", diff --git a/server/schema/resources/aws-neptune-eventsubscription.json b/server/schema/resources/aws-neptune-eventsubscription.json index 78849b5f..a1c590e9 100644 --- a/server/schema/resources/aws-neptune-eventsubscription.json +++ b/server/schema/resources/aws-neptune-eventsubscription.json @@ -1,56 +1,147 @@ { "typeName": "AWS::Neptune::EventSubscription", "description": "Resource Type definition for AWS::Neptune::EventSubscription", - "additionalProperties": false, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, "properties": { + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Enabled": { + "description": "A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.", "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "default": true, + "markdownDescription": "A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "EventCategories": { + "description": "A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon Neptune User Guide or by using the DescribeEventCategories action.", "type": "array", - "uniqueItems": false, + "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon Neptune User Guide or by using the DescribeEventCategories action.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SnsTopicArn": { + "description": "The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "SubscriptionName": { + "description": "The name of the subscription.", + "type": "string", + "maxLength": 255, + "markdownDescription": "The name of the subscription.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: Replacement\n" }, "SourceIds": { + "description": "The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.", "type": "array", - "uniqueItems": false, + "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SourceType": { + "description": "The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, + "propertyTransform": { + "/properties/SubscriptionName": "$lowercase(SubscriptionName)" + }, + "required": [ + "SnsTopicArn" + ], "createOnlyProperties": [ - "/properties/SnsTopicArn" + "/properties/SnsTopicArn", + "/properties/SubscriptionName" ], "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" + "/properties/SubscriptionName" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rds:AddTagsToResource", + "rds:ListTagsForResource", + "rds:RemoveTagsFromResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "rds:CreateEventSubscription", + "rds:ListTagsForResource", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] + }, + "read": { + "permissions": [ + "rds:DescribeEventSubscriptions", + "rds:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rds:ModifyEventSubscription", + "rds:AddSourceIdentifierToSubscription", + "rds:RemoveSourceIdentifierFromSubscription", + "rds:DescribeEventSubscriptions", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteEventSubscription", + "rds:RemoveTagsFromResource" + ] + }, + "list": { + "permissions": [ + "rds:DescribeEventSubscriptions", + "rds:ListTagsForResource" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-neptunegraph-graph.json b/server/schema/resources/aws-neptunegraph-graph.json index a66b35e7..28f4de72 100644 --- a/server/schema/resources/aws-neptunegraph-graph.json +++ b/server/schema/resources/aws-neptunegraph-graph.json @@ -1,173 +1,65 @@ { - "typeName": "AWS::NeptuneGraph::Graph", - "description": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph.", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", - "properties": { - "DeletionProtection": { - "description": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.", - "type": "boolean", - "markdownDescription": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "GraphName": { - "description": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", - "type": "string", - "minLength": 1, - "maxLength": 63, - "markdownDescription": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$ \nUpdate requires: Replacement\n" - }, - "ProvisionedMemory": { - "description": "Memory for the Graph.", - "type": "integer", - "markdownDescription": "Memory for the Graph.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Some interruptions\n" - }, - "PublicConnectivity": { - "description": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.", - "type": "boolean", - "markdownDescription": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "ReplicaCount": { - "description": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.", - "type": "integer", - "markdownDescription": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" - }, - "Tags": { - "type": "array", - "maxItems": 50, - "uniqueItems": true, - "insertionOrder": false, - "description": "The tags associated with this graph.", - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "The tags associated with this graph.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "VectorSearchConfiguration": { - "description": "Vector Search Configuration", - "$ref": "#/definitions/VectorSearchConfiguration", - "markdownDescription": "Vector Search Configuration\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" - }, - "Endpoint": { - "description": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`", - "type": "string", - "markdownDescription": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "GraphArn": { - "description": "Graph resource ARN", - "type": "string", - "markdownDescription": "Graph resource ARN\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "GraphId": { - "description": "The auto-generated id assigned by the service.", - "type": "string", - "markdownDescription": "The auto-generated id assigned by the service.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - } - }, - "definitions": { - "Tag": { - "description": "A key-value pair to associate with a resource.", - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "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 -. ", - "minLength": 1, - "maxLength": 128, - "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, - "Value": { - "type": "string", - "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 -. ", - "minLength": 0, - "maxLength": 256, - "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Key" - ], - "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "VectorSearchConfiguration": { - "description": "The vector search configuration.", - "type": "object", - "additionalProperties": false, - "properties": { - "VectorSearchDimension": { - "type": "integer", - "description": "The vector search dimension", - "markdownDescription": "The vector search dimension\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "required": [ - "VectorSearchDimension" - ], - "markdownDescription": "The vector search configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "additionalProperties": false, - "required": [ - "ProvisionedMemory" - ], - "propertyTransform": { - "/properties/GraphId": "$lowercase(GraphId)", - "/properties/GraphName": "$lowercase(GraphName)" + "tagging": { + "permissions": [ + "neptune-graph:TagResource", + "neptune-graph:ListTagsForResource", + "neptune-graph:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false }, + "typeName": "AWS::NeptuneGraph::Graph", "readOnlyProperties": [ "/properties/GraphArn", "/properties/GraphId", "/properties/Endpoint" ], + "description": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph.", "createOnlyProperties": [ "/properties/GraphName", "/properties/ReplicaCount", - "/properties/VectorSearchConfiguration" - ], - "conditionalCreateOnlyProperties": [ - "/properties/ProvisionedMemory" + "/properties/VectorSearchConfiguration", + "/properties/KmsKeyIdentifier" ], "primaryIdentifier": [ "/properties/GraphId" ], - "additionalIdentifiers": [ - [ - "/properties/GraphName" - ] + "required": [ + "ProvisionedMemory" ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags", - "permissions": [ - "neptune-graph:TagResource", - "neptune-graph:ListTagsForResource", - "neptune-graph:UntagResource" - ] + "conditionalCreateOnlyProperties": [ + "/properties/ProvisionedMemory" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "propertyTransform": { + "/properties/GraphName": "$lowercase(GraphName)", + "/properties/GraphId": "$lowercase(GraphId)" }, "handlers": { - "create": { + "read": { "permissions": [ - "iam:PassRole", - "neptune-graph:CreateGraph", "neptune-graph:GetGraph", "neptune-graph:ListTagsForResource", - "neptune-graph:TagResource", "kms:DescribeKey", "kms:CreateGrant", - "kms:Decrypt", - "iam:CreateServiceLinkedRole" + "kms:Decrypt" ], "timeoutInMinutes": 2160 }, - "read": { + "create": { "permissions": [ + "iam:PassRole", + "neptune-graph:CreateGraph", "neptune-graph:GetGraph", "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", "kms:DescribeKey", "kms:CreateGrant", - "kms:Decrypt" + "kms:Decrypt", + "iam:CreateServiceLinkedRole" ], "timeoutInMinutes": 2160 }, @@ -185,23 +77,23 @@ ], "timeoutInMinutes": 2160 }, - "delete": { + "list": { "permissions": [ - "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", + "neptune-graph:ListGraphs", "neptune-graph:ListTagsForResource", - "neptune-graph:UntagResource", "kms:DescribeKey", "kms:CreateGrant", "kms:Decrypt" ], "timeoutInMinutes": 2160 }, - "list": { + "delete": { "permissions": [ + "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", - "neptune-graph:ListGraphs", "neptune-graph:ListTagsForResource", + "neptune-graph:UntagResource", "kms:DescribeKey", "kms:CreateGrant", "kms:Decrypt" @@ -209,6 +101,122 @@ "timeoutInMinutes": 2160 } }, + "additionalIdentifiers": [ + [ + "/properties/GraphName" + ] + ], + "additionalProperties": false, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -. ", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -. ", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VectorSearchConfiguration": { + "description": "The vector search configuration.", + "additionalProperties": false, + "type": "object", + "properties": { + "VectorSearchDimension": { + "description": "The vector search dimension", + "type": "integer", + "markdownDescription": "The vector search dimension\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "VectorSearchDimension" + ], + "markdownDescription": "The vector search configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "PublicConnectivity": { + "description": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.", + "type": "boolean", + "markdownDescription": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "KmsKeyIdentifier": { + "minLength": 1, + "description": "The ARN of the KMS key used to encrypt data in the Neptune Analytics graph. If not specified, the graph is encrypted with an AWS managed key.", + "type": "string", + "maxLength": 1024, + "markdownDescription": "The ARN of the KMS key used to encrypt data in the Neptune Analytics graph. If not specified, the graph is encrypted with an AWS managed key.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36} \nUpdate requires: Replacement\n" + }, + "GraphName": { + "minLength": 1, + "description": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", + "type": "string", + "maxLength": 63, + "markdownDescription": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$ \nUpdate requires: Replacement\n" + }, + "Endpoint": { + "description": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`", + "type": "string", + "markdownDescription": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GraphArn": { + "description": "Graph resource ARN", + "type": "string", + "markdownDescription": "Graph resource ARN\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReplicaCount": { + "description": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.", + "type": "integer", + "markdownDescription": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "GraphId": { + "description": "The auto-generated id assigned by the service.", + "type": "string", + "markdownDescription": "The auto-generated id assigned by the service.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ProvisionedMemory": { + "description": "Memory for the Graph.", + "type": "integer", + "markdownDescription": "Memory for the Graph.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Some interruptions\n" + }, + "DeletionProtection": { + "description": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.", + "type": "boolean", + "markdownDescription": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "VectorSearchConfiguration": { + "description": "Vector Search Configuration", + "$ref": "#/definitions/VectorSearchConfiguration", + "markdownDescription": "Vector Search Configuration\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "Tags": { + "maxItems": 50, + "uniqueItems": true, + "description": "The tags associated with this graph.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with this graph.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, "attributes": { "Endpoint": { "description": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`", diff --git a/server/schema/resources/aws-neptunegraph-graphsnapshot.json b/server/schema/resources/aws-neptunegraph-graphsnapshot.json new file mode 100644 index 00000000..4c823675 --- /dev/null +++ b/server/schema/resources/aws-neptunegraph-graphsnapshot.json @@ -0,0 +1,202 @@ +{ + "typeName": "AWS::NeptuneGraph::GraphSnapshot", + "description": "Resource Type definition for AWS::NeptuneGraph::GraphSnapshot", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Id": { + "type": "string", + "description": "The unique identifier of the graph snapshot.", + "markdownDescription": "The unique identifier of the graph snapshot.\n\n---\n\nRequired: No \nType: String \nPattern: ^gs-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "description": "The ARN of the graph snapshot.", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "The ARN of the graph snapshot.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GraphIdentifier": { + "type": "string", + "description": "The unique identifier of the Neptune Analytics graph to create the snapshot from.", + "markdownDescription": "The unique identifier of the Neptune Analytics graph to create the snapshot from.\n\n---\n\nRequired: No \nType: String \nPattern: ^g-[a-z0-9]{10}$ \nUpdate requires: Replacement\n" + }, + "SnapshotName": { + "type": "string", + "description": "The snapshot name.", + "minLength": 1, + "maxLength": 63, + "markdownDescription": "The snapshot name.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^(?!gs-)[a-z][a-z0-9]*(-[a-z0-9]+)*$ \nUpdate requires: Replacement\n" + }, + "SnapshotCreateTime": { + "type": "string", + "description": "The time when the snapshot was created.", + "format": "date-time", + "markdownDescription": "The time when the snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "description": "The current status of the graph snapshot.", + "enum": [ + "CREATING", + "AVAILABLE", + "DELETING", + "FAILED" + ], + "markdownDescription": "The current status of the graph snapshot.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | AVAILABLE | DELETING | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "KmsKeyIdentifier": { + "type": "string", + "description": "The ID of the KMS key used to encrypt and decrypt the snapshot.", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The ID of the KMS key used to encrypt and decrypt the snapshot.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "An array of key-value pairs to apply to this resource.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "SnapshotName" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/SnapshotCreateTime", + "/properties/Status", + "/properties/KmsKeyIdentifier" + ], + "createOnlyProperties": [ + "/properties/SnapshotName", + "/properties/GraphIdentifier" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "neptune-graph:TagResource", + "neptune-graph:UntagResource", + "neptune-graph:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "neptune-graph:CreateGraphSnapshot", + "neptune-graph:GetGraphSnapshot", + "neptune-graph:TagResource", + "neptune-graph:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "neptune-graph:GetGraphSnapshot", + "neptune-graph:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "neptune-graph:GetGraphSnapshot", + "neptune-graph:TagResource", + "neptune-graph:UntagResource", + "neptune-graph:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "neptune-graph:DeleteGraphSnapshot", + "neptune-graph:GetGraphSnapshot" + ] + }, + "list": { + "permissions": [ + "neptune-graph:ListGraphSnapshots" + ] + } + }, + "attributes": { + "Id": { + "type": "string", + "description": "The unique identifier of the graph snapshot.", + "markdownDescription": "The unique identifier of the graph snapshot.\n\n---\n\nRequired: No \nType: String \nPattern: ^gs-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "description": "The ARN of the graph snapshot.", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "The ARN of the graph snapshot.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SnapshotCreateTime": { + "type": "string", + "description": "The time when the snapshot was created.", + "format": "date-time", + "markdownDescription": "The time when the snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "description": "The current status of the graph snapshot.", + "enum": [ + "CREATING", + "AVAILABLE", + "DELETING", + "FAILED" + ], + "markdownDescription": "The current status of the graph snapshot.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | AVAILABLE | DELETING | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "KmsKeyIdentifier": { + "type": "string", + "description": "The ID of the KMS key used to encrypt and decrypt the snapshot.", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The ID of the KMS key used to encrypt and decrypt the snapshot.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-neptunegraph-privategraphendpoint.json b/server/schema/resources/aws-neptunegraph-privategraphendpoint.json index bc273947..489d6b3c 100644 --- a/server/schema/resources/aws-neptunegraph-privategraphendpoint.json +++ b/server/schema/resources/aws-neptunegraph-privategraphendpoint.json @@ -57,7 +57,6 @@ "/properties/VpcEndpointId" ], "writeOnlyProperties": [ - "/properties/GraphIdentifier", "/properties/SecurityGroupIds" ], "createOnlyProperties": [ diff --git a/server/schema/resources/aws-networkfirewall-firewall.json b/server/schema/resources/aws-networkfirewall-firewall.json index 0a06bab4..3c06d856 100644 --- a/server/schema/resources/aws-networkfirewall-firewall.json +++ b/server/schema/resources/aws-networkfirewall-firewall.json @@ -148,6 +148,12 @@ "maxLength": 128, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^tgw-[0-9a-z]+$ \nUpdate requires: No interruption\n" }, + "TransitGatewayAttachmentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^tgw-attach-[0-9a-z]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, "Description": { "type": "string", "maxLength": 512, @@ -199,6 +205,7 @@ "readOnlyProperties": [ "/properties/FirewallArn", "/properties/FirewallId", + "/properties/TransitGatewayAttachmentId", "/properties/EndpointIds" ], "primaryIdentifier": [ @@ -279,6 +286,12 @@ "maxLength": 36, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 36 \nMaximum Length: 36 \nPattern: ^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$ \nUpdate requires: No interruption\nRead only property: Yes" }, + "TransitGatewayAttachmentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^tgw-attach-[0-9a-z]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, "EndpointIds": { "type": "array", "insertionOrder": false, diff --git a/server/schema/resources/aws-networkfirewall-firewallpolicy.json b/server/schema/resources/aws-networkfirewall-firewallpolicy.json index 28334ff4..14e6ed3f 100644 --- a/server/schema/resources/aws-networkfirewall-firewallpolicy.json +++ b/server/schema/resources/aws-networkfirewall-firewallpolicy.json @@ -109,6 +109,10 @@ }, "TLSInspectionConfigurationArn": { "$ref": "#/definitions/ResourceArn" + }, + "EnableTLSSessionHolding": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-networkfirewall-rulegroup.json b/server/schema/resources/aws-networkfirewall-rulegroup.json index fe6886ca..8a8722b0 100644 --- a/server/schema/resources/aws-networkfirewall-rulegroup.json +++ b/server/schema/resources/aws-networkfirewall-rulegroup.json @@ -233,9 +233,11 @@ "type": "string", "enum": [ "ALLOWLIST", - "DENYLIST" + "DENYLIST", + "ALERTLIST", + "REJECTLIST" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOWLIST | DENYLIST \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOWLIST | DENYLIST | ALERTLIST | REJECTLIST \nUpdate requires: No interruption\n" }, "StatefulRule": { "type": "object", diff --git a/server/schema/resources/aws-networkmanager-connectattachment.json b/server/schema/resources/aws-networkmanager-connectattachment.json index 121297be..a06fbffa 100644 --- a/server/schema/resources/aws-networkmanager-connectattachment.json +++ b/server/schema/resources/aws-networkmanager-connectattachment.json @@ -68,6 +68,11 @@ "$ref": "#/definitions/ProposedNetworkFunctionGroupChange", "markdownDescription": "The attachment to move from one network function group to another.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RoutingPolicyLabel": { + "description": "Routing policy label", + "type": "string", + "markdownDescription": "Routing policy label\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -97,6 +102,15 @@ "description": "Protocol options for connect attachment", "$ref": "#/definitions/ConnectAttachmentOptions", "markdownDescription": "Protocol options for connect attachment\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -215,13 +229,18 @@ "/properties/AttachmentId", "/properties/OwnerAccountId", "/properties/AttachmentPolicyRuleNumber", - "/properties/SegmentName" + "/properties/SegmentName", + "/properties/LastModificationErrors" ], "createOnlyProperties": [ "/properties/CoreNetworkId", "/properties/EdgeLocation", "/properties/TransportAttachmentId", - "/properties/Options" + "/properties/Options", + "/properties/RoutingPolicyLabel" + ], + "writeOnlyProperties": [ + "/properties/RoutingPolicyLabel" ], "primaryIdentifier": [ "/properties/AttachmentId" @@ -318,6 +337,15 @@ "description": "Last update time of the attachment.", "type": "string", "markdownDescription": "Last update time of the attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-networkmanager-corenetworkprefixlistassociation.json b/server/schema/resources/aws-networkmanager-corenetworkprefixlistassociation.json new file mode 100644 index 00000000..c6dabc39 --- /dev/null +++ b/server/schema/resources/aws-networkmanager-corenetworkprefixlistassociation.json @@ -0,0 +1,82 @@ +{ + "typeName": "AWS::NetworkManager::CoreNetworkPrefixListAssociation", + "description": "Resource Type definition for AWS::NetworkManager::CoreNetworkPrefixListAssociation which associates a prefix list with a core network.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkmanager.git", + "properties": { + "CoreNetworkId": { + "description": "The ID of the core network.", + "type": "string", + "markdownDescription": "The ID of the core network.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "PrefixListArn": { + "description": "The Amazon Resource Name (ARN) of the prefix list.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the prefix list.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z0-9-]+:ec2:[a-z]+-[a-z]+-[0-9]:([0-9]{12}):prefix-list/pl-[a-z0-9]+$ \nUpdate requires: Replacement\n" + }, + "PrefixListAlias": { + "description": "The alias of the prefix list", + "type": "string", + "markdownDescription": "The alias of the prefix list\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "additionalProperties": false, + "required": [ + "CoreNetworkId", + "PrefixListArn", + "PrefixListAlias" + ], + "createOnlyProperties": [ + "/properties/CoreNetworkId", + "/properties/PrefixListArn", + "/properties/PrefixListAlias" + ], + "primaryIdentifier": [ + "/properties/CoreNetworkId", + "/properties/PrefixListArn" + ], + "handlers": { + "create": { + "permissions": [ + "networkmanager:ListCoreNetworkPrefixListAssociations", + "networkmanager:CreateCoreNetworkPrefixListAssociation", + "networkmanager:GetCoreNetwork" + ] + }, + "read": { + "permissions": [ + "networkmanager:ListCoreNetworkPrefixListAssociations", + "networkmanager:GetCoreNetwork" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "CoreNetworkId": { + "$ref": "resource-schema.json#/properties/CoreNetworkId" + } + }, + "required": [ + "CoreNetworkId" + ] + }, + "permissions": [ + "networkmanager:ListCoreNetworkPrefixListAssociations", + "networkmanager:GetCoreNetwork" + ] + }, + "delete": { + "permissions": [ + "networkmanager:ListCoreNetworkPrefixListAssociations", + "networkmanager:DeleteCoreNetworkPrefixListAssociation", + "networkmanager:GetCoreNetwork" + ] + } + }, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-networkmanager-directconnectgatewayattachment.json b/server/schema/resources/aws-networkmanager-directconnectgatewayattachment.json index 2620e748..d3c78455 100644 --- a/server/schema/resources/aws-networkmanager-directconnectgatewayattachment.json +++ b/server/schema/resources/aws-networkmanager-directconnectgatewayattachment.json @@ -78,6 +78,11 @@ "$ref": "#/definitions/ProposedNetworkFunctionGroupChange", "markdownDescription": "The attachment to move from one network function group to another.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RoutingPolicyLabel": { + "description": "Routing policy label", + "type": "string", + "markdownDescription": "Routing policy label\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -97,6 +102,15 @@ "description": "Last update time of the attachment.", "type": "string", "markdownDescription": "Last update time of the attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -199,7 +213,11 @@ ], "createOnlyProperties": [ "/properties/CoreNetworkId", - "/properties/DirectConnectGatewayArn" + "/properties/DirectConnectGatewayArn", + "/properties/RoutingPolicyLabel" + ], + "writeOnlyProperties": [ + "/properties/RoutingPolicyLabel" ], "readOnlyProperties": [ "/properties/CoreNetworkArn", @@ -212,7 +230,8 @@ "/properties/AttachmentPolicyRuleNumber", "/properties/SegmentName", "/properties/NetworkFunctionGroupName", - "/properties/ResourceArn" + "/properties/ResourceArn", + "/properties/LastModificationErrors" ], "primaryIdentifier": [ "/properties/AttachmentId" @@ -320,6 +339,15 @@ "description": "Last update time of the attachment.", "type": "string", "markdownDescription": "Last update time of the attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-networkmanager-sitetositevpnattachment.json b/server/schema/resources/aws-networkmanager-sitetositevpnattachment.json index 07bb25b8..8d0859f0 100644 --- a/server/schema/resources/aws-networkmanager-sitetositevpnattachment.json +++ b/server/schema/resources/aws-networkmanager-sitetositevpnattachment.json @@ -68,6 +68,11 @@ "$ref": "#/definitions/ProposedNetworkFunctionGroupChange", "markdownDescription": "The attachment to move from one network function group to another.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RoutingPolicyLabel": { + "description": "Routing policy label", + "type": "string", + "markdownDescription": "Routing policy label\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -92,6 +97,15 @@ "description": "The ARN of the site-to-site VPN attachment.", "type": "string", "markdownDescription": "The ARN of the site-to-site VPN attachment.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -189,7 +203,11 @@ "additionalProperties": false, "createOnlyProperties": [ "/properties/CoreNetworkId", - "/properties/VpnConnectionArn" + "/properties/VpnConnectionArn", + "/properties/RoutingPolicyLabel" + ], + "writeOnlyProperties": [ + "/properties/RoutingPolicyLabel" ], "readOnlyProperties": [ "/properties/CoreNetworkArn", @@ -202,7 +220,8 @@ "/properties/OwnerAccountId", "/properties/EdgeLocation", "/properties/AttachmentPolicyRuleNumber", - "/properties/SegmentName" + "/properties/SegmentName", + "/properties/LastModificationErrors" ], "primaryIdentifier": [ "/properties/AttachmentId" @@ -310,6 +329,15 @@ "description": "Last update time of the attachment.", "type": "string", "markdownDescription": "Last update time of the attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-networkmanager-transitgatewaypeering.json b/server/schema/resources/aws-networkmanager-transitgatewaypeering.json index 15616f3e..413cb64b 100644 --- a/server/schema/resources/aws-networkmanager-transitgatewaypeering.json +++ b/server/schema/resources/aws-networkmanager-transitgatewaypeering.json @@ -86,6 +86,15 @@ "type": "string", "markdownDescription": "The creation time of the transit gateway peering\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "LastModificationErrors": { + "description": "Errors from the last modification of the transit gateway peering.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the transit gateway peering.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "Tags": { "description": "An array of key-value pairs to apply to this resource.", "type": "array", @@ -123,7 +132,8 @@ "/properties/EdgeLocation", "/properties/ResourceArn", "/properties/CreatedAt", - "/properties/TransitGatewayPeeringAttachmentId" + "/properties/TransitGatewayPeeringAttachmentId", + "/properties/LastModificationErrors" ], "createOnlyProperties": [ "/properties/CoreNetworkId", @@ -218,6 +228,15 @@ "description": "The creation time of the transit gateway peering", "type": "string", "markdownDescription": "The creation time of the transit gateway peering\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the transit gateway peering.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the transit gateway peering.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-networkmanager-transitgatewayroutetableattachment.json b/server/schema/resources/aws-networkmanager-transitgatewayroutetableattachment.json index 284811af..9292e6ab 100644 --- a/server/schema/resources/aws-networkmanager-transitgatewayroutetableattachment.json +++ b/server/schema/resources/aws-networkmanager-transitgatewayroutetableattachment.json @@ -159,6 +159,11 @@ "$ref": "#/definitions/ProposedNetworkFunctionGroupChange", "markdownDescription": "The attachment to move from one network function group to another.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RoutingPolicyLabel": { + "description": "Routing policy label", + "type": "string", + "markdownDescription": "Routing policy label\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "CreatedAt": { "description": "Creation time of the attachment.", "type": "string", @@ -178,6 +183,15 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "additionalProperties": false, @@ -199,7 +213,11 @@ ], "createOnlyProperties": [ "/properties/PeeringId", - "/properties/TransitGatewayRouteTableArn" + "/properties/TransitGatewayRouteTableArn", + "/properties/RoutingPolicyLabel" + ], + "writeOnlyProperties": [ + "/properties/RoutingPolicyLabel" ], "readOnlyProperties": [ "/properties/CoreNetworkArn", @@ -213,7 +231,8 @@ "/properties/OwnerAccountId", "/properties/EdgeLocation", "/properties/AttachmentPolicyRuleNumber", - "/properties/SegmentName" + "/properties/SegmentName", + "/properties/LastModificationErrors" ], "primaryIdentifier": [ "/properties/AttachmentId" @@ -315,6 +334,15 @@ "description": "Last update time of the attachment.", "type": "string", "markdownDescription": "Last update time of the attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-networkmanager-vpcattachment.json b/server/schema/resources/aws-networkmanager-vpcattachment.json index 071c7579..26e05641 100644 --- a/server/schema/resources/aws-networkmanager-vpcattachment.json +++ b/server/schema/resources/aws-networkmanager-vpcattachment.json @@ -73,6 +73,11 @@ "$ref": "#/definitions/ProposedNetworkFunctionGroupChange", "markdownDescription": "The attachment to move from one network function group to another.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RoutingPolicyLabel": { + "description": "Routing policy label", + "type": "string", + "markdownDescription": "Routing policy label\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -107,6 +112,15 @@ "description": "Vpc options of the attachment.", "$ref": "#/definitions/VpcOptions", "markdownDescription": "Vpc options of the attachment.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -241,7 +255,8 @@ ], "createOnlyProperties": [ "/properties/CoreNetworkId", - "/properties/VpcArn" + "/properties/VpcArn", + "/properties/RoutingPolicyLabel" ], "readOnlyProperties": [ "/properties/CoreNetworkArn", @@ -255,7 +270,11 @@ "/properties/AttachmentPolicyRuleNumber", "/properties/SegmentName", "/properties/NetworkFunctionGroupName", - "/properties/ResourceArn" + "/properties/ResourceArn", + "/properties/LastModificationErrors" + ], + "writeOnlyProperties": [ + "/properties/RoutingPolicyLabel" ], "primaryIdentifier": [ "/properties/AttachmentId" @@ -368,6 +387,15 @@ "description": "Last update time of the attachment.", "type": "string", "markdownDescription": "Last update time of the attachment.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastModificationErrors": { + "description": "Errors from the last modification of the attachment.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Errors from the last modification of the attachment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-notifications-channelassociation.json b/server/schema/resources/aws-notifications-channelassociation.json index f6a6e582..1fb109a9 100644 --- a/server/schema/resources/aws-notifications-channelassociation.json +++ b/server/schema/resources/aws-notifications-channelassociation.json @@ -5,12 +5,12 @@ "Arn": { "type": "string", "description": "ARN identifier of the channel.\nExample: arn:aws:chatbot::123456789012:chat-configuration/slack-channel/security-ops", - "markdownDescription": "ARN identifier of the channel.\nExample: arn:aws:chatbot::123456789012:chat-configuration/slack-channel/security-ops\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:(chatbot|consoleapp|notifications-contacts):[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-_.@]+/[a-zA-Z0-9/_.@:-]+$ \nUpdate requires: Replacement\n" + "markdownDescription": "ARN identifier of the channel.\nExample: arn:aws:chatbot::123456789012:chat-configuration/slack-channel/security-ops\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:(chatbot|consoleapp|notifications-contacts):[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-_.@]+/[a-zA-Z0-9/_.@:-]+$ \nUpdate requires: Replacement\n" }, "NotificationConfigurationArn": { "type": "string", "description": "ARN identifier of the NotificationConfiguration.\nExample: arn:aws:notifications::123456789012:configuration/a01jes88qxwkbj05xv9c967pgm1", - "markdownDescription": "ARN identifier of the NotificationConfiguration.\nExample: arn:aws:notifications::123456789012:configuration/a01jes88qxwkbj05xv9c967pgm1\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration\\/[a-z0-9]{27}$ \nUpdate requires: Replacement\n" + "markdownDescription": "ARN identifier of the NotificationConfiguration.\nExample: arn:aws:notifications::123456789012:configuration/a01jes88qxwkbj05xv9c967pgm1\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: Replacement\n" } }, "required": [ @@ -42,7 +42,7 @@ "properties": { "NotificationConfigurationArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration\\/[a-z0-9]{27}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-notifications-eventrule.json b/server/schema/resources/aws-notifications-eventrule.json index b16e7012..dbc8656a 100644 --- a/server/schema/resources/aws-notifications-eventrule.json +++ b/server/schema/resources/aws-notifications-eventrule.json @@ -50,7 +50,7 @@ "properties": { "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}/rule/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}/rule/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "CreationTime": { "type": "string", @@ -73,13 +73,13 @@ "type": "array", "items": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:events:[a-z-\\d]{2,25}:\\d{12}:rule\\/[a-zA-Z-\\d]{1,1024}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:events:[a-z-\\d]{2,25}:\\d{12}:rule\\/[a-zA-Z-\\d]{1,1024}$ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, "NotificationConfigurationArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: Replacement\n" }, "Regions": { "type": "array", @@ -87,7 +87,7 @@ "type": "string", "maxLength": 25, "minLength": 2, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 25 \nPattern: ^([a-z]{1,2})-([a-z]{1,15}-)+([0-9])$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 25 \nUpdate requires: No interruption\n" }, "minItems": 1, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" @@ -152,7 +152,7 @@ "properties": { "NotificationConfigurationArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration\\/[a-z0-9]{27}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -172,7 +172,7 @@ "attributes": { "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}/rule/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}/rule/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "CreationTime": { "type": "string", @@ -183,7 +183,7 @@ "type": "array", "items": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:events:[a-z-\\d]{2,25}:\\d{12}:rule\\/[a-zA-Z-\\d]{1,1024}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:events:[a-z-\\d]{2,25}:\\d{12}:rule\\/[a-zA-Z-\\d]{1,1024}$ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, diff --git a/server/schema/resources/aws-notifications-managednotificationaccountcontactassociation.json b/server/schema/resources/aws-notifications-managednotificationaccountcontactassociation.json index 66a04dc2..524d361b 100644 --- a/server/schema/resources/aws-notifications-managednotificationaccountcontactassociation.json +++ b/server/schema/resources/aws-notifications-managednotificationaccountcontactassociation.json @@ -6,7 +6,7 @@ "ManagedNotificationConfigurationArn": { "description": "The managed notification configuration ARN, against which the account contact association will be created", "type": "string", - "markdownDescription": "The managed notification configuration ARN, against which the account contact association will be created\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[-.a-z0-9]{1,63}:notifications::[0-9]{12}:managed-notification-configuration/category/[a-zA-Z0-9-]{3,64}/sub-category/[a-zA-Z0-9-]{3,64}$ \nUpdate requires: No interruption\n" + "markdownDescription": "The managed notification configuration ARN, against which the account contact association will be created\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::([0-9]{12}|):managed-notification-configuration/category/[a-zA-Z0-9\\-]{3,64}/sub-category/[a-zA-Z0-9\\-]{3,64}$ \nUpdate requires: No interruption\n" }, "ContactIdentifier": { "description": "This unique identifier for Contact", @@ -72,7 +72,7 @@ "properties": { "ManagedNotificationConfigurationArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[-.a-z0-9]{1,63}:notifications::([0-9]{12}|):managed-notification-configuration/category/[a-zA-Z0-9-]{3,64}/sub-category/[a-zA-Z0-9-]{3,64}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::([0-9]{12}|):managed-notification-configuration/category/[a-zA-Z0-9\\-]{3,64}/sub-category/[a-zA-Z0-9\\-]{3,64}$ \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-notifications-managednotificationadditionalchannelassociation.json b/server/schema/resources/aws-notifications-managednotificationadditionalchannelassociation.json index a4d66cf4..94b21928 100644 --- a/server/schema/resources/aws-notifications-managednotificationadditionalchannelassociation.json +++ b/server/schema/resources/aws-notifications-managednotificationadditionalchannelassociation.json @@ -5,12 +5,12 @@ "ChannelArn": { "type": "string", "description": "ARN identifier of the channel.\nExample: arn:aws:chatbot::123456789012:chat-configuration/slack-channel/security-ops", - "markdownDescription": "ARN identifier of the channel.\nExample: arn:aws:chatbot::123456789012:chat-configuration/slack-channel/security-ops\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:(chatbot|consoleapp|notifications-contacts):[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-_.@]+/[a-zA-Z0-9/_.@:-]+$ \nUpdate requires: Replacement\n" + "markdownDescription": "ARN identifier of the channel.\nExample: arn:aws:chatbot::123456789012:chat-configuration/slack-channel/security-ops\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:(chatbot|consoleapp|notifications-contacts):[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-_.@]+/[a-zA-Z0-9/_.@:-]+$ \nUpdate requires: Replacement\n" }, "ManagedNotificationConfigurationArn": { "type": "string", "description": "ARN identifier of the Managed Notification.\nExample: arn:aws:notifications::381491923782:managed-notification-configuration/category/AWS-Health/sub-category/Billing", - "markdownDescription": "ARN identifier of the Managed Notification.\nExample: arn:aws:notifications::381491923782:managed-notification-configuration/category/AWS-Health/sub-category/Billing\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[-.a-z0-9]{1,63}:notifications::[0-9]{12}:managed-notification-configuration/category/[a-zA-Z0-9-]{3,64}/sub-category/[a-zA-Z0-9-]{3,64}$ \nUpdate requires: Replacement\n" + "markdownDescription": "ARN identifier of the Managed Notification.\nExample: arn:aws:notifications::381491923782:managed-notification-configuration/category/AWS-Health/sub-category/Billing\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::([0-9]{12}|):managed-notification-configuration/category/[a-zA-Z0-9\\-]{3,64}/sub-category/[a-zA-Z0-9\\-]{3,64}$ \nUpdate requires: Replacement\n" } }, "required": [ diff --git a/server/schema/resources/aws-notifications-notificationconfiguration.json b/server/schema/resources/aws-notifications-notificationconfiguration.json index 6b3777f1..38b7c36a 100644 --- a/server/schema/resources/aws-notifications-notificationconfiguration.json +++ b/server/schema/resources/aws-notifications-notificationconfiguration.json @@ -61,7 +61,7 @@ }, "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "CreationTime": { "type": "string", @@ -117,9 +117,7 @@ "read": { "permissions": [ "notifications:GetNotificationConfiguration", - "notifications:ListTagsForResource", - "notifications:TagResource", - "notifications:UntagResource" + "notifications:ListTagsForResource" ] }, "update": { @@ -134,7 +132,8 @@ }, "delete": { "permissions": [ - "notifications:DeleteNotificationConfiguration" + "notifications:DeleteNotificationConfiguration", + "notifications:GetNotificationConfiguration" ] }, "list": { @@ -160,7 +159,7 @@ "attributes": { "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "CreationTime": { "type": "string", diff --git a/server/schema/resources/aws-notifications-notificationhub.json b/server/schema/resources/aws-notifications-notificationhub.json index 20bc0964..135c4663 100644 --- a/server/schema/resources/aws-notifications-notificationhub.json +++ b/server/schema/resources/aws-notifications-notificationhub.json @@ -35,7 +35,7 @@ "maxLength": 25, "minLength": 2, "description": "Region that NotificationHub is present in.", - "markdownDescription": "Region that NotificationHub is present in.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 25 \nPattern: ^([a-z]{1,2})-([a-z]{1,15}-)+([0-9])$ \nUpdate requires: No interruption\n" + "markdownDescription": "Region that NotificationHub is present in.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 25 \nUpdate requires: No interruption\n" } }, "properties": { diff --git a/server/schema/resources/aws-notifications-organizationalunitassociation.json b/server/schema/resources/aws-notifications-organizationalunitassociation.json index aa213396..20dc094f 100644 --- a/server/schema/resources/aws-notifications-organizationalunitassociation.json +++ b/server/schema/resources/aws-notifications-organizationalunitassociation.json @@ -5,7 +5,7 @@ "NotificationConfigurationArn": { "description": "ARN identifier of the NotificationConfiguration.\nExample: arn:aws:notifications::123456789012:configuration/a01jes88qxwkbj05xv9c967pgm1", "type": "string", - "markdownDescription": "ARN identifier of the NotificationConfiguration.\nExample: arn:aws:notifications::123456789012:configuration/a01jes88qxwkbj05xv9c967pgm1\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration\\/[a-z0-9]{27}$ \nUpdate requires: Replacement\n" + "markdownDescription": "ARN identifier of the NotificationConfiguration.\nExample: arn:aws:notifications::123456789012:configuration/a01jes88qxwkbj05xv9c967pgm1\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: Replacement\n" }, "OrganizationalUnitId": { "description": "The ID of the organizational unit.", @@ -49,7 +49,7 @@ "properties": { "NotificationConfigurationArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:notifications::[0-9]{12}:configuration\\/[a-z0-9]{27}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:[a-z-]{3,10}:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$ \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-notificationscontacts-emailcontact.json b/server/schema/resources/aws-notificationscontacts-emailcontact.json index 74b2defd..aae1c711 100644 --- a/server/schema/resources/aws-notificationscontacts-emailcontact.json +++ b/server/schema/resources/aws-notificationscontacts-emailcontact.json @@ -126,10 +126,6 @@ "/properties/EmailContact/CreationTime", "/properties/EmailContact/UpdateTime" ], - "writeOnlyProperties": [ - "/properties/EmailAddress", - "/properties/Name" - ], "createOnlyProperties": [ "/properties/EmailAddress", "/properties/Name", @@ -153,8 +149,7 @@ "read": { "permissions": [ "notifications-contacts:GetEmailContact", - "notifications-contacts:ListTagsForResource", - "notifications-contacts:TagResource" + "notifications-contacts:ListTagsForResource" ] }, "delete": { diff --git a/server/schema/resources/aws-novaact-workflowdefinition.json b/server/schema/resources/aws-novaact-workflowdefinition.json new file mode 100644 index 00000000..0e62e37b --- /dev/null +++ b/server/schema/resources/aws-novaact-workflowdefinition.json @@ -0,0 +1,143 @@ +{ + "typeName": "AWS::NovaAct::WorkflowDefinition", + "description": "Definition of AWS::NovaAct::WorkflowDefinition Resource Type", + "properties": { + "Arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the workflow definition.", + "markdownDescription": "The Amazon Resource Name (ARN) of the workflow definition.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov):nova-act:[a-z0-9-]+:[0-9]{12}:workflow-definition/[a-zA-Z0-9_-]{1,40}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the workflow definition was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the workflow definition was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "type": "string", + "description": "An optional description of the workflow definition's purpose and functionality.", + "minLength": 1, + "maxLength": 4000, + "markdownDescription": "An optional description of the workflow definition's purpose and functionality.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 4000 \nUpdate requires: Replacement\n" + }, + "ExportConfig": { + "$ref": "#/definitions/WorkflowExportConfig" + }, + "Name": { + "type": "string", + "description": "The name of the workflow definition. Must be unique within your account and region.", + "minLength": 1, + "maxLength": 40, + "markdownDescription": "The name of the workflow definition. Must be unique within your account and region.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 40 \nPattern: ^[a-zA-Z0-9_-]{1,40}$ \nUpdate requires: Replacement\n" + }, + "Status": { + "type": "string", + "description": "The current status of the workflow definition.", + "enum": [ + "ACTIVE", + "DELETING" + ], + "markdownDescription": "The current status of the workflow definition.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | DELETING \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "WorkflowExportConfig": { + "type": "object", + "description": "Configuration settings for exporting workflow execution data and logs to Amazon S3.", + "properties": { + "S3BucketName": { + "type": "string", + "description": "The name of the Amazon S3 bucket for exporting workflow data.", + "minLength": 3, + "maxLength": 63, + "markdownDescription": "The name of the Amazon S3 bucket for exporting workflow data.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nPattern: ^[a-z0-9][a-z0-9.-]*[a-z0-9]$ \nUpdate requires: No interruption\n" + }, + "S3KeyPrefix": { + "type": "string", + "description": "An optional prefix for Amazon S3 object keys to organize exported data.", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "An optional prefix for Amazon S3 object keys to organize exported data.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^[a-zA-Z0-9!\\-_.*'()]+(?:/[a-zA-Z0-9!\\-_.*'()]+)*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "S3BucketName" + ], + "additionalProperties": false, + "markdownDescription": "Configuration settings for exporting workflow execution data and logs to Amazon S3.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Status" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description", + "/properties/ExportConfig" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "nova-act:CreateWorkflowDefinition", + "nova-act:GetWorkflowDefinition", + "iam:CreateServiceLinkedRole", + "s3:ListBucket" + ] + }, + "read": { + "permissions": [ + "nova-act:GetWorkflowDefinition" + ] + }, + "delete": { + "permissions": [ + "nova-act:DeleteWorkflowDefinition", + "nova-act:GetWorkflowDefinition" + ] + }, + "list": { + "permissions": [ + "nova-act:ListWorkflowDefinitions" + ] + } + }, + "additionalProperties": false, + "attributes": { + "Arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the workflow definition.", + "markdownDescription": "The Amazon Resource Name (ARN) of the workflow definition.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov):nova-act:[a-z0-9-]+:[0-9]{12}:workflow-definition/[a-zA-Z0-9_-]{1,40}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the workflow definition was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the workflow definition was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "description": "The current status of the workflow definition.", + "enum": [ + "ACTIVE", + "DELETING" + ], + "markdownDescription": "The current status of the workflow definition.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | DELETING \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-oam-link.json b/server/schema/resources/aws-oam-link.json index 3b0ead9d..8e128ec6 100644 --- a/server/schema/resources/aws-oam-link.json +++ b/server/schema/resources/aws-oam-link.json @@ -101,7 +101,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "oam:ListTagsForResource", diff --git a/server/schema/resources/aws-oam-sink.json b/server/schema/resources/aws-oam-sink.json index 5679ec63..851d0991 100644 --- a/server/schema/resources/aws-oam-sink.json +++ b/server/schema/resources/aws-oam-sink.json @@ -40,7 +40,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "oam:ListTagsForResource", diff --git a/server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json b/server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json new file mode 100644 index 00000000..d061bab3 --- /dev/null +++ b/server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json @@ -0,0 +1,327 @@ +{ + "typeName": "AWS::ObservabilityAdmin::OrganizationCentralizationRule", + "description": "Resource schema for AWS:ObservabilityAdmin:OrganizationCentralizationRule", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceArn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "AccountIdentifier": { + "type": "string", + "minLength": 12, + "maxLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, + "Region": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Regions": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Region" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CentralizationRule": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/CentralizationRuleSource" + }, + "Destination": { + "$ref": "#/definitions/CentralizationRuleDestination" + } + }, + "required": [ + "Source", + "Destination" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CentralizationRuleSource": { + "type": "object", + "properties": { + "Regions": { + "$ref": "#/definitions/Regions" + }, + "Scope": { + "type": "string", + "minLength": 1, + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, + "SourceLogsConfiguration": { + "$ref": "#/definitions/SourceLogsConfiguration" + } + }, + "required": [ + "Regions" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceLogsConfiguration": { + "type": "object", + "properties": { + "LogGroupSelectionCriteria": { + "type": "string", + "minLength": 1, + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, + "DataSourceSelectionCriteria": { + "type": "string", + "minLength": 1, + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, + "EncryptedLogGroupStrategy": { + "type": "string", + "enum": [ + "ALLOW", + "SKIP" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ALLOW | SKIP \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EncryptedLogGroupStrategy" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CentralizationRuleDestination": { + "type": "object", + "properties": { + "Region": { + "$ref": "#/definitions/Region" + }, + "Account": { + "$ref": "#/definitions/AccountIdentifier" + }, + "DestinationLogsConfiguration": { + "$ref": "#/definitions/DestinationLogsConfiguration" + } + }, + "required": [ + "Region" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DestinationLogsConfiguration": { + "type": "object", + "properties": { + "LogsEncryptionConfiguration": { + "$ref": "#/definitions/LogsEncryptionConfiguration" + }, + "BackupConfiguration": { + "$ref": "#/definitions/LogsBackupConfiguration" + }, + "LogGroupNameConfiguration": { + "$ref": "#/definitions/LogGroupNameConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogsEncryptionConfiguration": { + "type": "object", + "properties": { + "EncryptionStrategy": { + "type": "string", + "enum": [ + "CUSTOMER_MANAGED", + "AWS_OWNED" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CUSTOMER_MANAGED | AWS_OWNED \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "EncryptionConflictResolutionStrategy": { + "type": "string", + "enum": [ + "ALLOW", + "SKIP" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOW | SKIP \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EncryptionStrategy" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogsBackupConfiguration": { + "type": "object", + "properties": { + "Region": { + "$ref": "#/definitions/Region" + }, + "KmsKeyArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "Region" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogGroupNameConfiguration": { + "type": "object", + "properties": { + "LogGroupNamePattern": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^(?:[\\._\\-/#A-Za-z0-9]+|\\$\\{[A-Za-z]+(?:\\.[A-Za-z]+){1,2}\\})+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LogGroupNamePattern" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "RuleName": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^[0-9A-Za-z-]+$ \nUpdate requires: Replacement\n" + }, + "Rule": { + "$ref": "#/definitions/CentralizationRule" + }, + "RuleArn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "RuleName", + "Rule" + ], + "createOnlyProperties": [ + "/properties/RuleName" + ], + "readOnlyProperties": [ + "/properties/RuleArn" + ], + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "additionalIdentifiers": [ + [ + "/properties/RuleName" + ] + ], + "handlers": { + "create": { + "permissions": [ + "observabilityadmin:CreateCentralizationRuleForOrganization", + "observabilityadmin:GetCentralizationRuleForOrganization", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource" + ], + "timeoutInMinutes": 90 + }, + "read": { + "permissions": [ + "observabilityadmin:GetCentralizationRuleForOrganization", + "observabilityadmin:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "observabilityadmin:UpdateCentralizationRuleForOrganization", + "observabilityadmin:GetCentralizationRuleForOrganization", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource" + ] + }, + "delete": { + "permissions": [ + "observabilityadmin:DeleteCentralizationRuleForOrganization" + ] + }, + "list": { + "permissions": [ + "observabilityadmin:ListCentralizationRulesForOrganization" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource", + "observabilityadmin:ListTagsForResource" + ] + }, + "attributes": { + "RuleArn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-observabilityadmin-organizationtelemetryrule.json b/server/schema/resources/aws-observabilityadmin-organizationtelemetryrule.json index a044d8bb..8df94ecc 100644 --- a/server/schema/resources/aws-observabilityadmin-organizationtelemetryrule.json +++ b/server/schema/resources/aws-observabilityadmin-organizationtelemetryrule.json @@ -19,17 +19,23 @@ "description": "Resource Type associated with the Organization Telemetry Rule", "type": "string", "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::VPC", + "AWS::WAFv2::WebACL", + "AWS::CloudTrail", + "AWS::EKS::Cluster", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::EC2::Instance" ], - "markdownDescription": "Resource Type associated with the Organization Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: AWS::EC2::VPC \nUpdate requires: No interruption\n" + "markdownDescription": "Resource Type associated with the Organization Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: AWS::EC2::VPC | AWS::WAFv2::WebACL | AWS::CloudTrail | AWS::EKS::Cluster | AWS::ElasticLoadBalancingV2::LoadBalancer | AWS::EC2::Instance \nUpdate requires: No interruption\n" }, "TelemetryType": { "description": "Telemetry Type associated with the Organization Telemetry Rule", "type": "string", "enum": [ - "Logs" + "Logs", + "Metrics" ], - "markdownDescription": "Telemetry Type associated with the Organization Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: Logs \nUpdate requires: No interruption\n" + "markdownDescription": "Telemetry Type associated with the Organization Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: Logs | Metrics \nUpdate requires: No interruption\n" }, "Scope": { "description": "Selection Criteria on scope level for rule application", @@ -83,6 +89,91 @@ "additionalProperties": false, "markdownDescription": "Telemetry parameters for VPC Flow logs\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "WAFLoggingParameters": { + "description": "Telemetry parameters for WAF v2 Web ACL", + "type": "object", + "properties": { + "RedactedFields": { + "description": "Fields not to be included in the logs.", + "$ref": "#/definitions/RedactedFields", + "markdownDescription": "Fields not to be included in the logs.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LoggingFilter": { + "$ref": "#/definitions/LoggingFilter" + }, + "LogType": { + "$ref": "#/definitions/WAFLogType" + } + }, + "markdownDescription": "Telemetry parameters for WAF v2 Web ACL\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudtrailParameters": { + "description": "Telemetry parameters for Cloudtrail", + "type": "object", + "properties": { + "AdvancedEventSelectors": { + "description": "Create fine-grained selectors for AWS CloudTrail management and data.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AdvancedEventSelector" + }, + "markdownDescription": "Create fine-grained selectors for AWS CloudTrail management and data.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AdvancedEventSelectors" + ], + "additionalProperties": false, + "markdownDescription": "Telemetry parameters for Cloudtrail\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdvancedEventSelector": { + "description": "An advanced event selector that includes optional name and field selectors", + "type": "object", + "properties": { + "Name": { + "description": "An optional descriptive name for the advanced event selector", + "type": "string", + "markdownDescription": "An optional descriptive name for the advanced event selector\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "FieldSelectors": { + "description": "Contains all selector statements in an advanced event selector.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AdvancedFieldSelector" + }, + "markdownDescription": "Contains all selector statements in an advanced event selector.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FieldSelectors" + ], + "additionalProperties": false, + "markdownDescription": "An advanced event selector that includes optional name and field selectors\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ELBLoadBalancerLoggingParameters": { + "description": "Telemetry parameters for ELB/NLB Load Balancer Logs", + "type": "object", + "properties": { + "OutputFormat": { + "type": "string", + "enum": [ + "plain", + "json" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: plain | json \nUpdate requires: No interruption\n" + }, + "FieldDelimiter": { + "description": "A delimiter to delineate log fields", + "type": "string", + "markdownDescription": "A delimiter to delineate log fields\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Telemetry parameters for ELB/NLB Load Balancer Logs\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TelemetryDestinationConfiguration": { "description": "The destination configuration for telemetry data", "type": "object", @@ -98,6 +189,15 @@ }, "VPCFlowLogParameters": { "$ref": "#/definitions/VPCFlowLogParameters" + }, + "CloudtrailParameters": { + "$ref": "#/definitions/CloudtrailParameters" + }, + "ELBLoadBalancerLoggingParameters": { + "$ref": "#/definitions/ELBLoadBalancerLoggingParameters" + }, + "WAFLoggingParameters": { + "$ref": "#/definitions/WAFLoggingParameters" } }, "required": [], @@ -114,6 +214,9 @@ "TelemetryType": { "$ref": "#/definitions/TelemetryType" }, + "TelemetrySourceTypes": { + "$ref": "#/definitions/TelemetrySourceTypes" + }, "DestinationConfiguration": { "$ref": "#/definitions/TelemetryDestinationConfiguration" }, @@ -156,6 +259,291 @@ ], "additionalProperties": false, "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdvancedFieldSelector": { + "description": "A single selector statement in an advanced event selector.", + "type": "object", + "properties": { + "Field": { + "description": "A field in a CloudTrail event record on which to filter events to be logged", + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "A field in a CloudTrail event record on which to filter events to be logged\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "EndsWith": { + "description": "An operator that includes events that match the last few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that includes events that match the last few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Equals": { + "description": "An operator that includes events that match the exact value of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that includes events that match the exact value of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NotEndsWith": { + "description": "An operator that excludes events that match the last few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that excludes events that match the last few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NotEquals": { + "description": "An operator that excludes events that match the exact value of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that excludes events that match the exact value of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NotStartsWith": { + "description": "An operator that excludes events that match the first few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that excludes events that match the first few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "StartsWith": { + "description": "An operator that includes events that match the first few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that includes events that match the first few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A single selector statement in an advanced event selector.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RedactedFields": { + "description": "Fields not to be included in the logs.", + "type": "array", + "maxItems": 100, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FieldToMatch" + }, + "markdownDescription": "Fields not to be included in the logs.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "FieldToMatch": { + "description": "The field that we want to match this rule to.", + "type": "object", + "properties": { + "SingleHeader": { + "$ref": "#/definitions/SingleHeader" + }, + "UriPath": { + "description": "This is the URI path to match this rule to.", + "type": "string", + "markdownDescription": "This is the URI path to match this rule to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "QueryString": { + "description": "The query string to find the resource to match this field to.", + "type": "string", + "markdownDescription": "The query string to find the resource to match this field to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Method": { + "description": "The method with which to match this rule.", + "type": "string", + "markdownDescription": "The method with which to match this rule.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The field that we want to match this rule to.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SingleHeader": { + "description": "Header for the field to match.", + "type": "object", + "properties": { + "Name": { + "description": "The name of the header", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the header\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "Header for the field to match.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LoggingFilter": { + "description": "Default handling for logs that don't match any of the specified filtering conditions.", + "type": "object", + "properties": { + "Filters": { + "$ref": "#/definitions/Filters" + }, + "DefaultBehavior": { + "$ref": "#/definitions/FilterBehavior" + } + }, + "markdownDescription": "Default handling for logs that don't match any of the specified filtering conditions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Filters": { + "description": "A list of filters to be applied.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minLength": 1, + "items": { + "$ref": "#/definitions/Filter" + }, + "markdownDescription": "A list of filters to be applied.\n\n---\n\nRequired: No \nType: Array \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Filter": { + "description": "A filter to be applied", + "type": "object", + "properties": { + "Behavior": { + "$ref": "#/definitions/FilterBehavior" + }, + "Requirement": { + "$ref": "#/definitions/FilterRequirement" + }, + "Conditions": { + "$ref": "#/definitions/Conditions" + } + }, + "markdownDescription": "A filter to be applied\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FilterBehavior": { + "description": "The behavior required of the filter.", + "type": "string", + "enum": [ + "KEEP", + "DROP" + ], + "markdownDescription": "The behavior required of the filter.\n\n---\n\nRequired: No \nType: String \nAllowed Values: KEEP | DROP \nUpdate requires: No interruption\n" + }, + "FilterRequirement": { + "description": "The requirement portion of the filter.", + "type": "string", + "enum": [ + "MEETS_ALL", + "MEETS_ANY" + ], + "markdownDescription": "The requirement portion of the filter.\n\n---\n\nRequired: No \nType: String \nAllowed Values: MEETS_ALL | MEETS_ANY \nUpdate requires: No interruption\n" + }, + "Conditions": { + "description": "A list of conditions for a filter.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minLength": 1, + "items": { + "$ref": "#/definitions/Condition" + }, + "markdownDescription": "A list of conditions for a filter.\n\n---\n\nRequired: No \nType: Array \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Condition": { + "description": "A condition for a filter.", + "type": "object", + "properties": { + "ActionCondition": { + "$ref": "#/definitions/ActionCondition" + }, + "LabelNameCondition": { + "$ref": "#/definitions/LabelNameCondition" + } + }, + "markdownDescription": "A condition for a filter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ActionCondition": { + "description": "The condition of the action desired in the filter.", + "type": "object", + "properties": { + "Action": { + "$ref": "#/definitions/Action" + } + }, + "markdownDescription": "The condition of the action desired in the filter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Action": { + "description": "The enumerated action to take.", + "type": "string", + "enum": [ + "ALLOW", + "BLOCK", + "COUNT", + "CAPTCHA", + "CHALLENGE", + "EXCLUDED_AS_COUNT" + ], + "markdownDescription": "The enumerated action to take.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOW | BLOCK | COUNT | CAPTCHA | CHALLENGE | EXCLUDED_AS_COUNT \nUpdate requires: No interruption\n" + }, + "LabelNameCondition": { + "description": "The label name of the condition.", + "type": "object", + "properties": { + "LabelName": { + "description": "The label name of the condition.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The label name of the condition.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^[0-9A-Za-z_\\-:]+$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The label name of the condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WAFLogType": { + "description": "The type of logs to generate for WAF.", + "type": "string", + "enum": [ + "WAF_LOGS" + ], + "markdownDescription": "The type of logs to generate for WAF.\n\n---\n\nRequired: No \nType: String \nAllowed Values: WAF_LOGS \nUpdate requires: No interruption\n" + }, + "TelemetrySourceTypes": { + "description": "The telemetry source types for a telemetry rule.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TelemetrySourceType" + }, + "markdownDescription": "The telemetry source types for a telemetry rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TelemetrySourceType": { + "description": "The telemetry source type that goes into the array.", + "type": "string", + "enum": [ + "VPC_FLOW_LOGS", + "ROUTE53_RESOLVER_QUERY_LOGS", + "EKS_AUDIT_LOGS", + "EKS_AUTHENTICATOR_LOGS", + "EKS_CONTROLLER_MANAGER_LOGS", + "EKS_SCHEDULER_LOGS", + "EKS_API_LOGS" + ], + "markdownDescription": "The telemetry source type that goes into the array.\n\n---\n\nRequired: No \nType: String \nAllowed Values: VPC_FLOW_LOGS | ROUTE53_RESOLVER_QUERY_LOGS | EKS_AUDIT_LOGS | EKS_AUTHENTICATOR_LOGS | EKS_CONTROLLER_MANAGER_LOGS | EKS_SCHEDULER_LOGS | EKS_API_LOGS \nUpdate requires: No interruption\n" } }, "properties": { diff --git a/server/schema/resources/aws-observabilityadmin-s3tableintegration.json b/server/schema/resources/aws-observabilityadmin-s3tableintegration.json new file mode 100644 index 00000000..9da382d3 --- /dev/null +++ b/server/schema/resources/aws-observabilityadmin-s3tableintegration.json @@ -0,0 +1,216 @@ +{ + "typeName": "AWS::ObservabilityAdmin::S3TableIntegration", + "description": "Resource Type definition for a CloudWatch Observability Admin S3 Table Integration.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource", + "observabilityadmin:ListTagsForResource" + ] + }, + "definitions": { + "EncryptionConfig": { + "description": "Encryption configuration for the S3 Table Integration", + "type": "object", + "properties": { + "SseAlgorithm": { + "description": "The server-side encryption algorithm used to encrypt the S3 Table(s) data", + "type": "string", + "enum": [ + "AES256", + "aws:kms" + ], + "markdownDescription": "The server-side encryption algorithm used to encrypt the S3 Table(s) data\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AES256 | aws:kms \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "description": "The ARN of the KMS key used to encrypt the S3 Table Integration", + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "The ARN of the KMS key used to encrypt the S3 Table Integration\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SseAlgorithm" + ], + "additionalProperties": false, + "markdownDescription": "Encryption configuration for the S3 Table Integration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogSource": { + "description": "CloudWatch Logs data source to associate with the S3 Table Integration", + "type": "object", + "properties": { + "Identifier": { + "description": "The ID of the CloudWatch Logs data source association", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The ID of the CloudWatch Logs data source association\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the CloudWatch Logs data source", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The name of the CloudWatch Logs data source\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Type": { + "description": "The type of the CloudWatch Logs data source", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The type of the CloudWatch Logs data source\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false, + "markdownDescription": "CloudWatch Logs data source to associate with the S3 Table Integration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Encryption": { + "$ref": "#/definitions/EncryptionConfig" + }, + "RoleArn": { + "description": "The ARN of the role used to access the S3 Table Integration", + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "The ARN of the role used to access the S3 Table Integration\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: Replacement\n" + }, + "Arn": { + "description": "The ARN of the S3 Table Integration", + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "The ARN of the S3 Table Integration\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LogSources": { + "description": "The CloudWatch Logs data sources to associate with the S3 Table Integration", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LogSource" + }, + "markdownDescription": "The CloudWatch Logs data sources to associate with the S3 Table Integration\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Encryption", + "RoleArn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/LogSources/*/Identifier" + ], + "createOnlyProperties": [ + "/properties/Encryption", + "/properties/RoleArn" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "observabilityadmin:CreateS3TableIntegration", + "observabilityadmin:GetS3TableIntegration", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource", + "s3tables:CreateTableBucket", + "s3tables:PutTableBucketEncryption", + "s3tables:PutTableBucketPolicy", + "kms:DescribeKey", + "iam:PassRole", + "logs:AssociateSourceToS3TableIntegration", + "logs:ListSourcesForS3TableIntegration" + ] + }, + "read": { + "permissions": [ + "observabilityadmin:GetS3TableIntegration", + "observabilityadmin:ListTagsForResource", + "logs:ListSourcesForS3TableIntegration" + ] + }, + "update": { + "permissions": [ + "observabilityadmin:GetS3TableIntegration", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource", + "logs:AssociateSourceToS3TableIntegration", + "logs:DisassociateSourceFromS3TableIntegration", + "logs:ListSourcesForS3TableIntegration" + ] + }, + "delete": { + "permissions": [ + "observabilityadmin:DeleteS3TableIntegration", + "observabilityadmin:GetS3TableIntegration" + ] + }, + "list": { + "permissions": [ + "observabilityadmin:ListS3TableIntegrations", + "logs:ListSourcesForS3TableIntegration" + ] + } + }, + "attributes": { + "Arn": { + "description": "The ARN of the S3 Table Integration", + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "The ARN of the S3 Table Integration\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-observabilityadmin-telemetryenrichment.json b/server/schema/resources/aws-observabilityadmin-telemetryenrichment.json new file mode 100644 index 00000000..7fd3701d --- /dev/null +++ b/server/schema/resources/aws-observabilityadmin-telemetryenrichment.json @@ -0,0 +1,96 @@ +{ + "typeName": "AWS::ObservabilityAdmin::TelemetryEnrichment", + "description": "AWS::ObservabilityAdmin::TelemetryEnrichment cloudformation resource enables the resource tags for telemetry feature in CloudWatch to enrich infrastructure metrics with AWS resource tags. For more details: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/resource-tags-for-telemetry.html", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Scope": { + "description": "Scope of the Telemetry Enrichment", + "type": "string", + "enum": [ + "ACCOUNT" + ], + "markdownDescription": "Scope of the Telemetry Enrichment\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACCOUNT \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "Current status of the resource tags for telemetry feature (Running, Stopped, or Impaired).", + "type": "string", + "enum": [ + "RUNNING", + "STOPPED", + "IMPAIRED" + ], + "markdownDescription": "Current status of the resource tags for telemetry feature (Running, Stopped, or Impaired).\n\n---\n\nRequired: No \nType: String \nAllowed Values: RUNNING | STOPPED | IMPAIRED \nUpdate requires: No interruption\n" + } + }, + "tagging": { + "taggable": false + }, + "properties": { + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Status": { + "$ref": "#/definitions/Status" + } + }, + "additionalProperties": false, + "required": [], + "createOnlyProperties": [ + "/properties/Scope" + ], + "readOnlyProperties": [ + "/properties/Status" + ], + "primaryIdentifier": [ + "/properties/Scope" + ], + "handlers": { + "create": { + "permissions": [ + "observabilityadmin:StartTelemetryEnrichment", + "observabilityadmin:GetTelemetryEnrichmentStatus", + "iam:CreateServiceLinkedRole", + "resource-explorer-2:CreateManagedView", + "resource-explorer-2:CreateStreamingAccessForService", + "resource-explorer-2:CreateIndex", + "resource-explorer-2:DeleteStreamingAccessForService" + ] + }, + "read": { + "permissions": [ + "observabilityadmin:GetTelemetryEnrichmentStatus" + ] + }, + "update": { + "permissions": [ + "observabilityadmin:StartTelemetryEnrichment", + "observabilityadmin:GetTelemetryEnrichmentStatus", + "iam:CreateServiceLinkedRole", + "resource-explorer-2:CreateManagedView", + "resource-explorer-2:CreateStreamingAccessForService", + "resource-explorer-2:CreateIndex", + "resource-explorer-2:DeleteStreamingAccessForService" + ] + }, + "delete": { + "permissions": [ + "observabilityadmin:StopTelemetryEnrichment", + "observabilityadmin:GetTelemetryEnrichmentStatus", + "resource-explorer-2:CreateManagedView", + "resource-explorer-2:CreateStreamingAccessForService", + "resource-explorer-2:CreateIndex", + "resource-explorer-2:DeleteStreamingAccessForService" + ] + }, + "list": { + "permissions": [ + "observabilityadmin:GetTelemetryEnrichmentStatus" + ] + } + }, + "attributes": { + "Status": { + "$ref": "#/definitions/Status" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-observabilityadmin-telemetrypipelines.json b/server/schema/resources/aws-observabilityadmin-telemetrypipelines.json new file mode 100644 index 00000000..73ec761b --- /dev/null +++ b/server/schema/resources/aws-observabilityadmin-telemetrypipelines.json @@ -0,0 +1,262 @@ +{ + "typeName": "AWS::ObservabilityAdmin::TelemetryPipelines", + "description": "Resource Type definition for AWS::ObservabilityAdmin::TelemetryPipelines", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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 -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TelemetryPipeline": { + "type": "object", + "properties": { + "CreatedTimeStamp": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "LastUpdateTimeStamp": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 1011, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "maxLength": 28, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 28 \nPattern: [a-z][a-z0-9\\-]+ \nUpdate requires: No interruption\n" + }, + "Configuration": { + "$ref": "#/definitions/TelemetryPipelineConfiguration" + }, + "Status": { + "$ref": "#/definitions/TelemetryPipelineStatus" + }, + "StatusReason": { + "$ref": "#/definitions/TelemetryPipelineStatusReason" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TelemetryPipelineConfiguration": { + "type": "object", + "properties": { + "Body": { + "type": "string", + "maxLength": 24000, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 24000 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Body" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TelemetryPipelineStatus": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "UPDATE_FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\n" + }, + "TelemetryPipelineStatusReason": { + "type": "object", + "properties": { + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Unit": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 1011, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Configuration": { + "$ref": "#/definitions/TelemetryPipelineConfiguration" + }, + "Name": { + "type": "string", + "maxLength": 28, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 28 \nPattern: [a-z][a-z0-9\\-]+ \nUpdate requires: Replacement\n" + }, + "Pipeline": { + "$ref": "#/definitions/TelemetryPipeline" + }, + "PipelineIdentifier": { + "type": "string", + "maxLength": 512, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/TelemetryPipelineStatus" + }, + "StatusReason": { + "$ref": "#/definitions/TelemetryPipelineStatusReason" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Configuration" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Pipeline", + "/properties/PipelineIdentifier", + "/properties/Status", + "/properties/StatusReason" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/PipelineIdentifier" + ], + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "logs:PutPipelineRule", + "observabilityadmin:CreateTelemetryPipeline", + "observabilityadmin:GetTelemetryPipeline", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource" + ] + }, + "read": { + "permissions": [ + "observabilityadmin:GetTelemetryPipeline", + "observabilityadmin:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "logs:DeletePipelineRule", + "logs:PutPipelineRule", + "observabilityadmin:GetTelemetryPipeline", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource", + "observabilityadmin:UpdateTelemetryPipeline" + ] + }, + "delete": { + "permissions": [ + "logs:DeletePipelineRule", + "observabilityadmin:DeleteTelemetryPipeline", + "observabilityadmin:GetTelemetryPipeline" + ] + }, + "list": { + "permissions": [ + "observabilityadmin:ListTagsForResource", + "observabilityadmin:ListTelemetryPipelines" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "additionalProperties": false, + "attributes": { + "Arn": { + "type": "string", + "maxLength": 1011, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Pipeline": { + "$ref": "#/definitions/TelemetryPipeline" + }, + "PipelineIdentifier": { + "type": "string", + "maxLength": 512, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/TelemetryPipelineStatus" + }, + "StatusReason": { + "$ref": "#/definitions/TelemetryPipelineStatusReason" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-observabilityadmin-telemetryrule.json b/server/schema/resources/aws-observabilityadmin-telemetryrule.json index 22960a58..4dbd3bde 100644 --- a/server/schema/resources/aws-observabilityadmin-telemetryrule.json +++ b/server/schema/resources/aws-observabilityadmin-telemetryrule.json @@ -19,17 +19,27 @@ "description": "Resource Type associated with the Telemetry Rule", "type": "string", "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::VPC", + "AWS::WAFv2::WebACL", + "AWS::CloudTrail", + "AWS::EKS::Cluster", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::EC2::Instance", + "AWS::BedrockAgentCore::Runtime", + "AWS::BedrockAgentCore::Browser", + "AWS::BedrockAgentCore::CodeInterpreter" ], - "markdownDescription": "Resource Type associated with the Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: AWS::EC2::VPC \nUpdate requires: No interruption\n" + "markdownDescription": "Resource Type associated with the Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: AWS::EC2::VPC | AWS::WAFv2::WebACL | AWS::CloudTrail | AWS::EKS::Cluster | AWS::ElasticLoadBalancingV2::LoadBalancer | AWS::EC2::Instance | AWS::BedrockAgentCore::Runtime | AWS::BedrockAgentCore::Browser | AWS::BedrockAgentCore::CodeInterpreter \nUpdate requires: No interruption\n" }, "TelemetryType": { "description": "Telemetry Type associated with the Telemetry Rule", "type": "string", "enum": [ - "Logs" + "Logs", + "Traces", + "Metrics" ], - "markdownDescription": "Telemetry Type associated with the Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: Logs \nUpdate requires: No interruption\n" + "markdownDescription": "Telemetry Type associated with the Telemetry Rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: Logs | Traces | Metrics \nUpdate requires: No interruption\n" }, "Scope": { "description": "Selection Criteria on scope level for rule application", @@ -83,6 +93,91 @@ "additionalProperties": false, "markdownDescription": "Telemetry parameters for VPC Flow logs\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "WAFLoggingParameters": { + "description": "Telemetry parameters for WAF v2 Web ACL", + "type": "object", + "properties": { + "RedactedFields": { + "description": "Fields not to be included in the logs.", + "$ref": "#/definitions/RedactedFields", + "markdownDescription": "Fields not to be included in the logs.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "LoggingFilter": { + "$ref": "#/definitions/LoggingFilter" + }, + "LogType": { + "$ref": "#/definitions/WAFLogType" + } + }, + "markdownDescription": "Telemetry parameters for WAF v2 Web ACL\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudtrailParameters": { + "description": "Telemetry parameters for Cloudtrail", + "type": "object", + "properties": { + "AdvancedEventSelectors": { + "description": "Create fine-grained selectors for AWS CloudTrail management and data.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AdvancedEventSelector" + }, + "markdownDescription": "Create fine-grained selectors for AWS CloudTrail management and data.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AdvancedEventSelectors" + ], + "additionalProperties": false, + "markdownDescription": "Telemetry parameters for Cloudtrail\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdvancedEventSelector": { + "description": "An advanced event selector that includes optional name and field selectors", + "type": "object", + "properties": { + "Name": { + "description": "An optional descriptive name for the advanced event selector", + "type": "string", + "markdownDescription": "An optional descriptive name for the advanced event selector\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "FieldSelectors": { + "description": "Contains all selector statements in an advanced event selector.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AdvancedFieldSelector" + }, + "markdownDescription": "Contains all selector statements in an advanced event selector.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FieldSelectors" + ], + "additionalProperties": false, + "markdownDescription": "An advanced event selector that includes optional name and field selectors\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ELBLoadBalancerLoggingParameters": { + "description": "Telemetry parameters for ELB/NLB Load Balancer Logs", + "type": "object", + "properties": { + "OutputFormat": { + "type": "string", + "enum": [ + "plain", + "json" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: plain | json \nUpdate requires: No interruption\n" + }, + "FieldDelimiter": { + "description": "A delimiter to delineate log fields", + "type": "string", + "markdownDescription": "A delimiter to delineate log fields\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Telemetry parameters for ELB/NLB Load Balancer Logs\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TelemetryDestinationConfiguration": { "description": "The destination configuration for telemetry data", "type": "object", @@ -98,6 +193,38 @@ }, "VPCFlowLogParameters": { "$ref": "#/definitions/VPCFlowLogParameters" + }, + "CloudtrailParameters": { + "$ref": "#/definitions/CloudtrailParameters" + }, + "ELBLoadBalancerLoggingParameters": { + "$ref": "#/definitions/ELBLoadBalancerLoggingParameters" + }, + "WAFLoggingParameters": { + "$ref": "#/definitions/WAFLoggingParameters" + }, + "LogDeliveryParameters": { + "description": "Parameters for BedrockAgentCore log delivery", + "type": "object", + "properties": { + "LogTypes": { + "description": "Types of logs to deliver for BedrockAgentCore resources", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "APPLICATION_LOGS", + "USAGE_LOGS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: APPLICATION_LOGS | USAGE_LOGS \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Types of logs to deliver for BedrockAgentCore resources\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Parameters for BedrockAgentCore log delivery\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [], @@ -114,6 +241,9 @@ "TelemetryType": { "$ref": "#/definitions/TelemetryType" }, + "TelemetrySourceTypes": { + "$ref": "#/definitions/TelemetrySourceTypes" + }, "DestinationConfiguration": { "$ref": "#/definitions/TelemetryDestinationConfiguration" }, @@ -153,6 +283,291 @@ ], "additionalProperties": false, "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AdvancedFieldSelector": { + "description": "A single selector statement in an advanced event selector.", + "type": "object", + "properties": { + "Field": { + "description": "A field in a CloudTrail event record on which to filter events to be logged", + "type": "string", + "minLength": 1, + "maxLength": 1000, + "markdownDescription": "A field in a CloudTrail event record on which to filter events to be logged\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "EndsWith": { + "description": "An operator that includes events that match the last few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that includes events that match the last few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Equals": { + "description": "An operator that includes events that match the exact value of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that includes events that match the exact value of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NotEndsWith": { + "description": "An operator that excludes events that match the last few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that excludes events that match the last few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NotEquals": { + "description": "An operator that excludes events that match the exact value of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that excludes events that match the exact value of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NotStartsWith": { + "description": "An operator that excludes events that match the first few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that excludes events that match the first few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "StartsWith": { + "description": "An operator that includes events that match the first few characters of the event record field specified as the value of Field.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An operator that includes events that match the first few characters of the event record field specified as the value of Field.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A single selector statement in an advanced event selector.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RedactedFields": { + "description": "Fields not to be included in the logs.", + "type": "array", + "maxItems": 100, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FieldToMatch" + }, + "markdownDescription": "Fields not to be included in the logs.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "FieldToMatch": { + "description": "The field that we want to match this rule to.", + "type": "object", + "properties": { + "SingleHeader": { + "$ref": "#/definitions/SingleHeader" + }, + "UriPath": { + "description": "This is the URI path to match this rule to.", + "type": "string", + "markdownDescription": "This is the URI path to match this rule to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "QueryString": { + "description": "The query string to find the resource to match this field to.", + "type": "string", + "markdownDescription": "The query string to find the resource to match this field to.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Method": { + "description": "The method with which to match this rule.", + "type": "string", + "markdownDescription": "The method with which to match this rule.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The field that we want to match this rule to.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SingleHeader": { + "description": "Header for the field to match.", + "type": "object", + "properties": { + "Name": { + "description": "The name of the header", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the header\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "Header for the field to match.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LoggingFilter": { + "description": "Default handling for logs that don't match any of the specified filtering conditions.", + "type": "object", + "properties": { + "Filters": { + "$ref": "#/definitions/Filters" + }, + "DefaultBehavior": { + "$ref": "#/definitions/FilterBehavior" + } + }, + "markdownDescription": "Default handling for logs that don't match any of the specified filtering conditions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Filters": { + "description": "A list of filters to be applied.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minLength": 1, + "items": { + "$ref": "#/definitions/Filter" + }, + "markdownDescription": "A list of filters to be applied.\n\n---\n\nRequired: No \nType: Array \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Filter": { + "description": "A filter to be applied", + "type": "object", + "properties": { + "Behavior": { + "$ref": "#/definitions/FilterBehavior" + }, + "Requirement": { + "$ref": "#/definitions/FilterRequirement" + }, + "Conditions": { + "$ref": "#/definitions/Conditions" + } + }, + "markdownDescription": "A filter to be applied\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FilterBehavior": { + "description": "The behavior required of the filter.", + "type": "string", + "enum": [ + "KEEP", + "DROP" + ], + "markdownDescription": "The behavior required of the filter.\n\n---\n\nRequired: No \nType: String \nAllowed Values: KEEP | DROP \nUpdate requires: No interruption\n" + }, + "FilterRequirement": { + "description": "The requirement portion of the filter.", + "type": "string", + "enum": [ + "MEETS_ALL", + "MEETS_ANY" + ], + "markdownDescription": "The requirement portion of the filter.\n\n---\n\nRequired: No \nType: String \nAllowed Values: MEETS_ALL | MEETS_ANY \nUpdate requires: No interruption\n" + }, + "Conditions": { + "description": "A list of conditions for a filter.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minLength": 1, + "items": { + "$ref": "#/definitions/Condition" + }, + "markdownDescription": "A list of conditions for a filter.\n\n---\n\nRequired: No \nType: Array \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Condition": { + "description": "A condition for a filter.", + "type": "object", + "properties": { + "ActionCondition": { + "$ref": "#/definitions/ActionCondition" + }, + "LabelNameCondition": { + "$ref": "#/definitions/LabelNameCondition" + } + }, + "markdownDescription": "A condition for a filter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ActionCondition": { + "description": "The condition of the action desired in the filter.", + "type": "object", + "properties": { + "Action": { + "$ref": "#/definitions/Action" + } + }, + "markdownDescription": "The condition of the action desired in the filter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Action": { + "description": "The enumerated action to take.", + "type": "string", + "enum": [ + "ALLOW", + "BLOCK", + "COUNT", + "CAPTCHA", + "CHALLENGE", + "EXCLUDED_AS_COUNT" + ], + "markdownDescription": "The enumerated action to take.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOW | BLOCK | COUNT | CAPTCHA | CHALLENGE | EXCLUDED_AS_COUNT \nUpdate requires: No interruption\n" + }, + "LabelNameCondition": { + "description": "The label name of the condition.", + "type": "object", + "properties": { + "LabelName": { + "description": "The label name of the condition.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "The label name of the condition.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^[0-9A-Za-z_\\-:]+$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The label name of the condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WAFLogType": { + "description": "The type of logs to generate for WAF.", + "type": "string", + "enum": [ + "WAF_LOGS" + ], + "markdownDescription": "The type of logs to generate for WAF.\n\n---\n\nRequired: No \nType: String \nAllowed Values: WAF_LOGS \nUpdate requires: No interruption\n" + }, + "TelemetrySourceTypes": { + "description": "The telemetry source types for a telemetry rule.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TelemetrySourceType" + }, + "markdownDescription": "The telemetry source types for a telemetry rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TelemetrySourceType": { + "description": "The telemetry source type that goes into the array.", + "type": "string", + "enum": [ + "VPC_FLOW_LOGS", + "ROUTE53_RESOLVER_QUERY_LOGS", + "EKS_AUDIT_LOGS", + "EKS_AUTHENTICATOR_LOGS", + "EKS_CONTROLLER_MANAGER_LOGS", + "EKS_SCHEDULER_LOGS", + "EKS_API_LOGS" + ], + "markdownDescription": "The telemetry source type that goes into the array.\n\n---\n\nRequired: No \nType: String \nAllowed Values: VPC_FLOW_LOGS | ROUTE53_RESOLVER_QUERY_LOGS | EKS_AUDIT_LOGS | EKS_AUTHENTICATOR_LOGS | EKS_CONTROLLER_MANAGER_LOGS | EKS_SCHEDULER_LOGS | EKS_API_LOGS \nUpdate requires: No interruption\n" } }, "properties": { @@ -206,7 +621,8 @@ "observabilityadmin:TagResource", "observabilityadmin:ListTagsForResource", "observabilityadmin:GetTelemetryEvaluationStatus", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "xray:GetTraceSegmentDestination" ] }, "read": { @@ -223,7 +639,8 @@ "observabilityadmin:TagResource", "observabilityadmin:UntagResource", "observabilityadmin:ListTagsForResource", - "observabilityadmin:GetTelemetryEvaluationStatus" + "observabilityadmin:GetTelemetryEvaluationStatus", + "xray:GetTraceSegmentDestination" ] }, "delete": { diff --git a/server/schema/resources/aws-odb-cloudautonomousvmcluster.json b/server/schema/resources/aws-odb-cloudautonomousvmcluster.json index e9fc42d3..5c03b5ae 100644 --- a/server/schema/resources/aws-odb-cloudautonomousvmcluster.json +++ b/server/schema/resources/aws-odb-cloudautonomousvmcluster.json @@ -113,6 +113,29 @@ "Key" ], "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IamRole": { + "description": "An AWS Identity and Access Management (IAM) service role associated with the Autonomous VM cluster.", + "type": "object", + "additionalProperties": false, + "properties": { + "AwsIntegration": { + "description": "The AWS integration configuration settings for the AWS Identity and Access Management (IAM) service role.", + "type": "string", + "markdownDescription": "The AWS integration configuration settings for the AWS Identity and Access Management (IAM) service role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IamRoleArn": { + "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) service role.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) service role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The current status of the AWS Identity and Access Management (IAM) service role.", + "type": "string", + "markdownDescription": "The current status of the AWS Identity and Access Management (IAM) service role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An AWS Identity and Access Management (IAM) service role associated with the Autonomous VM cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -361,6 +384,16 @@ "type": "integer", "description": "The total number of Autonomous Container Databases that can be created with the allocated local storage.", "markdownDescription": "The total number of Autonomous Container Databases that can be created with the allocated local storage.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "IamRoles": { + "type": "array", + "description": "The AWS Identity and Access Management (IAM) service roles associated with the Autonomous VM cluster.", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/IamRole" + }, + "markdownDescription": "The AWS Identity and Access Management (IAM) service roles associated with the Autonomous VM cluster.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -409,7 +442,8 @@ "/properties/ProvisionedCpus", "/properties/ReclaimableCpus", "/properties/ReservedCpus", - "/properties/Shape" + "/properties/Shape", + "/properties/IamRoles/*/Status" ], "primaryIdentifier": [ "/properties/CloudAutonomousVmClusterArn" @@ -423,11 +457,13 @@ "permissions": [ "ec2:DescribeAvailabilityZones", "iam:CreateServiceLinkedRole", + "iam:PassRole", "odb:CreateCloudAutonomousVmCluster", "odb:GetCloudAutonomousVmCluster", "odb:ListCloudAutonomousVmClusters", "odb:ListTagsForResource", "odb:TagResource", + "odb:AssociateIamRoleToResource", "sts:GetCallerIdentity" ], "timeoutInMinutes": 2160 @@ -441,11 +477,14 @@ }, "update": { "permissions": [ + "iam:PassRole", "odb:TagResource", "odb:UntagResource", "odb:GetCloudAutonomousVmCluster", "odb:ListCloudAutonomousVmClusters", "odb:ListTagsForResource", + "odb:AssociateIamRoleToResource", + "odb:DisassociateIamRoleFromResource", "sts:GetCallerIdentity" ] }, diff --git a/server/schema/resources/aws-odb-cloudvmcluster.json b/server/schema/resources/aws-odb-cloudvmcluster.json index f02e7b99..731885da 100644 --- a/server/schema/resources/aws-odb-cloudvmcluster.json +++ b/server/schema/resources/aws-odb-cloudvmcluster.json @@ -144,6 +144,29 @@ "DbServerId" ], "markdownDescription": "A DbNode is a virtual machine that hosts Oracle database instances and provides access to shared storage servers within a VM Cluster\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IamRole": { + "description": "An AWS Identity and Access Management (IAM) service role associated with the VM cluster.", + "type": "object", + "additionalProperties": false, + "properties": { + "AwsIntegration": { + "description": "The AWS integration configuration settings for the AWS Identity and Access Management (IAM) service role.", + "type": "string", + "markdownDescription": "The AWS integration configuration settings for the AWS Identity and Access Management (IAM) service role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IamRoleArn": { + "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) service role.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) service role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The current status of the AWS Identity and Access Management (IAM) service role.", + "type": "string", + "markdownDescription": "The current status of the AWS Identity and Access Management (IAM) service role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An AWS Identity and Access Management (IAM) service role associated with the VM cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -377,6 +400,16 @@ "$ref": "#/definitions/DbNode" }, "markdownDescription": "The DB nodes that are implicitly created and managed as part of this VM Cluster.\n\n---\n\nRequired: No \nType: Array \nMinimum Length: 1 \nUpdate requires: Some interruptions\n" + }, + "IamRoles": { + "type": "array", + "description": "The AWS Identity and Access Management (IAM) service roles associated with the VM cluster.", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/IamRole" + }, + "markdownDescription": "The AWS Identity and Access Management (IAM) service roles associated with the VM cluster.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -434,7 +467,8 @@ "/properties/DbNodes/*/BackupVnic2Id", "/properties/DbNodes/*/VnicId", "/properties/DbNodes/*/Vnic2Id", - "/properties/DbNodes/*/HostIpId" + "/properties/DbNodes/*/HostIpId", + "/properties/IamRoles/*/Status" ], "writeOnlyProperties": [ "/properties/ScanListenerPortTcp" @@ -449,6 +483,8 @@ "handlers": { "create": { "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", "odb:CreateCloudVmCluster", "odb:TagResource", "odb:GetCloudVmCluster", @@ -458,7 +494,8 @@ "ec2:DescribeAvailabilityZones", "odb:ListDbNodes", "odb:GetDbNode", - "odb:CreateDbNode" + "odb:CreateDbNode", + "odb:AssociateIamRoleToResource" ], "timeoutInMinutes": 2160 }, @@ -473,6 +510,7 @@ }, "update": { "permissions": [ + "iam:PassRole", "odb:TagResource", "odb:UntagResource", "odb:GetCloudVmCluster", @@ -480,7 +518,9 @@ "odb:ListTagsForResource", "odb:ListDbNodes", "odb:GetDbNode", - "sts:GetCallerIdentity" + "sts:GetCallerIdentity", + "odb:AssociateIamRoleToResource", + "odb:DisassociateIamRoleFromResource" ] }, "delete": { diff --git a/server/schema/resources/aws-odb-odbnetwork.json b/server/schema/resources/aws-odb-odbnetwork.json index 106fd0d0..ef8f8025 100644 --- a/server/schema/resources/aws-odb-odbnetwork.json +++ b/server/schema/resources/aws-odb-odbnetwork.json @@ -38,6 +38,35 @@ ], "markdownDescription": "The status of the managed resource access.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | ENABLING | DISABLED | DISABLING \nUpdate requires: No interruption\n" }, + "CrossRegionS3RestoreSourcesAccess": { + "type": "object", + "description": "The configuration access for the cross-Region Amazon S3 database restore source for the ODB network.", + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/ManagedResourceStatus", + "description": "The current status of the cross-Region Amazon S3 restore access configuration.", + "markdownDescription": "The current status of the cross-Region Amazon S3 restore access configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Ipv4Addresses": { + "type": "array", + "description": "The IPv4 addresses allowed for cross-Region Amazon S3 restore access.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The IPv4 addresses allowed for cross-Region Amazon S3 restore access.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Region": { + "type": "string", + "description": "The AWS-Region for cross-Region Amazon S3 restore access.", + "markdownDescription": "The AWS-Region for cross-Region Amazon S3 restore access.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The configuration access for the cross-Region Amazon S3 database restore source for the ODB network.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ManagedServices": { "description": "The managed services configuration for the ODB network.", "type": "object", @@ -160,6 +189,84 @@ } }, "markdownDescription": "The Amazon S3 access configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KmsAccess": { + "type": "object", + "description": "The AWS Key Management Service (KMS) access configuration.", + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/ManagedResourceStatus", + "description": "The status of the AWS KMS access.", + "markdownDescription": "The status of the AWS KMS access.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Ipv4Addresses": { + "type": "array", + "description": "The IPv4 addresses for the AWS KMS access.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The IPv4 addresses for the AWS KMS access.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "description": "The domain name for the AWS KMS access.", + "markdownDescription": "The domain name for the AWS KMS access.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "KmsPolicyDocument": { + "type": "string", + "description": "The endpoint policy for the AWS KMS access.", + "markdownDescription": "The endpoint policy for the AWS KMS access.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The AWS Key Management Service (KMS) access configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StsAccess": { + "type": "object", + "description": "The AWS Security Token Service (STS) access configuration.", + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/ManagedResourceStatus", + "description": "The status of the AWS STS access.", + "markdownDescription": "The status of the AWS STS access.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Ipv4Addresses": { + "type": "array", + "description": "The IPv4 addresses for the AWS STS access.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The IPv4 addresses for the AWS STS access.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "description": "The domain name for the AWS STS access.", + "markdownDescription": "The domain name for the AWS STS access.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "StsPolicyDocument": { + "type": "string", + "description": "The endpoint policy for the AWS STS access.", + "markdownDescription": "The endpoint policy for the AWS STS access.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The AWS Security Token Service (STS) access configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CrossRegionS3RestoreSourcesAccess": { + "type": "array", + "description": "The access configuration for the cross-Region Amazon S3 database restore source.", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/CrossRegionS3RestoreSourcesAccess" + }, + "markdownDescription": "The access configuration for the cross-Region Amazon S3 database restore source.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "The managed services configuration for the ODB network.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -261,6 +368,45 @@ "description": "Specifies the endpoint policy for Amazon S3 access from the ODB network.", "markdownDescription": "Specifies the endpoint policy for Amazon S3 access from the ODB network.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "KmsAccess": { + "type": "string", + "description": "The AWS Key Management Service (KMS) access configuration for the ODB network.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "The AWS Key Management Service (KMS) access configuration for the ODB network.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "KmsPolicyDocument": { + "type": "string", + "description": "The AWS Key Management Service (KMS) policy document that defines permissions for key usage within the ODB network.", + "markdownDescription": "The AWS Key Management Service (KMS) policy document that defines permissions for key usage within the ODB network.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "StsAccess": { + "type": "string", + "description": "The AWS Security Token Service (STS) access configuration for the ODB network.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "The AWS Security Token Service (STS) access configuration for the ODB network.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "StsPolicyDocument": { + "type": "string", + "description": "The AWS Security Token Service (STS) policy document that defines permissions for token service usage within the ODB network.", + "markdownDescription": "The AWS Security Token Service (STS) policy document that defines permissions for token service usage within the ODB network.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CrossRegionS3RestoreSources": { + "type": "array", + "description": "The cross-Region Amazon S3 restore sources for the ODB network.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The cross-Region Amazon S3 restore sources for the ODB network.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Tags": { "type": "array", "description": "Tags to assign to the Odb Network.", @@ -306,6 +452,11 @@ "/properties/DefaultDnsPrefix", "/properties/S3Access", "/properties/S3PolicyDocument", + "/properties/KmsAccess", + "/properties/KmsPolicyDocument", + "/properties/StsAccess", + "/properties/StsPolicyDocument", + "/properties/CrossRegionS3RestoreSources", "/properties/ZeroEtlAccess" ], "primaryIdentifier": [ diff --git a/server/schema/resources/aws-odb-odbpeeringconnection.json b/server/schema/resources/aws-odb-odbpeeringconnection.json index 840cf103..a5264af7 100644 --- a/server/schema/resources/aws-odb-odbpeeringconnection.json +++ b/server/schema/resources/aws-odb-odbpeeringconnection.json @@ -29,12 +29,23 @@ } }, "properties": { + "AdditionalPeerNetworkCidrs": { + "description": "The additional CIDR blocks for the ODB peering connection.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The additional CIDR blocks for the ODB peering connection.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "DisplayName": { "description": "The name of the ODB peering connection.", "type": "string", "minLength": 1, "maxLength": 255, - "markdownDescription": "The name of the ODB peering connection.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^[a-zA-Z_](?!.*--)[a-zA-Z0-9_-]*$ \nUpdate requires: Replacement\n" + "markdownDescription": "The name of the ODB peering connection.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^[a-zA-Z_](?!.*--)[a-zA-Z0-9_-]*$ \nUpdate requires: No interruption\n" }, "OdbPeeringConnectionArn": { "description": "The Amazon Resource Name (ARN) of the ODB peering connection.", @@ -63,6 +74,17 @@ "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the peer network.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "PeerNetworkCidrs": { + "description": "The CIDR blocks for the ODB peering connection.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The CIDR blocks for the ODB peering connection.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "PeerNetworkId": { "description": "The unique identifier of the peer network.", "type": "string", @@ -70,6 +92,17 @@ "maxLength": 2048, "markdownDescription": "The unique identifier of the peer network.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 6 \nMaximum Length: 2048 \nPattern: ^(arn:(?:aws|aws-cn|aws-us-gov|aws-iso-{0,1}[a-z]{0,1}):[a-z0-9-]+:[a-z0-9-]*:[0-9]+:[a-z0-9-]+/[a-zA-Z0-9_~.-]{6,64}|[a-zA-Z0-9_~.-]{6,64})$ \nUpdate requires: Replacement\n" }, + "PeerNetworkRouteTableIds": { + "description": "The unique identifier of the VPC route table for which a route to the ODB network is automatically created during peering connection establishment.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The unique identifier of the VPC route table for which a route to the ODB network is automatically created during peering connection establishment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, "Tags": { "type": "array", "description": "Tags to assign to the Odb peering connection.", @@ -89,16 +122,19 @@ "/properties/OdbPeeringConnectionArn", "/properties/OdbPeeringConnectionId", "/properties/OdbNetworkArn", - "/properties/PeerNetworkArn" + "/properties/PeerNetworkArn", + "/properties/PeerNetworkCidrs" ], "createOnlyProperties": [ "/properties/OdbNetworkId", "/properties/PeerNetworkId", - "/properties/DisplayName" + "/properties/PeerNetworkRouteTableIds" ], "writeOnlyProperties": [ "/properties/OdbNetworkId", - "/properties/PeerNetworkId" + "/properties/PeerNetworkId", + "/properties/AdditionalPeerNetworkCidrs", + "/properties/PeerNetworkRouteTableIds" ], "handlers": { "create": { @@ -108,6 +144,9 @@ "iam:CreateServiceLinkedRole", "ec2:DescribeVpcs", "ec2:CreateOdbNetworkPeering", + "ec2:ModifyOdbNetworkPeering", + "ec2:CreateRoute", + "ec2:DescribeRouteTables", "odb:GetOdbPeeringConnection", "odb:ListTagsForResource", "sts:GetCallerIdentity" @@ -121,10 +160,14 @@ }, "update": { "permissions": [ + "odb:UpdateOdbPeeringConnection", "odb:GetOdbPeeringConnection", "odb:TagResource", "odb:UntagResource", - "odb:ListTagsForResource" + "odb:ListTagsForResource", + "ec2:DescribeVpcs", + "ec2:ModifyOdbNetworkPeering", + "sts:GetCallerIdentity" ] }, "delete": { @@ -132,6 +175,8 @@ "odb:DeleteOdbPeeringConnection", "ec2:DescribeVpcs", "ec2:DeleteOdbNetworkPeering", + "ec2:DeleteRoute", + "ec2:DescribeRouteTables", "odb:GetOdbPeeringConnection", "odb:UntagResource", "odb:ListTagsForResource", @@ -178,6 +223,17 @@ "description": "The Amazon Resource Name (ARN) of the peer network.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the peer network.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PeerNetworkCidrs": { + "description": "The CIDR blocks for the ODB peering connection.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The CIDR blocks for the ODB peering connection.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-omics-configuration.json b/server/schema/resources/aws-omics-configuration.json new file mode 100644 index 00000000..edef74f7 --- /dev/null +++ b/server/schema/resources/aws-omics-configuration.json @@ -0,0 +1,209 @@ +{ + "typeName": "AWS::Omics::Configuration", + "description": "Resource schema for AWS::Omics::Configuration", + "definitions": { + "TagMap": { + "type": "object", + "description": "A map of resource tags", + "patternProperties": { + ".+": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "description": "Resource tag value", + "markdownDescription": "Resource tag value\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A map of resource tags\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RunConfigurations": { + "type": "object", + "properties": { + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "type": "object", + "properties": { + "SecurityGroupIds": { + "type": "array", + "maxItems": 5, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-f]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "type": "array", + "maxItems": 16, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-f]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "description": "User-friendly name for the configuration.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "User-friendly name for the configuration.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[A-Za-z0-9][A-Za-z0-9\\-\\._]*$ \nUpdate requires: Replacement\n" + }, + "Description": { + "description": "Optional description for the configuration.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "Optional description for the configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$ \nUpdate requires: No interruption\n" + }, + "RunConfigurations": { + "description": "Required run-specific configurations.", + "$ref": "#/definitions/RunConfigurations", + "markdownDescription": "Required run-specific configurations.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "Tags for the configuration.", + "$ref": "#/definitions/TagMap", + "markdownDescription": "Tags for the configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "Unique resource identifier for the configuration.", + "type": "string", + "minLength": 1, + "maxLength": 190, + "markdownDescription": "Unique resource identifier for the configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 190 \nPattern: ^arn:.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Uuid": { + "description": "Unique identifier for the configuration.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "Unique identifier for the configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "description": "Current configuration status.", + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED" + ], + "markdownDescription": "Current configuration status.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | DELETED | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreationTime": { + "description": "Configuration creation timestamp.", + "type": "string", + "format": "date-time", + "markdownDescription": "Configuration creation timestamp.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "RunConfigurations" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Uuid", + "/properties/Status", + "/properties/CreationTime" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/RunConfigurations" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "omics:TagResource", + "omics:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "omics:CreateConfiguration", + "omics:GetConfiguration", + "omics:TagResource", + "iam:CreateServiceLinkedRole", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "omics:GetConfiguration", + "omics:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "omics:DeleteConfiguration", + "omics:GetConfiguration" + ] + }, + "list": { + "permissions": [ + "omics:ListConfigurations" + ] + } + }, + "attributes": { + "Arn": { + "description": "Unique resource identifier for the configuration.", + "type": "string", + "minLength": 1, + "maxLength": 190, + "markdownDescription": "Unique resource identifier for the configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 190 \nPattern: ^arn:.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Uuid": { + "description": "Unique identifier for the configuration.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "Unique identifier for the configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "description": "Current configuration status.", + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED" + ], + "markdownDescription": "Current configuration status.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | DELETED | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreationTime": { + "description": "Configuration creation timestamp.", + "type": "string", + "format": "date-time", + "markdownDescription": "Configuration creation timestamp.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-omics-workflow.json b/server/schema/resources/aws-omics-workflow.json index 3adad520..5420d62e 100644 --- a/server/schema/resources/aws-omics-workflow.json +++ b/server/schema/resources/aws-omics-workflow.json @@ -400,7 +400,8 @@ "kms:GenerateDataKeyWithoutPlaintext", "codeconnections:UseConnection", "codeconnections:GetConnection", - "codeconnections:GetHost" + "codeconnections:GetHost", + "codeconnections:PassConnection" ] }, "read": { diff --git a/server/schema/resources/aws-omics-workflowversion.json b/server/schema/resources/aws-omics-workflowversion.json index 776cfff5..93a6b112 100644 --- a/server/schema/resources/aws-omics-workflowversion.json +++ b/server/schema/resources/aws-omics-workflowversion.json @@ -409,7 +409,8 @@ "kms:GenerateDataKeyWithoutPlaintext", "codeconnections:UseConnection", "codeconnections:GetConnection", - "codeconnections:GetHost" + "codeconnections:GetHost", + "codeconnections:PassConnection" ] }, "read": { diff --git a/server/schema/resources/aws-opensearchserverless-collection.json b/server/schema/resources/aws-opensearchserverless-collection.json index 43aecb0b..1b90cbca 100644 --- a/server/schema/resources/aws-opensearchserverless-collection.json +++ b/server/schema/resources/aws-opensearchserverless-collection.json @@ -53,6 +53,60 @@ "DISABLED" ], "markdownDescription": "The possible standby replicas for the collection\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "ServerlessVectorAcceleration": { + "type": "string", + "description": "Indicates whether GPU acceleration is enabled for vector indexing", + "enum": [ + "ENABLED", + "DISABLED", + "ALLOWED" + ], + "markdownDescription": "Indicates whether GPU acceleration is enabled for vector indexing\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED | ALLOWED \nUpdate requires: No interruption\n" + }, + "VectorOptions": { + "type": "object", + "description": "Vector search configuration options for the collection", + "properties": { + "ServerlessVectorAcceleration": { + "$ref": "#/definitions/ServerlessVectorAcceleration" + } + }, + "additionalProperties": false, + "markdownDescription": "Vector search configuration options for the collection\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, + "EncryptionConfig": { + "type": "object", + "description": "Encryption settings for the collection", + "properties": { + "AWSOwnedKey": { + "type": "boolean", + "description": "Indicates whether to use an AWS owned key for encryption.", + "markdownDescription": "Indicates whether to use an AWS owned key for encryption.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "type": "string", + "description": "Key Management Service key used to encrypt the collection.", + "markdownDescription": "Key Management Service key used to encrypt the collection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Encryption settings for the collection\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FipsEndpoints": { + "type": "object", + "properties": { + "CollectionEndpoint": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DashboardEndpoint": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -71,10 +125,10 @@ }, "Name": { "type": "string", - "maxLength": 32, + "maxLength": 64, "minLength": 3, - "description": "The name of the collection.\n\nThe name must meet the following criteria:\nUnique to your account and AWS Region\nStarts with a lowercase letter\nContains only lowercase letters a-z, the numbers 0-9 and the hyphen (-)\nContains between 3 and 32 characters\n", - "markdownDescription": "The name of the collection.\n\nThe name must meet the following criteria:\nUnique to your account and AWS Region\nStarts with a lowercase letter\nContains only lowercase letters a-z, the numbers 0-9 and the hyphen (-)\nContains between 3 and 32 characters\n\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 32 \nPattern: ^[a-z][a-z0-9-]{2,31}$ \nUpdate requires: Replacement\n" + "description": "The name of the collection.\n\nThe name must meet the following criteria:\nUnique to your account and AWS Region\nStarts with a lowercase letter\nContains only lowercase letters a-z, the numbers 0-9 and the hyphen (-)\nContains between 3 and 64 characters\n", + "markdownDescription": "The name of the collection.\n\nThe name must meet the following criteria:\nUnique to your account and AWS Region\nStarts with a lowercase letter\nContains only lowercase letters a-z, the numbers 0-9 and the hyphen (-)\nContains between 3 and 64 characters\n\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 64 \nPattern: ^[a-z][a-z0-9-]{2,63}$ \nUpdate requires: Replacement\n" }, "Tags": { "type": "array", @@ -107,6 +161,25 @@ }, "StandbyReplicas": { "$ref": "#/definitions/StandbyReplicas" + }, + "CollectionGroupName": { + "type": "string", + "description": "The name of the collection group to associate with the collection.", + "markdownDescription": "The name of the collection group to associate with the collection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "EncryptionConfig": { + "$ref": "#/definitions/EncryptionConfig" + }, + "VectorOptions": { + "$ref": "#/definitions/VectorOptions" + }, + "KmsKeyArn": { + "type": "string", + "description": "Key Management Service key used to encrypt the collection.", + "markdownDescription": "Key Management Service key used to encrypt the collection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FipsEndpoints": { + "$ref": "#/definitions/FipsEndpoints" } }, "required": [ @@ -116,15 +189,23 @@ "/properties/Id", "/properties/Arn", "/properties/CollectionEndpoint", - "/properties/DashboardEndpoint" + "/properties/DashboardEndpoint", + "/properties/FipsEndpoints", + "/properties/KmsKeyArn" ], "writeOnlyProperties": [ - "/properties/Tags" + "/properties/Tags", + "/properties/EncryptionConfig" ], "createOnlyProperties": [ "/properties/Name", "/properties/Tags", - "/properties/Type" + "/properties/Type", + "/properties/StandbyReplicas", + "/properties/CollectionGroupName", + "/properties/EncryptionConfig", + "/properties/VectorOptions", + "/properties/VectorOptions/ServerlessVectorAcceleration" ], "primaryIdentifier": [ "/properties/Id" @@ -142,7 +223,10 @@ "permissions": [ "aoss:CreateCollection", "aoss:BatchGetCollection", - "iam:CreateServiceLinkedRole" + "aoss:AddCollectionToCollectionGroup", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey" ] }, "delete": { @@ -191,6 +275,14 @@ "description": "The OpenSearch Dashboards endpoint for the collection.", "type": "string", "markdownDescription": "The OpenSearch Dashboards endpoint for the collection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "KmsKeyArn": { + "type": "string", + "description": "Key Management Service key used to encrypt the collection.", + "markdownDescription": "Key Management Service key used to encrypt the collection.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FipsEndpoints": { + "$ref": "#/definitions/FipsEndpoints" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-opensearchserverless-collectiongroup.json b/server/schema/resources/aws-opensearchserverless-collectiongroup.json new file mode 100644 index 00000000..4ba94652 --- /dev/null +++ b/server/schema/resources/aws-opensearchserverless-collectiongroup.json @@ -0,0 +1,197 @@ +{ + "typeName": "AWS::OpenSearchServerless::CollectionGroup", + "description": "Resource Type definition for AWS::OpenSearchServerless::CollectionGroup", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-opensearchserverless", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aoss:TagResource", + "aoss:UntagResource", + "aoss:ListTagsForResource" + ] + }, + "definitions": { + "CapacityLimits": { + "type": "object", + "properties": { + "MaxSearchCapacityInOcu": { + "type": "number", + "multipleOf": 0.5, + "description": "The maximum search capacity for collections in the group.", + "markdownDescription": "The maximum search capacity for collections in the group.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "MaxIndexingCapacityInOcu": { + "type": "number", + "multipleOf": 0.5, + "description": "The maximum indexing capacity for collections in the group.", + "markdownDescription": "The maximum indexing capacity for collections in the group.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "MinSearchCapacityInOcu": { + "type": "number", + "multipleOf": 0.5, + "description": "The minimum search capacity for collections in the group.", + "markdownDescription": "The minimum search capacity for collections in the group.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "MinIndexingCapacityInOcu": { + "type": "number", + "multipleOf": 0.5, + "description": "The minimum indexing capacity for collections in the group.", + "markdownDescription": "The minimum indexing capacity for collections in the group.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A map of key-value pairs associated with the collection group.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key in the key-value pair", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key in the key-value pair\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value in the key-value pair", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value in the key-value pair\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A map of key-value pairs associated with the collection group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "type": "string", + "maxLength": 32, + "minLength": 3, + "description": "The name of the collection group.", + "markdownDescription": "The name of the collection group.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 32 \nPattern: ^[a-z][a-z0-9-]{2,31}$ \nUpdate requires: Replacement\n" + }, + "Id": { + "type": "string", + "maxLength": 40, + "minLength": 3, + "description": "The unique identifier of the collection group.", + "markdownDescription": "The unique identifier of the collection group.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 40 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the collection group.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the collection group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "type": "string", + "maxLength": 1000, + "description": "The description of the collection group.", + "markdownDescription": "The description of the collection group.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1000 \nUpdate requires: No interruption\n" + }, + "StandbyReplicas": { + "type": "string", + "description": "Indicates whether standby replicas are used for the collection group.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "Indicates whether standby replicas are used for the collection group.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: Replacement\n" + }, + "CapacityLimits": { + "$ref": "#/definitions/CapacityLimits" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "StandbyReplicas" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/StandbyReplicas" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "additionalIdentifiers": [ + [ + "/properties/Name" + ], + [ + "/properties/Arn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "aoss:CreateCollectionGroup", + "aoss:BatchGetCollectionGroup", + "aoss:TagResource" + ] + }, + "read": { + "permissions": [ + "aoss:BatchGetCollectionGroup", + "aoss:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "aoss:UpdateCollectionGroup", + "aoss:BatchGetCollectionGroup", + "aoss:TagResource", + "aoss:UntagResource" + ] + }, + "delete": { + "permissions": [ + "aoss:DeleteCollectionGroup", + "aoss:BatchGetCollectionGroup" + ] + }, + "list": { + "permissions": [ + "aoss:ListCollectionGroups" + ] + } + }, + "additionalProperties": false, + "attributes": { + "Id": { + "type": "string", + "maxLength": 40, + "minLength": 3, + "description": "The unique identifier of the collection group.", + "markdownDescription": "The unique identifier of the collection group.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 40 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the collection group.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the collection group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-opensearchserverless-vpcendpoint.json b/server/schema/resources/aws-opensearchserverless-vpcendpoint.json index 2d4c28bf..687d5b17 100644 --- a/server/schema/resources/aws-opensearchserverless-vpcendpoint.json +++ b/server/schema/resources/aws-opensearchserverless-vpcendpoint.json @@ -78,6 +78,7 @@ "/properties/Name" ] ], + "replacementStrategy": "delete_then_create", "handlers": { "create": { "permissions": [ diff --git a/server/schema/resources/aws-opensearchservice-application.json b/server/schema/resources/aws-opensearchservice-application.json index ca309f5f..c6f413e1 100644 --- a/server/schema/resources/aws-opensearchservice-application.json +++ b/server/schema/resources/aws-opensearchservice-application.json @@ -140,6 +140,13 @@ "insertionOrder": false, "markdownDescription": "List of application configurations.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "KmsKeyArn": { + "type": "string", + "minLength": 20, + "maxLength": 2048, + "description": "The ARN of the KMS key used to encrypt the application.", + "markdownDescription": "The ARN of the KMS key used to encrypt the application.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[a-z]+)*:kms:[a-z0-9-]+:\\d{12}:key/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$ \nUpdate requires: Replacement\n" + }, "DataSources": { "type": "array", "items": { @@ -167,7 +174,11 @@ "/properties/Arn" ], "createOnlyProperties": [ - "/properties/Name" + "/properties/Name", + "/properties/KmsKeyArn" + ], + "writeOnlyProperties": [ + "/properties/KmsKeyArn" ], "primaryIdentifier": [ "/properties/Name" diff --git a/server/schema/resources/aws-opensearchservice-domain.json b/server/schema/resources/aws-opensearchservice-domain.json index a9545c12..09cb1951 100644 --- a/server/schema/resources/aws-opensearchservice-domain.json +++ b/server/schema/resources/aws-opensearchservice-domain.json @@ -172,6 +172,46 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "S3VectorsEngine": { + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether to enable S3 vectors engine.", + "markdownDescription": "Whether to enable S3 vectors engine.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Enabled" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ServerlessVectorAcceleration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether to enable serverless vector acceleration.", + "markdownDescription": "Whether to enable serverless vector acceleration.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AIMLOptions": { + "type": "object", + "additionalProperties": false, + "properties": { + "S3VectorsEngine": { + "$ref": "#/definitions/S3VectorsEngine" + }, + "ServerlessVectorAcceleration": { + "$ref": "#/definitions/ServerlessVectorAcceleration" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "DomainEndpointOptions": { "type": "object", "additionalProperties": false, @@ -537,6 +577,21 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DeploymentStrategyOptions": { + "type": "object", + "additionalProperties": false, + "properties": { + "DeploymentStrategy": { + "type": "string", + "enum": [ + "Default", + "CapacityOptimized" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Default | CapacityOptimized \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ColdStorageOptions": { "type": "object", "additionalProperties": false, @@ -726,6 +781,12 @@ }, "IdentityCenterOptions": { "$ref": "#/definitions/IdentityCenterOptions" + }, + "AIMLOptions": { + "$ref": "#/definitions/AIMLOptions" + }, + "DeploymentStrategyOptions": { + "$ref": "#/definitions/DeploymentStrategyOptions" } }, "propertyTransform": { diff --git a/server/schema/resources/aws-organizations-account.json b/server/schema/resources/aws-organizations-account.json index 604ed2c5..23b0540d 100644 --- a/server/schema/resources/aws-organizations-account.json +++ b/server/schema/resources/aws-organizations-account.json @@ -71,6 +71,15 @@ "type": "string", "markdownDescription": "The date the account became a part of the organization.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "Paths": { + "description": "The paths in the organization where the account exists.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(o-[a-z0-9]{10,32}/r-[0-9a-z]{4,32}(/ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})*(/\\d{12})*)/ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The paths in the organization where the account exists.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "Status": { "description": "The status of the account in the organization.", "type": "string", @@ -80,6 +89,18 @@ "PENDING_CLOSURE" ], "markdownDescription": "The status of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | SUSPENDED | PENDING_CLOSURE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The state of the account in the organization.", + "type": "string", + "enum": [ + "PENDING_ACTIVATION", + "ACTIVE", + "SUSPENDED", + "PENDING_CLOSURE", + "CLOSED" + ], + "markdownDescription": "The state of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_ACTIVATION | ACTIVE | SUSPENDED | PENDING_CLOSURE | CLOSED \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -130,9 +151,11 @@ "readOnlyProperties": [ "/properties/AccountId", "/properties/Status", + "/properties/State", "/properties/JoinedTimestamp", "/properties/JoinedMethod", - "/properties/Arn" + "/properties/Arn", + "/properties/Paths" ], "writeOnlyProperties": [ "/properties/RoleName" @@ -208,6 +231,15 @@ "type": "string", "markdownDescription": "The date the account became a part of the organization.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "Paths": { + "description": "The paths in the organization where the account exists.", + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(o-[a-z0-9]{10,32}/r-[0-9a-z]{4,32}(/ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})*(/\\d{12})*)/ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The paths in the organization where the account exists.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "Status": { "description": "The status of the account in the organization.", "type": "string", @@ -217,6 +249,18 @@ "PENDING_CLOSURE" ], "markdownDescription": "The status of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | SUSPENDED | PENDING_CLOSURE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The state of the account in the organization.", + "type": "string", + "enum": [ + "PENDING_ACTIVATION", + "ACTIVE", + "SUSPENDED", + "PENDING_CLOSURE", + "CLOSED" + ], + "markdownDescription": "The state of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_ACTIVATION | ACTIVE | SUSPENDED | PENDING_CLOSURE | CLOSED \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-organizations-organizationalunit.json b/server/schema/resources/aws-organizations-organizationalunit.json index 71762669..ca12a4d8 100644 --- a/server/schema/resources/aws-organizations-organizationalunit.json +++ b/server/schema/resources/aws-organizations-organizationalunit.json @@ -21,6 +21,11 @@ "maxLength": 128, "markdownDescription": "The friendly name of this OU.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: [\\s\\S]* \nUpdate requires: No interruption\n" }, + "Path": { + "description": "The path in the organization where this OU exists.", + "type": "string", + "markdownDescription": "The path in the organization where this OU exists.\n\n---\n\nRequired: No \nType: String \nPattern: ^(o-[a-z0-9]{10,32}/r-[0-9a-z]{4,32}(/ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})*(/\\d{12})*)/ \nUpdate requires: No interruption\nRead only property: Yes" + }, "ParentId": { "description": "The unique identifier (ID) of the parent root or OU that you want to create the new OU in.", "type": "string", @@ -119,7 +124,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "organizations:TagResource", @@ -136,7 +141,8 @@ ], "readOnlyProperties": [ "/properties/Arn", - "/properties/Id" + "/properties/Id", + "/properties/Path" ], "primaryIdentifier": [ "/properties/Id" @@ -153,6 +159,11 @@ "type": "string", "maxLength": 68, "markdownDescription": "The unique identifier (ID) associated with this OU.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 68 \nPattern: ^ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Path": { + "description": "The path in the organization where this OU exists.", + "type": "string", + "markdownDescription": "The path in the organization where this OU exists.\n\n---\n\nRequired: No \nType: String \nPattern: ^(o-[a-z0-9]{10,32}/r-[0-9a-z]{4,32}(/ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})*(/\\d{12})*)/ \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-organizations-policy.json b/server/schema/resources/aws-organizations-policy.json index 31de0084..cced7308 100644 --- a/server/schema/resources/aws-organizations-policy.json +++ b/server/schema/resources/aws-organizations-policy.json @@ -11,19 +11,24 @@ "markdownDescription": "Name of the Policy\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: [\\s\\S]* \nUpdate requires: No interruption\n" }, "Type": { - "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2, SECURITYHUB_POLICY", + "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, BEDROCK_POLICY, CHATBOT_POLICY, DECLARATIVE_POLICY_EC2, INSPECTOR_POLICY, NETWORK_SECURITY_DIRECTOR_POLICY, RESOURCE_CONTROL_POLICY, S3_POLICY, SECURITYHUB_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, UPGRADE_ROLLOUT_POLICY", "type": "string", "enum": [ - "SERVICE_CONTROL_POLICY", "AISERVICES_OPT_OUT_POLICY", "BACKUP_POLICY", - "TAG_POLICY", + "BEDROCK_POLICY", "CHATBOT_POLICY", - "RESOURCE_CONTROL_POLICY", "DECLARATIVE_POLICY_EC2", - "SECURITYHUB_POLICY" + "INSPECTOR_POLICY", + "NETWORK_SECURITY_DIRECTOR_POLICY", + "RESOURCE_CONTROL_POLICY", + "S3_POLICY", + "SECURITYHUB_POLICY", + "SERVICE_CONTROL_POLICY", + "TAG_POLICY", + "UPGRADE_ROLLOUT_POLICY" ], - "markdownDescription": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2, SECURITYHUB_POLICY\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SERVICE_CONTROL_POLICY | AISERVICES_OPT_OUT_POLICY | BACKUP_POLICY | TAG_POLICY | CHATBOT_POLICY | RESOURCE_CONTROL_POLICY | DECLARATIVE_POLICY_EC2 | SECURITYHUB_POLICY \nUpdate requires: Replacement\n" + "markdownDescription": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, BEDROCK_POLICY, CHATBOT_POLICY, DECLARATIVE_POLICY_EC2, INSPECTOR_POLICY, NETWORK_SECURITY_DIRECTOR_POLICY, RESOURCE_CONTROL_POLICY, S3_POLICY, SECURITYHUB_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, UPGRADE_ROLLOUT_POLICY\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AISERVICES_OPT_OUT_POLICY | BACKUP_POLICY | BEDROCK_POLICY | CHATBOT_POLICY | DECLARATIVE_POLICY_EC2 | INSPECTOR_POLICY | NETWORK_SECURITY_DIRECTOR_POLICY | RESOURCE_CONTROL_POLICY | S3_POLICY | SECURITYHUB_POLICY | SERVICE_CONTROL_POLICY | TAG_POLICY | UPGRADE_ROLLOUT_POLICY \nUpdate requires: Replacement\n" }, "Content": { "description": "The Policy text content. For AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it.", diff --git a/server/schema/resources/aws-organizations-resourcepolicy.json b/server/schema/resources/aws-organizations-resourcepolicy.json index f3e7247e..6b109a10 100644 --- a/server/schema/resources/aws-organizations-resourcepolicy.json +++ b/server/schema/resources/aws-organizations-resourcepolicy.json @@ -102,7 +102,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "organizations:TagResource", diff --git a/server/schema/resources/aws-osis-pipeline.json b/server/schema/resources/aws-osis-pipeline.json index dd207b56..cd100300 100644 --- a/server/schema/resources/aws-osis-pipeline.json +++ b/server/schema/resources/aws-osis-pipeline.json @@ -177,6 +177,20 @@ }, "additionalProperties": false, "markdownDescription": "An OpenSearch Ingestion Service-managed VPC endpoint that will access one or more pipelines.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourcePolicy": { + "type": "object", + "additionalProperties": false, + "properties": { + "Policy": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Policy" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -250,8 +264,15 @@ "description": "The Amazon Resource Name (ARN) of the pipeline.", "type": "string", "minLength": 46, - "maxLength": 76, - "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 76 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" + "maxLength": 78, + "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 78 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PipelineRoleArn": { + "description": "The Pipeline Role (ARN) for the pipeline.", + "type": "string", + "minLength": 20, + "maxLength": 2048, + "markdownDescription": "The Pipeline Role (ARN) for the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b|aws\\-iso\\-e|aws\\-iso\\-f):iam::[0-9]+:role\\/.*$ \nUpdate requires: No interruption\n" }, "IngestEndpointUrls": { "type": "array", @@ -262,6 +283,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "A list of endpoints that can be used for ingesting data into a pipeline\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" } }, "additionalProperties": false, @@ -305,6 +329,8 @@ "osis:GetPipeline", "osis:TagResource", "osis:ListTagsForResource", + "osis:GetResourcePolicy", + "osis:PutResourcePolicy", "iam:PassRole", "iam:CreateServiceLinkedRole", "logs:CreateLogDelivery", @@ -314,7 +340,8 @@ "read": { "permissions": [ "osis:GetPipeline", - "osis:ListTagsForResource" + "osis:ListTagsForResource", + "osis:GetResourcePolicy" ] }, "update": { @@ -324,6 +351,9 @@ "osis:ListTagsForResource", "osis:TagResource", "osis:UntagResource", + "osis:GetResourcePolicy", + "osis:PutResourcePolicy", + "osis:DeleteResourcePolicy", "iam:PassRole", "logs:GetLogDelivery", "logs:UpdateLogDelivery", @@ -367,8 +397,8 @@ "description": "The Amazon Resource Name (ARN) of the pipeline.", "type": "string", "minLength": 46, - "maxLength": 76, - "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 76 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" + "maxLength": 78, + "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 78 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" }, "IngestEndpointUrls": { "type": "array", diff --git a/server/schema/resources/aws-paymentcryptography-key.json b/server/schema/resources/aws-paymentcryptography-key.json index 50900980..7ae80476 100644 --- a/server/schema/resources/aws-paymentcryptography-key.json +++ b/server/schema/resources/aws-paymentcryptography-key.json @@ -154,6 +154,17 @@ ], "markdownDescription": "Defines the source of a key\n\n---\n\nRequired: No \nType: String \nAllowed Values: EXTERNAL | AWS_PAYMENT_CRYPTOGRAPHY \nUpdate requires: No interruption\n" }, + "KeyReplicationState": { + "type": "string", + "description": "Defines the replication state of a key", + "enum": [ + "IN_PROGRESS", + "DELETE_IN_PROGRESS", + "FAILED", + "SYNCHRONIZED" + ], + "markdownDescription": "Defines the replication state of a key\n\n---\n\nRequired: No \nType: String \nAllowed Values: IN_PROGRESS | DELETE_IN_PROGRESS | FAILED | SYNCHRONIZED \nUpdate requires: No interruption\n" + }, "KeyState": { "type": "string", "description": "Defines the state of a key", @@ -181,6 +192,7 @@ "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", + "TR31_M0_ISO_16609_MAC_KEY", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", @@ -192,7 +204,34 @@ "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TR31_B0_BASE_DERIVATION_KEY | TR31_C0_CARD_VERIFICATION_KEY | TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY | TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION | TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS | TR31_E1_EMV_MKEY_CONFIDENTIALITY | TR31_E2_EMV_MKEY_INTEGRITY | TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS | TR31_E5_EMV_MKEY_CARD_PERSONALIZATION | TR31_E6_EMV_MKEY_OTHER | TR31_K0_KEY_ENCRYPTION_KEY | TR31_K1_KEY_BLOCK_PROTECTION_KEY | TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT | TR31_M3_ISO_9797_3_MAC_KEY | TR31_M1_ISO_9797_1_MAC_KEY | TR31_M6_ISO_9797_5_CMAC_KEY | TR31_M7_HMAC_KEY | TR31_P0_PIN_ENCRYPTION_KEY | TR31_P1_PIN_GENERATION_KEY | TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE | TR31_V1_IBM3624_PIN_VERIFICATION_KEY | TR31_V2_VISA_PIN_VERIFICATION_KEY | TR31_K2_TR34_ASYMMETRIC_KEY \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TR31_B0_BASE_DERIVATION_KEY | TR31_C0_CARD_VERIFICATION_KEY | TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY | TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION | TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS | TR31_E1_EMV_MKEY_CONFIDENTIALITY | TR31_E2_EMV_MKEY_INTEGRITY | TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS | TR31_E5_EMV_MKEY_CARD_PERSONALIZATION | TR31_E6_EMV_MKEY_OTHER | TR31_K0_KEY_ENCRYPTION_KEY | TR31_K1_KEY_BLOCK_PROTECTION_KEY | TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT | TR31_M0_ISO_16609_MAC_KEY | TR31_M3_ISO_9797_3_MAC_KEY | TR31_M1_ISO_9797_1_MAC_KEY | TR31_M6_ISO_9797_5_CMAC_KEY | TR31_M7_HMAC_KEY | TR31_P0_PIN_ENCRYPTION_KEY | TR31_P1_PIN_GENERATION_KEY | TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE | TR31_V1_IBM3624_PIN_VERIFICATION_KEY | TR31_V2_VISA_PIN_VERIFICATION_KEY | TR31_K2_TR34_ASYMMETRIC_KEY \nUpdate requires: No interruption\n" + }, + "ReplicationStatus": { + "type": "object", + "patternProperties": { + "^[a-z]{2}-[a-z]{1,16}-[0-9]+$": { + "$ref": "#/definitions/ReplicationStatusType" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ReplicationStatusType": { + "type": "object", + "properties": { + "Status": { + "$ref": "#/definitions/KeyReplicationState" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Status" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { "type": "object", @@ -248,6 +287,17 @@ "KeyState": { "$ref": "#/definitions/KeyState" }, + "ReplicationRegions": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z]{2}-[a-z]{1,16}-[0-9]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ReplicationStatus": { + "$ref": "#/definitions/ReplicationStatus" + }, "Tags": { "type": "array", "items": { @@ -266,7 +316,11 @@ "readOnlyProperties": [ "/properties/KeyIdentifier", "/properties/KeyOrigin", - "/properties/KeyState" + "/properties/KeyState", + "/properties/ReplicationStatus" + ], + "writeOnlyProperties": [ + "/properties/ReplicationRegions" ], "primaryIdentifier": [ "/properties/KeyIdentifier" @@ -292,7 +346,9 @@ "payment-cryptography:TagResource", "payment-cryptography:UntagResource", "payment-cryptography:StartKeyUsage", - "payment-cryptography:StopKeyUsage" + "payment-cryptography:StopKeyUsage", + "payment-cryptography:AddKeyReplicationRegions", + "payment-cryptography:RemoveKeyReplicationRegions" ] }, "delete": { @@ -332,6 +388,9 @@ }, "KeyState": { "$ref": "#/definitions/KeyState" + }, + "ReplicationStatus": { + "$ref": "#/definitions/ReplicationStatus" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-pcaconnectorscep-connector.json b/server/schema/resources/aws-pcaconnectorscep-connector.json index ba3b7323..ac559d94 100644 --- a/server/schema/resources/aws-pcaconnectorscep-connector.json +++ b/server/schema/resources/aws-pcaconnectorscep-connector.json @@ -118,6 +118,12 @@ }, "Tags": { "$ref": "#/definitions/Tags" + }, + "VpcEndpointId": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 200 \nUpdate requires: Replacement\n" } }, "tagging": { @@ -143,7 +149,11 @@ ], "createOnlyProperties": [ "/properties/CertificateAuthorityArn", - "/properties/MobileDeviceManagement" + "/properties/MobileDeviceManagement", + "/properties/VpcEndpointId" + ], + "writeOnlyProperties": [ + "/properties/VpcEndpointId" ], "primaryIdentifier": [ "/properties/ConnectorArn" diff --git a/server/schema/resources/aws-pcs-cluster.json b/server/schema/resources/aws-pcs-cluster.json index 7f0d788a..fc80821a 100644 --- a/server/schema/resources/aws-pcs-cluster.json +++ b/server/schema/resources/aws-pcs-cluster.json @@ -17,13 +17,13 @@ }, "Mode": { "type": "string", - "description": "The default value is `STANDARD`. A value of `STANDARD` means that Slurm accounting is enabled.", + "description": "The default value is `NONE`. A value of `STANDARD` means that Slurm accounting is enabled.", "default": "NONE", "enum": [ "STANDARD", "NONE" ], - "markdownDescription": "The default value is `STANDARD`. A value of `STANDARD` means that Slurm accounting is enabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: STANDARD | NONE \nUpdate requires: No interruption\n" + "markdownDescription": "The default value is `NONE`. A value of `STANDARD` means that Slurm accounting is enabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: STANDARD | NONE \nUpdate requires: No interruption\n" } }, "required": [ @@ -31,6 +31,27 @@ ], "markdownDescription": "The accounting configuration includes configurable settings for Slurm accounting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "SlurmRest": { + "type": "object", + "description": "The SlurmRest configuration includes configurable settings for Slurm Rest.", + "properties": { + "Mode": { + "type": "string", + "description": "The default value is `NONE`. A value of `STANDARD` means that Slurm Rest is enabled.", + "default": "NONE", + "enum": [ + "STANDARD", + "NONE" + ], + "markdownDescription": "The default value is `NONE`. A value of `STANDARD` means that Slurm Rest is enabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: STANDARD | NONE \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mode" + ], + "additionalProperties": false, + "markdownDescription": "The SlurmRest configuration includes configurable settings for Slurm Rest.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "AuthKey": { "type": "object", "description": "The shared Slurm key for authentication, also known as the cluster secret.", @@ -53,6 +74,39 @@ "additionalProperties": false, "markdownDescription": "The shared Slurm key for authentication, also known as the cluster secret.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "JwtAuth": { + "type": "object", + "description": "JWT authentication configuration for Slurm.", + "properties": { + "JwtKey": { + "$ref": "#/definitions/JwtKey" + } + }, + "additionalProperties": false, + "markdownDescription": "JWT authentication configuration for Slurm.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "JwtKey": { + "type": "object", + "description": "JWT key configuration.", + "properties": { + "SecretArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the JWT key secret.", + "markdownDescription": "The Amazon Resource Name (ARN) of the JWT key secret.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "SecretVersion": { + "type": "string", + "description": "The version of the JWT key secret.", + "markdownDescription": "The version of the JWT key secret.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SecretArn", + "SecretVersion" + ], + "additionalProperties": false, + "markdownDescription": "JWT key configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Endpoint": { "type": "object", "description": "An endpoint available for interaction with the scheduler.", @@ -77,9 +131,10 @@ "description": "Indicates the type of endpoint running at the specific IP address.", "enum": [ "SLURMCTLD", - "SLURMDBD" + "SLURMDBD", + "SLURMRESTD" ], - "markdownDescription": "Indicates the type of endpoint running at the specific IP address.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SLURMCTLD | SLURMDBD \nUpdate requires: No interruption\n" + "markdownDescription": "Indicates the type of endpoint running at the specific IP address.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SLURMCTLD | SLURMDBD | SLURMRESTD \nUpdate requires: No interruption\n" }, "PublicIpAddress": { "type": "string", @@ -118,6 +173,50 @@ "description": "A VPC security group ID.", "markdownDescription": "A VPC security group ID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "CgroupCustomSetting": { + "type": "object", + "description": "Additional cgroup configuration settings.", + "properties": { + "ParameterName": { + "type": "string", + "description": "The cgroup.conf parameter name.", + "markdownDescription": "The cgroup.conf parameter name.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ParameterValue": { + "type": "string", + "description": "The value for the cgroup.conf parameter.", + "markdownDescription": "The value for the cgroup.conf parameter.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "ParameterName", + "ParameterValue" + ], + "markdownDescription": "Additional cgroup configuration settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SlurmdbdCustomSetting": { + "type": "object", + "description": "Additional slurmdbd configuration settings.", + "properties": { + "ParameterName": { + "type": "string", + "description": "The slurmdbd.conf parameter name.", + "markdownDescription": "The slurmdbd.conf parameter name.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ParameterValue": { + "type": "string", + "description": "The value for the slurmdbd.conf parameter.", + "markdownDescription": "The value for the slurmdbd.conf parameter.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "ParameterName", + "ParameterValue" + ], + "markdownDescription": "Additional slurmdbd configuration settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "SlurmCustomSetting": { "type": "object", "description": "Additional settings that directly map to Slurm settings.", @@ -283,9 +382,15 @@ "Accounting": { "$ref": "#/definitions/Accounting" }, + "SlurmRest": { + "$ref": "#/definitions/SlurmRest" + }, "AuthKey": { "$ref": "#/definitions/AuthKey" }, + "JwtAuth": { + "$ref": "#/definitions/JwtAuth" + }, "ScaleDownIdleTimeInSeconds": { "type": "integer", "description": "The time before an idle node is scaled down.", @@ -300,10 +405,28 @@ "$ref": "#/definitions/SlurmCustomSetting" }, "markdownDescription": "Additional Slurm-specific configuration that directly maps to Slurm settings.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CgroupCustomSettings": { + "type": "array", + "description": "Additional cgroup-specific configuration that directly maps to cgroup.conf settings.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CgroupCustomSetting" + }, + "markdownDescription": "Additional cgroup-specific configuration that directly maps to cgroup.conf settings.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SlurmdbdCustomSettings": { + "type": "array", + "description": "Additional slurmdbd-specific configuration that directly maps to slurmdbd.conf settings.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SlurmdbdCustomSetting" + }, + "markdownDescription": "Additional slurmdbd-specific configuration that directly maps to slurmdbd.conf settings.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, - "markdownDescription": "Additional options related to the Slurm scheduler.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + "markdownDescription": "Additional options related to the Slurm scheduler.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Status": { "type": "string", @@ -344,8 +467,7 @@ "/properties/Name", "/properties/Networking", "/properties/Scheduler", - "/properties/Size", - "/properties/SlurmConfiguration" + "/properties/Size" ], "readOnlyProperties": [ "/properties/Arn", @@ -370,7 +492,7 @@ "pcs:ListTagsForResource", "pcs:TagResource" ], - "timeoutInMinutes": 60 + "timeoutInMinutes": 130 }, "read": { "permissions": [ @@ -381,18 +503,19 @@ "update": { "permissions": [ "pcs:GetCluster", + "pcs:UpdateCluster", "pcs:ListTagsForResource", "pcs:TagResource", "pcs:UntagResource" ], - "timeoutInMinutes": 60 + "timeoutInMinutes": 130 }, "delete": { "permissions": [ "pcs:DeleteCluster", "pcs:GetCluster" ], - "timeoutInMinutes": 60 + "timeoutInMinutes": 130 }, "list": { "permissions": [ diff --git a/server/schema/resources/aws-pcs-queue.json b/server/schema/resources/aws-pcs-queue.json index 90d056f3..4cfab151 100644 --- a/server/schema/resources/aws-pcs-queue.json +++ b/server/schema/resources/aws-pcs-queue.json @@ -1,197 +1,121 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcs.git", - "tagging": { - "permissions": [ - "pcs:TagResource", - "pcs:ListTagsForResource", - "pcs:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "pcs:GetQueue", - "pcs:ListTagsForResource" - ] - }, - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeVpcs", - "ec2:DescribeSubnets", - "ec2:DescribeSecurityGroups", - "ec2:GetSecurityGroupsForVpc", - "iam:CreateServiceLinkedRole", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", - "pcs:CreateQueue", - "pcs:GetQueue", - "pcs:ListTagsForResource", - "pcs:TagResource" - ], - "timeoutInMinutes": 60 - }, - "update": { - "permissions": [ - "pcs:GetQueue", - "pcs:UpdateQueue", - "pcs:ListTagsForResource", - "pcs:TagResource", - "pcs:UntagResource" - ], - "timeoutInMinutes": 60 - }, - "list": { - "permissions": [ - "pcs:ListClusters", - "pcs:ListQueues" - ], - "handlerSchema": { - "properties": { - "ClusterId": { - "$ref": "resource-schema.json#/properties/ClusterId" - } - }, - "required": [ - "ClusterId" - ] - } - }, - "delete": { - "permissions": [ - "pcs:DeleteQueue", - "pcs:GetQueue" - ], - "timeoutInMinutes": 60 - } - }, "typeName": "AWS::PCS::Queue", - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ErrorInfo", - "/properties/Id", - "/properties/Status" - ], "description": "AWS::PCS::Queue resource creates an AWS PCS queue.", - "createOnlyProperties": [ - "/properties/Name", - "/properties/ClusterId" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcs.git", "definitions": { - "ErrorInfo": { - "description": "An error that occurred during resource provisioning.", - "additionalProperties": false, + "ComputeNodeGroupConfiguration": { "type": "object", + "description": "The compute node group configuration for a queue.", "properties": { - "Message": { - "description": "The detailed error information.", + "ComputeNodeGroupId": { "type": "string", - "markdownDescription": "The detailed error information.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, + "description": "The compute node group ID for the compute node group configuration.", + "markdownDescription": "The compute node group ID for the compute node group configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The compute node group configuration for a queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ErrorInfo": { + "type": "object", + "description": "An error that occurred during resource provisioning.", + "properties": { "Code": { - "description": "The short-form error code.", "type": "string", + "description": "The short-form error code.", "markdownDescription": "The short-form error code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Message": { + "type": "string", + "description": "The detailed error information.", + "markdownDescription": "The detailed error information.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, "markdownDescription": "An error that occurred during resource provisioning.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ComputeNodeGroupConfiguration": { - "description": "The compute node group configuration for a queue.", - "additionalProperties": false, + "SlurmCustomSetting": { "type": "object", + "description": "Additional settings that directly map to Slurm settings.", "properties": { - "ComputeNodeGroupId": { - "description": "The compute node group ID for the compute node group configuration.", + "ParameterName": { "type": "string", - "markdownDescription": "The compute node group ID for the compute node group configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "AWS PCS supports configuration of the Slurm parameters for queues:.", + "markdownDescription": "AWS PCS supports configuration of the Slurm parameters for queues:.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ParameterValue": { + "type": "string", + "description": "The value for the configured Slurm setting.", + "markdownDescription": "The value for the configured Slurm setting.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The compute node group configuration for a queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "additionalProperties": false, + "required": [ + "ParameterName", + "ParameterValue" + ], + "markdownDescription": "Additional settings that directly map to Slurm settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "ClusterId" - ], "properties": { - "Status": { - "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", + "Arn": { "type": "string", - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "DELETING", - "CREATE_FAILED", - "DELETE_FAILED", - "UPDATE_FAILED" - ], - "markdownDescription": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The unique Amazon Resource Name (ARN) of the queue.", + "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" }, "ClusterId": { - "description": "The ID of the cluster of the queue.", "type": "string", + "description": "The ID of the cluster of the queue.", "markdownDescription": "The ID of the cluster of the queue.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "ErrorInfo": { - "description": "The list of errors that occurred during queue provisioning.", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ErrorInfo" - }, - "markdownDescription": "The list of errors that occurred during queue provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" - }, "ComputeNodeGroupConfigurations": { + "type": "array", "description": "The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/ComputeNodeGroupConfiguration" }, "markdownDescription": "The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "ErrorInfo": { + "type": "array", + "description": "The list of errors that occurred during queue provisioning.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ErrorInfo" + }, + "markdownDescription": "The list of errors that occurred during queue provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "Id": { - "description": "The generated unique ID of the queue.", "type": "string", + "description": "The generated unique ID of the queue.", "markdownDescription": "The generated unique ID of the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Arn": { - "description": "The unique Amazon Resource Name (ARN) of the queue.", + "Name": { "type": "string", - "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The name that identifies the queue.", + "markdownDescription": "The name that identifies the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "Tags": { - "patternProperties": { - "^.+$": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "SlurmConfiguration": { + "type": "object", + "description": "The Slurm configuration for the queue.", + "properties": { + "SlurmCustomSettings": { + "type": "array", + "description": "Custom Slurm parameters that directly map to Slurm configuration settings.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SlurmCustomSetting" + }, + "markdownDescription": "Custom Slurm parameters that directly map to Slurm configuration settings.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "description": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.", "additionalProperties": false, - "type": "object", - "markdownDescription": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The Slurm configuration for the queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Name": { - "description": "The name that identifies the queue.", - "type": "string", - "markdownDescription": "The name that identifies the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - } - }, - "attributes": { "Status": { - "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", "type": "string", + "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", "enum": [ "CREATING", "ACTIVE", @@ -203,24 +127,139 @@ ], "markdownDescription": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" }, + "Tags": { + "type": "object", + "description": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClusterId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/ClusterId" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ErrorInfo", + "/properties/Id", + "/properties/Status" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:GetSecurityGroupsForVpc", + "iam:CreateServiceLinkedRole", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + "pcs:CreateQueue", + "pcs:GetQueue", + "pcs:ListTagsForResource", + "pcs:TagResource" + ], + "timeoutInMinutes": 60 + }, + "read": { + "permissions": [ + "pcs:GetQueue", + "pcs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "pcs:GetQueue", + "pcs:UpdateQueue", + "pcs:ListTagsForResource", + "pcs:TagResource", + "pcs:UntagResource" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "pcs:DeleteQueue", + "pcs:GetQueue" + ], + "timeoutInMinutes": 60 + }, + "list": { + "handlerSchema": { + "properties": { + "ClusterId": { + "$ref": "resource-schema.json#/properties/ClusterId" + } + }, + "required": [ + "ClusterId" + ] + }, + "permissions": [ + "pcs:ListClusters", + "pcs:ListQueues" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "pcs:TagResource", + "pcs:ListTagsForResource", + "pcs:UntagResource" + ] + }, + "attributes": { + "Arn": { + "type": "string", + "description": "The unique Amazon Resource Name (ARN) of the queue.", + "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" + }, "ErrorInfo": { + "type": "array", "description": "The list of errors that occurred during queue provisioning.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/ErrorInfo" }, "markdownDescription": "The list of errors that occurred during queue provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, "Id": { - "description": "The generated unique ID of the queue.", "type": "string", + "description": "The generated unique ID of the queue.", "markdownDescription": "The generated unique ID of the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Arn": { - "description": "The unique Amazon Resource Name (ARN) of the queue.", + "Status": { "type": "string", - "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ], + "markdownDescription": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-quicksight-actionconnector.json b/server/schema/resources/aws-quicksight-actionconnector.json new file mode 100644 index 00000000..89ee83e5 --- /dev/null +++ b/server/schema/resources/aws-quicksight-actionconnector.json @@ -0,0 +1,654 @@ +{ + "typeName": "AWS::QuickSight::ActionConnector", + "description": "Definition of the AWS::QuickSight::ActionConnector Resource Type.", + "definitions": { + "APIKeyConnectionMetadata": { + "type": "object", + "properties": { + "BaseEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + }, + "ApiKey": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Email": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\w.%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApiKey", + "BaseEndpoint" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ActionConnectorType": { + "type": "string", + "enum": [ + "GENERIC_HTTP", + "SERVICENOW_NOW_PLATFORM", + "SALESFORCE_CRM", + "MICROSOFT_OUTLOOK", + "PAGERDUTY_ADVANCE", + "JIRA_CLOUD", + "ATLASSIAN_CONFLUENCE", + "AMAZON_S3", + "AMAZON_BEDROCK_AGENT_RUNTIME", + "AMAZON_BEDROCK_RUNTIME", + "AMAZON_BEDROCK_DATA_AUTOMATION_RUNTIME", + "AMAZON_TEXTRACT", + "AMAZON_COMPREHEND", + "AMAZON_COMPREHEND_MEDICAL", + "MICROSOFT_ONEDRIVE", + "MICROSOFT_SHAREPOINT", + "MICROSOFT_TEAMS", + "SAP_BUSINESSPARTNER", + "SAP_PRODUCTMASTERDATA", + "SAP_PHYSICALINVENTORY", + "SAP_BILLOFMATERIALS", + "SAP_MATERIALSTOCK", + "ZENDESK_SUITE", + "SMARTSHEET", + "SLACK", + "ASANA", + "BAMBOO_HR" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GENERIC_HTTP | SERVICENOW_NOW_PLATFORM | SALESFORCE_CRM | MICROSOFT_OUTLOOK | PAGERDUTY_ADVANCE | JIRA_CLOUD | ATLASSIAN_CONFLUENCE | AMAZON_S3 | AMAZON_BEDROCK_AGENT_RUNTIME | AMAZON_BEDROCK_RUNTIME | AMAZON_BEDROCK_DATA_AUTOMATION_RUNTIME | AMAZON_TEXTRACT | AMAZON_COMPREHEND | AMAZON_COMPREHEND_MEDICAL | MICROSOFT_ONEDRIVE | MICROSOFT_SHAREPOINT | MICROSOFT_TEAMS | SAP_BUSINESSPARTNER | SAP_PRODUCTMASTERDATA | SAP_PHYSICALINVENTORY | SAP_BILLOFMATERIALS | SAP_MATERIALSTOCK | ZENDESK_SUITE | SMARTSHEET | SLACK | ASANA | BAMBOO_HR \nUpdate requires: No interruption\n" + }, + "AuthConfig": { + "type": "object", + "properties": { + "AuthenticationType": { + "$ref": "#/definitions/ConnectionAuthType" + }, + "AuthenticationMetadata": { + "$ref": "#/definitions/AuthenticationMetadata" + } + }, + "required": [ + "AuthenticationMetadata", + "AuthenticationType" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AuthenticationMetadata": { + "oneOf": [ + { + "type": "object", + "title": "AuthorizationCodeGrantMetadata", + "properties": { + "AuthorizationCodeGrantMetadata": { + "$ref": "#/definitions/AuthorizationCodeGrantMetadata" + } + }, + "required": [ + "AuthorizationCodeGrantMetadata" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "ClientCredentialsGrantMetadata", + "properties": { + "ClientCredentialsGrantMetadata": { + "$ref": "#/definitions/ClientCredentialsGrantMetadata" + } + }, + "required": [ + "ClientCredentialsGrantMetadata" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "BasicAuthConnectionMetadata", + "properties": { + "BasicAuthConnectionMetadata": { + "$ref": "#/definitions/BasicAuthConnectionMetadata" + } + }, + "required": [ + "BasicAuthConnectionMetadata" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "ApiKeyConnectionMetadata", + "properties": { + "ApiKeyConnectionMetadata": { + "$ref": "#/definitions/APIKeyConnectionMetadata" + } + }, + "required": [ + "ApiKeyConnectionMetadata" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "NoneConnectionMetadata", + "properties": { + "NoneConnectionMetadata": { + "$ref": "#/definitions/NoneConnectionMetadata" + } + }, + "required": [ + "NoneConnectionMetadata" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "IamConnectionMetadata", + "properties": { + "IamConnectionMetadata": { + "$ref": "#/definitions/IAMConnectionMetadata" + } + }, + "required": [ + "IamConnectionMetadata" + ], + "additionalProperties": false + } + ] + }, + "AuthorizationCodeGrantCredentialsDetails": { + "oneOf": [ + { + "type": "object", + "title": "AuthorizationCodeGrantDetails", + "properties": { + "AuthorizationCodeGrantDetails": { + "$ref": "#/definitions/AuthorizationCodeGrantDetails" + } + }, + "required": [ + "AuthorizationCodeGrantDetails" + ], + "additionalProperties": false + } + ] + }, + "AuthorizationCodeGrantCredentialsSource": { + "type": "string", + "enum": [ + "PLAIN_CREDENTIALS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PLAIN_CREDENTIALS \nUpdate requires: No interruption\n" + }, + "AuthorizationCodeGrantDetails": { + "type": "object", + "properties": { + "ClientId": { + "type": "string", + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "TokenEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + }, + "AuthorizationEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "TokenEndpoint" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AuthorizationCodeGrantMetadata": { + "type": "object", + "properties": { + "BaseEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + }, + "RedirectUrl": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + }, + "AuthorizationCodeGrantCredentialsSource": { + "$ref": "#/definitions/AuthorizationCodeGrantCredentialsSource" + }, + "AuthorizationCodeGrantCredentialsDetails": { + "$ref": "#/definitions/AuthorizationCodeGrantCredentialsDetails" + } + }, + "required": [ + "BaseEndpoint", + "RedirectUrl" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BasicAuthConnectionMetadata": { + "type": "object", + "properties": { + "BaseEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + }, + "Username": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Password": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "BaseEndpoint", + "Password", + "Username" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClientCredentialsDetails": { + "oneOf": [ + { + "type": "object", + "title": "ClientCredentialsGrantDetails", + "properties": { + "ClientCredentialsGrantDetails": { + "$ref": "#/definitions/ClientCredentialsGrantDetails" + } + }, + "required": [ + "ClientCredentialsGrantDetails" + ], + "additionalProperties": false + } + ] + }, + "ClientCredentialsGrantDetails": { + "type": "object", + "properties": { + "ClientId": { + "type": "string", + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "ClientSecret": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "TokenEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClientId", + "ClientSecret", + "TokenEndpoint" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClientCredentialsGrantMetadata": { + "type": "object", + "properties": { + "BaseEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + }, + "ClientCredentialsSource": { + "$ref": "#/definitions/ClientCredentialsSource" + }, + "ClientCredentialsDetails": { + "$ref": "#/definitions/ClientCredentialsDetails" + } + }, + "required": [ + "BaseEndpoint" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClientCredentialsSource": { + "type": "string", + "enum": [ + "PLAIN_CREDENTIALS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PLAIN_CREDENTIALS \nUpdate requires: No interruption\n" + }, + "ConnectionAuthType": { + "type": "string", + "enum": [ + "BASIC", + "API_KEY", + "OAUTH2_CLIENT_CREDENTIALS", + "NONE", + "IAM", + "OAUTH2_AUTHORIZATION_CODE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: BASIC | API_KEY | OAUTH2_CLIENT_CREDENTIALS | NONE | IAM | OAUTH2_AUTHORIZATION_CODE \nUpdate requires: No interruption\n" + }, + "IAMConnectionMetadata": { + "type": "object", + "properties": { + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RoleArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NoneConnectionMetadata": { + "type": "object", + "properties": { + "BaseEndpoint": { + "type": "string", + "maxLength": 8192, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8192 \nPattern: ^https://.* \nUpdate requires: No interruption\n" + } + }, + "required": [ + "BaseEndpoint" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourcePermission": { + "type": "object", + "description": "

Permission for the resource.

", + "properties": { + "Principal": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "

The Amazon Resource Name (ARN) of the principal. This can be one of the\n following:

\n
    \n
  • \n

    The ARN of an Amazon QuickSight user or group associated with a data source or dataset. (This is common.)

    \n
  • \n
  • \n

    The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme. (This is common.)

    \n
  • \n
  • \n

    The ARN of an Amazon Web Services account root: This is an IAM ARN rather than a QuickSight\n ARN. Use this option only to share resources (templates) across Amazon Web Services accounts.\n (This is less common.)

    \n
  • \n
", + "markdownDescription": "

The Amazon Resource Name (ARN) of the principal. This can be one of the\n following:

\n
    \n
  • \n

    The ARN of an Amazon QuickSight user or group associated with a data source or dataset. (This is common.)

    \n
  • \n
  • \n

    The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme. (This is common.)

    \n
  • \n
  • \n

    The ARN of an Amazon Web Services account root: This is an IAM ARN rather than a QuickSight\n ARN. Use this option only to share resources (templates) across Amazon Web Services accounts.\n (This is less common.)

    \n
  • \n
\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Actions": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "maxItems": 20, + "minItems": 1, + "description": "

The IAM action to grant or revoke permissions on.

", + "markdownDescription": "

The IAM action to grant or revoke permissions on.

\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Actions", + "Principal" + ], + "additionalProperties": false, + "markdownDescription": "

Permission for the resource.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceStatus": { + "type": "string", + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "PENDING_UPDATE", + "DELETED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATION_IN_PROGRESS | CREATION_SUCCESSFUL | CREATION_FAILED | UPDATE_IN_PROGRESS | UPDATE_SUCCESSFUL | UPDATE_FAILED | PENDING_UPDATE | DELETED \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "description": "

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

", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "description": "

Tag key.

", + "markdownDescription": "

Tag key.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "

Tag value.

", + "markdownDescription": "

Tag value.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "

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

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "ActionConnectorId": { + "type": "string", + "maxLength": 512, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[\\w\\-]+$ \nUpdate requires: Replacement\n" + }, + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AuthenticationConfig": { + "$ref": "#/definitions/AuthConfig" + }, + "AwsAccountId": { + "type": "string", + "maxLength": 12, + "minLength": 12, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: Replacement\n" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^[A-Za-z0-9 _.,!?-]*$ \nUpdate requires: No interruption\n" + }, + "EnabledActions": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\w@:_.,!?+-/]+$ \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^[A-Za-z0-9](?:[\\w- ]*[A-Za-z0-9])?$ \nUpdate requires: No interruption\n" + }, + "Permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Type": { + "$ref": "#/definitions/ActionConnectorType" + }, + "VpcConnectionArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ActionConnectorId", + "AwsAccountId", + "Name", + "Type" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/EnabledActions", + "/properties/LastUpdatedTime", + "/properties/Status" + ], + "writeOnlyProperties": [ + "/properties/AuthenticationConfig", + "/properties/VpcConnectionArn" + ], + "createOnlyProperties": [ + "/properties/ActionConnectorId", + "/properties/AwsAccountId", + "/properties/Type" + ], + "primaryIdentifier": [ + "/properties/ActionConnectorId", + "/properties/AwsAccountId" + ], + "handlers": { + "create": { + "permissions": [ + "quicksight:CreateActionConnector", + "quicksight:DescribeActionConnector", + "quicksight:DescribeActionConnectorPermissions", + "quicksight:TagResource", + "quicksight:ListTagsForResource", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeActionConnector", + "quicksight:DescribeActionConnectorPermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeActionConnector", + "quicksight:DescribeActionConnectorPermissions", + "quicksight:UpdateActionConnector", + "quicksight:UpdateActionConnectorPermissions", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeActionConnector", + "quicksight:DeleteActionConnector" + ] + }, + "list": { + "permissions": [ + "quicksight:ListActionConnectors" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "attributes": { + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedTime": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EnabledActions": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\w@:_.,!?+-/]+$ \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedTime": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-quicksight-custompermissions.json b/server/schema/resources/aws-quicksight-custompermissions.json index e6907ba5..e9f471fd 100644 --- a/server/schema/resources/aws-quicksight-custompermissions.json +++ b/server/schema/resources/aws-quicksight-custompermissions.json @@ -79,6 +79,585 @@ }, "Analysis": { "$ref": "#/definitions/CapabilityState" + }, + "Automate": { + "$ref": "#/definitions/CapabilityState" + }, + "Flow": { + "$ref": "#/definitions/CapabilityState" + }, + "PublishWithoutApproval": { + "$ref": "#/definitions/CapabilityState" + }, + "UseBedrockModels": { + "$ref": "#/definitions/CapabilityState" + }, + "PerformFlowUiTask": { + "$ref": "#/definitions/CapabilityState" + }, + "ApproveFlowShareRequests": { + "$ref": "#/definitions/CapabilityState" + }, + "UseAgentWebSearch": { + "$ref": "#/definitions/CapabilityState" + }, + "KnowledgeBase": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateKnowledgeBases": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareKnowledgeBases": { + "$ref": "#/definitions/CapabilityState" + }, + "Action": { + "$ref": "#/definitions/CapabilityState" + }, + "GenericHTTPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateGenericHTTPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareGenericHTTPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseGenericHTTPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "AsanaAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateAsanaAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareAsanaAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseAsanaAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SlackAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSlackAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSlackAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSlackAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ServiceNowAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateServiceNowAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareServiceNowAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseServiceNowAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SalesforceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSalesforceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSalesforceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSalesforceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "MSExchangeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateMSExchangeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareMSExchangeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseMSExchangeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "PagerDutyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdatePagerDutyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SharePagerDutyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UsePagerDutyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "JiraAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateJiraAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareJiraAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseJiraAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ConfluenceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateConfluenceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareConfluenceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseConfluenceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "OneDriveAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateOneDriveAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareOneDriveAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseOneDriveAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SharePointAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSharePointAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSharePointAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSharePointAction": { + "$ref": "#/definitions/CapabilityState" + }, + "MSTeamsAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateMSTeamsAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareMSTeamsAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseMSTeamsAction": { + "$ref": "#/definitions/CapabilityState" + }, + "GoogleCalendarAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateGoogleCalendarAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareGoogleCalendarAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseGoogleCalendarAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ZendeskAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateZendeskAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareZendeskAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseZendeskAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SmartsheetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSmartsheetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSmartsheetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSmartsheetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SAPBusinessPartnerAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSAPBusinessPartnerAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSAPBusinessPartnerAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSAPBusinessPartnerAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SAPProductMasterDataAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSAPProductMasterDataAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSAPProductMasterDataAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSAPProductMasterDataAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SAPPhysicalInventoryAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSAPPhysicalInventoryAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSAPPhysicalInventoryAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSAPPhysicalInventoryAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SAPBillOfMaterialAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSAPBillOfMaterialAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSAPBillOfMaterialAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSAPBillOfMaterialAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SAPMaterialStockAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSAPMaterialStockAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSAPMaterialStockAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSAPMaterialStockAction": { + "$ref": "#/definitions/CapabilityState" + }, + "FactSetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateFactSetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareFactSetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseFactSetAction": { + "$ref": "#/definitions/CapabilityState" + }, + "AmazonSThreeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateAmazonSThreeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareAmazonSThreeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseAmazonSThreeAction": { + "$ref": "#/definitions/CapabilityState" + }, + "TextractAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateTextractAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareTextractAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseTextractAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ComprehendAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateComprehendAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareComprehendAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseComprehendAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ComprehendMedicalAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateComprehendMedicalAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareComprehendMedicalAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseComprehendMedicalAction": { + "$ref": "#/definitions/CapabilityState" + }, + "AmazonBedrockARSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateAmazonBedrockARSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareAmazonBedrockARSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseAmazonBedrockARSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "AmazonBedrockFSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateAmazonBedrockFSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareAmazonBedrockFSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseAmazonBedrockFSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "AmazonBedrockKRSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateAmazonBedrockKRSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareAmazonBedrockKRSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseAmazonBedrockKRSAction": { + "$ref": "#/definitions/CapabilityState" + }, + "MCPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateMCPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareMCPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseMCPAction": { + "$ref": "#/definitions/CapabilityState" + }, + "OpenAPIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateOpenAPIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareOpenAPIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseOpenAPIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SandPGMIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSandPGMIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSandPGMIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSandPGMIAction": { + "$ref": "#/definitions/CapabilityState" + }, + "SandPGlobalEnergyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateSandPGlobalEnergyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareSandPGlobalEnergyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseSandPGlobalEnergyAction": { + "$ref": "#/definitions/CapabilityState" + }, + "BambooHRAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateBambooHRAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareBambooHRAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseBambooHRAction": { + "$ref": "#/definitions/CapabilityState" + }, + "BoxAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateBoxAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareBoxAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseBoxAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CanvaAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateCanvaAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareCanvaAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseCanvaAgentAction": { + "$ref": "#/definitions/CapabilityState" + }, + "GithubAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateGithubAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareGithubAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseGithubAction": { + "$ref": "#/definitions/CapabilityState" + }, + "NotionAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateNotionAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareNotionAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseNotionAction": { + "$ref": "#/definitions/CapabilityState" + }, + "LinearAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateLinearAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareLinearAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseLinearAction": { + "$ref": "#/definitions/CapabilityState" + }, + "HuggingFaceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateHuggingFaceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareHuggingFaceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseHuggingFaceAction": { + "$ref": "#/definitions/CapabilityState" + }, + "MondayAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateMondayAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareMondayAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseMondayAction": { + "$ref": "#/definitions/CapabilityState" + }, + "HubspotAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateHubspotAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareHubspotAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseHubspotAction": { + "$ref": "#/definitions/CapabilityState" + }, + "IntercomAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateIntercomAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareIntercomAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseIntercomAction": { + "$ref": "#/definitions/CapabilityState" + }, + "NewRelicAction": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateNewRelicAction": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareNewRelicAction": { + "$ref": "#/definitions/CapabilityState" + }, + "UseNewRelicAction": { + "$ref": "#/definitions/CapabilityState" + }, + "Space": { + "$ref": "#/definitions/CapabilityState" + }, + "ChatAgent": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateChatAgents": { + "$ref": "#/definitions/CapabilityState" + }, + "Research": { + "$ref": "#/definitions/CapabilityState" + }, + "Extension": { + "$ref": "#/definitions/CapabilityState" + }, + "ManageSharedFolders": { + "$ref": "#/definitions/CapabilityState" + }, + "EditVisualWithQ": { + "$ref": "#/definitions/CapabilityState" + }, + "BuildCalculatedFieldWithQ": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateDashboardExecutiveSummaryWithQ": { + "$ref": "#/definitions/CapabilityState" + }, + "Topic": { + "$ref": "#/definitions/CapabilityState" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-quicksight-dashboard.json b/server/schema/resources/aws-quicksight-dashboard.json index a7b5f5b2..53382d55 100644 --- a/server/schema/resources/aws-quicksight-dashboard.json +++ b/server/schema/resources/aws-quicksight-dashboard.json @@ -2763,6 +2763,9 @@ "ExportWithHiddenFieldsOption": { "$ref": "#/definitions/ExportWithHiddenFieldsOption" }, + "QuickSuiteActionsOption": { + "$ref": "#/definitions/QuickSuiteActionsOption" + }, "ExecutiveSummaryOption": { "$ref": "#/definitions/ExecutiveSummaryOption" }, @@ -4175,17 +4178,41 @@ "minimum": 0, "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, + "BorderStyle": { + "$ref": "#/definitions/GridLayoutElementBorderStyle" + }, + "BorderRadius": { + "minLength": 0, + "type": "string", + "maxLength": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, "RowSpan": { "maximum": 21, "type": "number", "minimum": 1, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" }, + "Padding": { + "minLength": 0, + "type": "string", + "maxLength": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "BackgroundStyle": { + "$ref": "#/definitions/GridLayoutElementBackgroundStyle" + }, "ElementId": { "minLength": 1, "type": "string", "maxLength": 512, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[\\w\\-]+$ \nUpdate requires: No interruption\n" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/GridLayoutElementBorderStyle" } }, "required": [ @@ -4206,13 +4233,11 @@ "BorderStyle": { "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" }, - "Height": { - "description": "String based length that is composed of value and unit in px", + "BorderRadius": { + "minLength": 0, "type": "string", - "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Visibility": { - "$ref": "#/definitions/Visibility" + "maxLength": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 50 \nUpdate requires: No interruption\n" }, "RenderingRules": { "minItems": 0, @@ -4228,6 +4253,28 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px with Integer.MAX_VALUE as maximum value\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "XAxisLocation": { + "description": "String based length that is composed of value and unit in px", + "type": "string", + "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Padding": { + "minLength": 0, + "type": "string", + "maxLength": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string", + "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "LoadingAnimation": { "$ref": "#/definitions/LoadingAnimation" }, @@ -4236,20 +4283,12 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "BackgroundStyle": { - "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" - }, "ElementId": { "minLength": 1, "type": "string", "maxLength": 512, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nPattern: ^[\\w\\-]+$ \nUpdate requires: No interruption\n" }, - "XAxisLocation": { - "description": "String based length that is composed of value and unit in px", - "type": "string", - "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, "SelectedBorderStyle": { "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" } @@ -4919,6 +4958,13 @@ }, "Visibility": { "$ref": "#/definitions/Visibility" + }, + "Width": { + "minLength": 0, + "description": "String to encapsulate the most generic way Width can be formatted with whatever units (px, em etc)", + "type": "string", + "maxLength": 50, + "markdownDescription": "String to encapsulate the most generic way Width can be formatted with whatever units (px, em etc)\n\n---\n\nRequired: No \nType: String \nMaximum Length: 50 \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -7458,7 +7504,7 @@ }, "ParameterDeclarations": { "minItems": 0, - "maxItems": 200, + "maxItems": 400, "type": "array", "items": { "$ref": "#/definitions/ParameterDeclaration" @@ -8551,6 +8597,27 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SUNDAY | MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY \nUpdate requires: No interruption\n" }, + "GridLayoutElementBorderStyle": { + "additionalProperties": false, + "type": "object", + "properties": { + "Color": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}(?:[A-F0-9]{2})?$ \nUpdate requires: No interruption\n" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "minLength": 0, + "description": "String to encapsulate the most generic way Width can be formatted with whatever units (px, em etc)", + "type": "string", + "maxLength": 50, + "markdownDescription": "String to encapsulate the most generic way Width can be formatted with whatever units (px, em etc)\n\n---\n\nRequired: No \nType: String \nMaximum Length: 50 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TopBottomRankedComputation": { "additionalProperties": false, "type": "object", @@ -9669,6 +9736,20 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "GridLayoutElementBackgroundStyle": { + "additionalProperties": false, + "type": "object", + "properties": { + "Color": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}(?:[A-F0-9]{2})?$ \nUpdate requires: No interruption\n" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ComparisonConfiguration": { "additionalProperties": false, "type": "object", @@ -9702,6 +9783,16 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "QuickSuiteActionsOption": { + "additionalProperties": false, + "type": "object", + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "GeospatialCircleRadius": { "additionalProperties": false, "type": "object", diff --git a/server/schema/resources/aws-quicksight-dataset.json b/server/schema/resources/aws-quicksight-dataset.json index 28ecd94f..63ee089b 100644 --- a/server/schema/resources/aws-quicksight-dataset.json +++ b/server/schema/resources/aws-quicksight-dataset.json @@ -11,6 +11,11 @@ "tagProperty": "/properties/Tags", "cloudFormationSystemTags": true }, + "deprecatedProperties": [ + "/properties/LogicalTableMap", + "/properties/RowLevelPermissionDataSet", + "/properties/RowLevelPermissionTagConfiguration" + ], "handlers": { "read": { "permissions": [ @@ -101,6 +106,31 @@ "/properties/DataSetId" ], "definitions": { + "PivotConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "LabelColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "PivotedLabels": { + "minItems": 0, + "maxItems": 100, + "type": "array", + "items": { + "$ref": "#/definitions/PivotedLabel" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PivotedLabels" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RowLevelPermissionPolicy": { "type": "string", "enum": [ @@ -117,7 +147,7 @@ "ColumnName": { "description": "

The column name that a tag key is assigned to.

", "type": "string", - "markdownDescription": "

The column name that a tag key is assigned to.

\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "

The column name that a tag key is assigned to.

\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "TagKey": { "minLength": 1, @@ -142,6 +172,7 @@ } }, "required": [ + "ColumnName", "TagKey" ], "markdownDescription": "

A set of rules associated with a tag.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -158,6 +189,96 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CSV | TSV | CLF | ELF | XLSX | JSON \nUpdate requires: No interruption\n" }, + "DataPrepSimpleAggregationFunctionType": { + "type": "string", + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "SUM", + "AVERAGE", + "MEDIAN", + "MAX", + "MIN", + "VARIANCE", + "STANDARD_DEVIATION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: COUNT | DISTINCT_COUNT | SUM | AVERAGE | MEDIAN | MAX | MIN | VARIANCE | STANDARD_DEVIATION \nUpdate requires: No interruption\n" + }, + "RenameColumnsOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "RenameColumnOperations": { + "minItems": 0, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/RenameColumnOperation" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "Source", + "RenameColumnOperations" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ValueColumnConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DataPrepAggregationFunction" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetNumericComparisonFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "Operator": { + "$ref": "#/definitions/DataSetNumericComparisonFilterOperator" + }, + "Value": { + "$ref": "#/definitions/DataSetNumericFilterValue" + } + }, + "required": [ + "Operator" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetStringFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "ColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "ComparisonFilterCondition": { + "$ref": "#/definitions/DataSetStringComparisonFilterCondition" + }, + "ListFilterCondition": { + "$ref": "#/definitions/DataSetStringListFilterCondition" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "JoinKeyProperties": { "description": "

Properties associated with the columns participating in a join.

", "additionalProperties": false, @@ -212,6 +333,25 @@ "minProperties": 0, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataPrepSimpleAggregationFunction": { + "additionalProperties": false, + "type": "object", + "properties": { + "FunctionType": { + "$ref": "#/definitions/DataPrepSimpleAggregationFunctionType" + }, + "InputColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FunctionType" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RefreshConfiguration": { "description": "

The refresh configuration of a dataset.

", "additionalProperties": false, @@ -244,7 +384,7 @@ "items": { "$ref": "#/definitions/InputColumn" }, - "markdownDescription": "

The column schema of the table.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "

The column schema of the table.

\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "Schema": { "minLength": 0, @@ -270,6 +410,7 @@ }, "required": [ "DataSourceArn", + "InputColumns", "Name" ], "markdownDescription": "

A physical table type for relational data sources.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -301,6 +442,12 @@ "SubType": { "$ref": "#/definitions/ColumnDataSubType" }, + "Id": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, "Name": { "minLength": 1, "description": "

The name of this column in the underlying data source.

", @@ -321,7 +468,7 @@ "$ref": "#/definitions/LogicalTable" } }, - "maxProperties": 64, + "maxProperties": 256, "additionalProperties": false, "type": "object", "minProperties": 1, @@ -378,6 +525,116 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DOUBLE_QUOTE | SINGLE_QUOTE \nUpdate requires: No interruption\n" }, + "SemanticTableMap": { + "patternProperties": { + "^[0-9a-zA-Z-]*$": { + "$ref": "#/definitions/SemanticTable" + } + }, + "maxProperties": 1, + "additionalProperties": false, + "type": "object", + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AppendedColumn": { + "additionalProperties": false, + "type": "object", + "properties": { + "ColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "NewColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ColumnName", + "NewColumnId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetColumnIdMapping": { + "additionalProperties": false, + "type": "object", + "properties": { + "SourceColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "TargetColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SourceColumnId", + "TargetColumnId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ImportTableOperationSource": { + "additionalProperties": false, + "type": "object", + "properties": { + "SourceTableId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[0-9a-zA-Z-]*$ \nUpdate requires: No interruption\n" + }, + "ColumnIdMappings": { + "minItems": 1, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/DataSetColumnIdMapping" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SourceTableId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Aggregation": { + "additionalProperties": false, + "type": "object", + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DataPrepAggregationFunction" + }, + "NewColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "NewColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AggregationFunction", + "NewColumnId", + "NewColumnName" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "DecimalDatasetParameter": { "description": "

A decimal parameter for a dataset.

", "additionalProperties": false, @@ -411,6 +668,121 @@ ], "markdownDescription": "

A decimal parameter for a dataset.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "OutputColumnNameOverride": { + "additionalProperties": false, + "type": "object", + "properties": { + "OutputColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "SourceColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OutputColumnName" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetNumericRangeFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "IncludeMaximum": { + "default": null, + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "RangeMinimum": { + "$ref": "#/definitions/DataSetNumericFilterValue" + }, + "RangeMaximum": { + "$ref": "#/definitions/DataSetNumericFilterValue" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UnpivotOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "UnpivotedLabelColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "ColumnsToUnpivot": { + "minItems": 0, + "maxItems": 100, + "type": "array", + "items": { + "$ref": "#/definitions/ColumnToUnpivot" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "UnpivotedLabelColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "UnpivotedValueColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "UnpivotedValueColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "ColumnsToUnpivot", + "Source", + "UnpivotedLabelColumnId", + "UnpivotedLabelColumnName", + "UnpivotedValueColumnId", + "UnpivotedValueColumnName" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TransformStepMap": { + "patternProperties": { + "^[0-9a-zA-Z-]*$": { + "$ref": "#/definitions/TransformStep" + } + }, + "maxProperties": 256, + "additionalProperties": false, + "type": "object", + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "DateTimeDatasetParameter": { "description": "

A date time parameter for a dataset.

", "additionalProperties": false, @@ -490,14 +862,84 @@ ], "markdownDescription": "

Geospatial column group that denotes a hierarchy.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "GeoSpatialCountryCode": { - "type": "string", - "enum": [ - "US" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: US \nUpdate requires: No interruption\n" - }, - "OverrideDatasetParameterOperation": { + "CastColumnTypesOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "CastColumnTypeOperations": { + "minItems": 0, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/CastColumnTypeOperation" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "Source", + "CastColumnTypeOperations" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TransformStep": { + "additionalProperties": false, + "type": "object", + "properties": { + "ProjectStep": { + "$ref": "#/definitions/ProjectOperation" + }, + "CreateColumnsStep": { + "$ref": "#/definitions/CreateColumnsOperation" + }, + "RenameColumnsStep": { + "$ref": "#/definitions/RenameColumnsOperation" + }, + "CastColumnTypesStep": { + "$ref": "#/definitions/CastColumnTypesOperation" + }, + "ImportTableStep": { + "$ref": "#/definitions/ImportTableOperation" + }, + "UnpivotStep": { + "$ref": "#/definitions/UnpivotOperation" + }, + "JoinStep": { + "$ref": "#/definitions/JoinOperation" + }, + "AppendStep": { + "$ref": "#/definitions/AppendOperation" + }, + "FiltersStep": { + "$ref": "#/definitions/FiltersOperation" + }, + "AggregateStep": { + "$ref": "#/definitions/AggregateOperation" + }, + "PivotStep": { + "$ref": "#/definitions/PivotOperation" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GeoSpatialCountryCode": { + "type": "string", + "enum": [ + "US" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: US \nUpdate requires: No interruption\n" + }, + "OverrideDatasetParameterOperation": { "description": "

A transform operation that overrides the dataset parameter values that are defined in another dataset.

", "additionalProperties": false, "type": "object", @@ -557,9 +999,10 @@ "type": "array", "items": { "default": 0, - "description": "

The default value for the integer parameter.

", - "type": "number", - "markdownDescription": "

The default value for the integer parameter.

\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "format": "int64", + "description": "

A list of static default values for a given integer parameter.

", + "type": "integer", + "markdownDescription": "

A list of static default values for a given integer parameter.

\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "markdownDescription": "

A list of static default values for a given integer parameter.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } @@ -595,6 +1038,26 @@ }, "markdownDescription": "

The default values of a string parameter.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DestinationTable": { + "additionalProperties": false, + "type": "object", + "properties": { + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/DestinationTableSource" + } + }, + "required": [ + "Alias", + "Source" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "LookbackWindowSizeUnit": { "type": "string", "enum": [ @@ -635,9 +1098,15 @@ "additionalProperties": false, "type": "object", "properties": { + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, "ProjectedColumns": { "minItems": 0, - "maxItems": 2000, + "maxItems": 2048, "description": "

Projected columns.

", "type": "array", "items": { @@ -645,10 +1114,47 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "

Projected columns.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" } }, "markdownDescription": "

A transform operation that projects columns. Operations that come after a projection\n can only refer to projected columns.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "SaaSTable": { + "additionalProperties": false, + "type": "object", + "properties": { + "DataSourceArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "InputColumns": { + "minItems": 0, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/InputColumn" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "TablePath": { + "minItems": 1, + "maxItems": 32, + "type": "array", + "items": { + "$ref": "#/definitions/TablePathElement" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DataSourceArn", + "InputColumns", + "TablePath" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "IntegerDatasetParameter": { "description": "

An integer parameter for a dataset.

", "additionalProperties": false, @@ -682,6 +1188,66 @@ ], "markdownDescription": "

An integer parameter for a dataset.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "FiltersOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "FilterOperations": { + "minItems": 0, + "maxItems": 128, + "type": "array", + "items": { + "$ref": "#/definitions/FilterOperation" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "FilterOperations", + "Source" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PivotedLabel": { + "additionalProperties": false, + "type": "object", + "properties": { + "NewColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "NewColumnId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "LabelName": { + "minLength": 0, + "type": "string", + "maxLength": 2047, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2047 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LabelName", + "NewColumnId", + "NewColumnName" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RefreshFailureConfiguration": { "additionalProperties": false, "type": "object", @@ -692,6 +1258,54 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "PivotOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "PivotConfiguration": { + "$ref": "#/definitions/PivotConfiguration" + }, + "GroupByColumnNames": { + "minItems": 0, + "maxItems": 128, + "type": "array", + "items": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "ValueColumnConfiguration": { + "$ref": "#/definitions/ValueColumnConfiguration" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "PivotConfiguration", + "Source", + "ValueColumnConfiguration" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetStringListFilterOperator": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: INCLUDE | EXCLUDE \nUpdate requires: No interruption\n" + }, "LogicalTable": { "description": "

A logical table is a unit that joins and that data\n transformations operate on. A logical table has a source, which can be either a physical\n table or result of a join. When a logical table points to a physical table, the logical\n table acts as a mutable copy of that physical table through transform operations.

", "additionalProperties": false, @@ -719,10 +1333,34 @@ } }, "required": [ - "Alias" + "Alias", + "Source" ], "markdownDescription": "

A logical table is a unit that joins and that data\n transformations operate on. A logical table has a source, which can be either a physical\n table or result of a join. When a logical table points to a physical table, the logical\n table acts as a mutable copy of that physical table through transform operations.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "RowLevelPermissionConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "TagConfiguration": { + "$ref": "#/definitions/RowLevelPermissionTagConfiguration" + }, + "RowLevelPermissionDataSet": { + "$ref": "#/definitions/RowLevelPermissionDataSet" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetDateComparisonFilterOperator": { + "type": "string", + "enum": [ + "BEFORE", + "BEFORE_OR_EQUALS_TO", + "AFTER", + "AFTER_OR_EQUALS_TO" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: BEFORE | BEFORE_OR_EQUALS_TO | AFTER | AFTER_OR_EQUALS_TO \nUpdate requires: No interruption\n" + }, "IngestionWaitPolicy": { "description": "

Wait policy to use when creating/updating dataset. Default is to wait for SPICE ingestion to finish with timeout of 36 hours.

", "additionalProperties": false, @@ -745,6 +1383,34 @@ }, "markdownDescription": "

Wait policy to use when creating/updating dataset. Default is to wait for SPICE ingestion to finish with timeout of 36 hours.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataSetStringComparisonFilterOperator": { + "type": "string", + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EQUALS | DOES_NOT_EQUAL | CONTAINS | DOES_NOT_CONTAIN | STARTS_WITH | ENDS_WITH \nUpdate requires: No interruption\n" + }, + "DataSetStringComparisonFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "Operator": { + "$ref": "#/definitions/DataSetStringComparisonFilterOperator" + }, + "Value": { + "$ref": "#/definitions/DataSetStringFilterValue" + } + }, + "required": [ + "Operator" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "StringDatasetParameter": { "description": "

A string parameter for a dataset.

", "additionalProperties": false, @@ -788,6 +1454,18 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DestinationTableMap": { + "patternProperties": { + "^[0-9a-zA-Z-]*$": { + "$ref": "#/definitions/DestinationTable" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "type": "object", + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "UntagColumnOperation": { "description": "

A transform operation that removes tags associated with a column.

", "additionalProperties": false, @@ -815,17 +1493,38 @@ ], "markdownDescription": "

A transform operation that removes tags associated with a column.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataSetDateFilterValue": { + "additionalProperties": false, + "type": "object", + "properties": { + "StaticValue": { + "format": "date-time", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "FilterOperation": { "description": "

A transform operation that filters rows based on a condition.

", "additionalProperties": false, "type": "object", "properties": { + "DateFilterCondition": { + "$ref": "#/definitions/DataSetDateFilterCondition" + }, + "StringFilterCondition": { + "$ref": "#/definitions/DataSetStringFilterCondition" + }, "ConditionExpression": { "minLength": 1, "description": "

An expression that must evaluate to a Boolean value. Rows for which the expression\n evaluates to true are kept in the dataset.

", "type": "string", "maxLength": 4096, "markdownDescription": "

An expression that must evaluate to a Boolean value. Rows for which the expression\n evaluates to true are kept in the dataset.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 4096 \nUpdate requires: No interruption\n" + }, + "NumericFilterCondition": { + "$ref": "#/definitions/DataSetNumericFilterCondition" } }, "markdownDescription": "

A transform operation that filters rows based on a condition.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -869,7 +1568,7 @@ "description": "

Column name.

", "type": "string", "maxLength": 127, - "markdownDescription": "

Column name.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + "markdownDescription": "

Column name.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" }, "SubType": { "$ref": "#/definitions/ColumnDataSubType" @@ -886,10 +1585,23 @@ } }, "required": [ + "ColumnName", "NewColumnType" ], "markdownDescription": "

A transform operation that casts a column to a different type.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataSetNumericComparisonFilterOperator": { + "type": "string", + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUALS_TO", + "LESS_THAN", + "LESS_THAN_OR_EQUALS_TO" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EQUALS | DOES_NOT_EQUAL | GREATER_THAN | GREATER_THAN_OR_EQUALS_TO | LESS_THAN | LESS_THAN_OR_EQUALS_TO \nUpdate requires: No interruption\n" + }, "TimeGranularity": { "type": "string", "enum": [ @@ -942,6 +1654,12 @@ "additionalProperties": false, "type": "object", "properties": { + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, "Columns": { "minItems": 0, "maxItems": 256, @@ -950,9 +1668,15 @@ "items": { "$ref": "#/definitions/CalculatedColumn" }, - "markdownDescription": "

Calculated columns to create.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "

Calculated columns to create.

\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" } }, + "required": [ + "Columns" + ], "markdownDescription": "

A transform operation that creates calculated columns. Columns created in one such\n operation form a lexical closure.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ResourcePermission": { @@ -985,6 +1709,25 @@ ], "markdownDescription": "

Permission for the resource.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TablePathElement": { + "additionalProperties": false, + "type": "object", + "properties": { + "Id": { + "minLength": 1, + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Name": { + "minLength": 1, + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "TagColumnOperation": { "description": "

A transform operation that tags a column with additional information.

", "additionalProperties": false, @@ -1014,18 +1757,54 @@ ], "markdownDescription": "

A transform operation that tags a column with additional information.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "LookbackWindow": { - "description": "

The lookback window setup of an incremental refresh configuration.

", + "DataSetStringListFilterCondition": { "additionalProperties": false, "type": "object", "properties": { - "ColumnName": { - "description": "

The name of the lookback window column.

", - "type": "string", - "markdownDescription": "

The name of the lookback window column.

\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "Operator": { + "$ref": "#/definitions/DataSetStringListFilterOperator" }, - "SizeUnit": { - "$ref": "#/definitions/LookbackWindowSizeUnit" + "Values": { + "$ref": "#/definitions/DataSetStringListFilterValue" + } + }, + "required": [ + "Operator" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ImportTableOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/ImportTableOperationSource" + } + }, + "required": [ + "Alias", + "Source" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LookbackWindow": { + "description": "

The lookback window setup of an incremental refresh configuration.

", + "additionalProperties": false, + "type": "object", + "properties": { + "ColumnName": { + "description": "

The name of the lookback window column.

", + "type": "string", + "markdownDescription": "

The name of the lookback window column.

\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "SizeUnit": { + "$ref": "#/definitions/LookbackWindowSizeUnit" }, "Size": { "default": 0, @@ -1050,6 +1829,38 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MULTI_VALUED | SINGLE_VALUED \nUpdate requires: No interruption\n" }, + "JoinOperationType": { + "type": "string", + "enum": [ + "INNER", + "OUTER", + "LEFT", + "RIGHT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: INNER | OUTER | LEFT | RIGHT \nUpdate requires: No interruption\n" + }, + "SemanticModelConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "TableMap": { + "$ref": "#/definitions/SemanticTableMap" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceTableMap": { + "patternProperties": { + "^[0-9a-zA-Z-]*$": { + "$ref": "#/definitions/SourceTable" + } + }, + "maxProperties": 32, + "additionalProperties": false, + "type": "object", + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CalculatedColumn": { "description": "

A calculated column for a dataset.

", "additionalProperties": false, @@ -1116,14 +1927,15 @@ "items": { "$ref": "#/definitions/InputColumn" }, - "markdownDescription": "

A physical table type for an S3 data source.

\n \n

For files that aren't JSON, only STRING data types are supported in input columns.

\n
\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "

A physical table type for an S3 data source.

\n \n

For files that aren't JSON, only STRING data types are supported in input columns.

\n
\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "UploadSettings": { "$ref": "#/definitions/UploadSettings" } }, "required": [ - "DataSourceArn" + "DataSourceArn", + "InputColumns" ], "markdownDescription": "

A physical table type for an S3 data source.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -1153,6 +1965,19 @@ }, "markdownDescription": "

A FieldFolder element is a folder that contains fields and nested subfolders.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataSetStringFilterValue": { + "additionalProperties": false, + "type": "object", + "properties": { + "StaticValue": { + "minLength": 0, + "type": "string", + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 512 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "IncrementalRefresh": { "description": "

The incremental refresh configuration for a dataset.

", "additionalProperties": false, @@ -1185,6 +2010,12 @@ "SubType": { "$ref": "#/definitions/ColumnDataSubType" }, + "Id": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, "Name": { "minLength": 1, "description": "

The display name of the column..

", @@ -1200,6 +2031,9 @@ "additionalProperties": false, "type": "object", "properties": { + "SaaSTable": { + "$ref": "#/definitions/SaaSTable" + }, "RelationalTable": { "$ref": "#/definitions/RelationalTable" }, @@ -1220,6 +2054,22 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: FLOAT | FIXED \nUpdate requires: No interruption\n" }, + "DataPrepAggregationFunction": { + "additionalProperties": false, + "type": "object", + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/DataPrepPercentileAggregationFunction" + }, + "SimpleAggregation": { + "$ref": "#/definitions/DataPrepSimpleAggregationFunction" + }, + "ListAggregation": { + "$ref": "#/definitions/DataPrepListAggregationFunction" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ColumnTag": { "description": "

A tag for a column in a\n \n TagColumnOperation\n \n structure. This is a\n variant type structure. For this structure to be valid, only one of the attributes can\n be non-null.

", "additionalProperties": false, @@ -1257,6 +2107,25 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SPICE | DIRECT_QUERY \nUpdate requires: No interruption\n" }, + "JoinOperandProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "OutputColumnNameOverrides": { + "minItems": 1, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/OutputColumnNameOverride" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OutputColumnNameOverrides" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RowLevelPermissionDataSet": { "description": "

Information about a dataset that contains permissions for row-level security (RLS).\n The permissions dataset maps fields to users or groups. For more information, see\n Using Row-Level Security (RLS) to Restrict Access to a Dataset in the Amazon QuickSight User\n Guide.

\n

The option to deny permissions by setting PermissionPolicy to DENY_ACCESS is\n not supported for new RLS datasets.

", "additionalProperties": false, @@ -1308,18 +2177,73 @@ "description": "

The new name for the column.

", "type": "string", "maxLength": 127, - "markdownDescription": "

The new name for the column.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + "markdownDescription": "

The new name for the column.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" }, "ColumnName": { "minLength": 1, "description": "

The name of the column to be renamed.

", "type": "string", "maxLength": 127, - "markdownDescription": "

The name of the column to be renamed.

\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + "markdownDescription": "

The name of the column to be renamed.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" } }, + "required": [ + "ColumnName", + "NewColumnName" + ], "markdownDescription": "

A transform operation that renames a column.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataPrepListAggregationFunction": { + "additionalProperties": false, + "type": "object", + "properties": { + "Distinct": { + "default": false, + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "InputColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "Separator": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Distinct", + "Separator" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TransformOperationSource": { + "additionalProperties": false, + "type": "object", + "properties": { + "TransformOperationId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[0-9a-zA-Z-]*$ \nUpdate requires: No interruption\n" + }, + "ColumnIdMappings": { + "minItems": 1, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/DataSetColumnIdMapping" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TransformOperationId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "FieldFolderMap": { "patternProperties": { ".+": { @@ -1330,6 +2254,48 @@ "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataSetNumericFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "ColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "RangeFilterCondition": { + "$ref": "#/definitions/DataSetNumericRangeFilterCondition" + }, + "ComparisonFilterCondition": { + "$ref": "#/definitions/DataSetNumericComparisonFilterCondition" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetDateRangeFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "IncludeMaximum": { + "default": null, + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "RangeMinimum": { + "$ref": "#/definitions/DataSetDateFilterValue" + }, + "RangeMaximum": { + "$ref": "#/definitions/DataSetDateFilterValue" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RowLevelPermissionFormatVersion": { "type": "string", "enum": [ @@ -1338,6 +2304,38 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: VERSION_1 | VERSION_2 \nUpdate requires: No interruption\n" }, + "AppendOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "AppendedColumns": { + "minItems": 0, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/AppendedColumn" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "SecondSource": { + "$ref": "#/definitions/TransformOperationSource" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "FirstSource": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "AppendedColumns" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ColumnDataType": { "type": "string", "enum": [ @@ -1348,6 +2346,18 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | INTEGER | DECIMAL | DATETIME \nUpdate requires: No interruption\n" }, + "DataSetNumericFilterValue": { + "additionalProperties": false, + "type": "object", + "properties": { + "StaticValue": { + "default": null, + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "JoinInstruction": { "description": "

The instructions associated with a join.

", "additionalProperties": false, @@ -1392,6 +2402,32 @@ ], "markdownDescription": "

The instructions associated with a join.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "SemanticTable": { + "additionalProperties": false, + "type": "object", + "properties": { + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "DestinationTableId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[0-9a-zA-Z-]*$ \nUpdate requires: No interruption\n" + }, + "RowLevelPermissionConfiguration": { + "$ref": "#/definitions/RowLevelPermissionConfiguration" + } + }, + "required": [ + "Alias", + "DestinationTableId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "JoinType": { "type": "string", "enum": [ @@ -1402,6 +2438,22 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: INNER | OUTER | LEFT | RIGHT \nUpdate requires: No interruption\n" }, + "SourceTable": { + "additionalProperties": false, + "type": "object", + "properties": { + "PhysicalTableId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[0-9a-zA-Z-]*$ \nUpdate requires: No interruption\n" + }, + "DataSet": { + "$ref": "#/definitions/ParentDataSet" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RowLevelPermissionTagConfiguration": { "description": "

The configuration of tags on a dataset to set row-level security.

", "additionalProperties": false, @@ -1453,9 +2505,6 @@ "TagColumnOperation": { "$ref": "#/definitions/TagColumnOperation" }, - "RenameColumnOperation": { - "$ref": "#/definitions/RenameColumnOperation" - }, "UntagColumnOperation": { "$ref": "#/definitions/UntagColumnOperation" }, @@ -1471,12 +2520,34 @@ "CreateColumnsOperation": { "$ref": "#/definitions/CreateColumnsOperation" }, + "RenameColumnOperation": { + "$ref": "#/definitions/RenameColumnOperation" + }, "ProjectOperation": { "$ref": "#/definitions/ProjectOperation" } }, "markdownDescription": "

A data transformation on a logical table. This is a variant type structure. For this\n structure to be valid, only one of the attributes can be non-null.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ColumnToUnpivot": { + "additionalProperties": false, + "type": "object", + "properties": { + "ColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "NewValue": { + "minLength": 0, + "type": "string", + "maxLength": 2047, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2047 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "InputColumnDataType": { "type": "string", "enum": [ @@ -1486,9 +2557,75 @@ "DATETIME", "BIT", "BOOLEAN", - "JSON" + "JSON", + "SEMISTRUCT" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | INTEGER | DECIMAL | DATETIME | BIT | BOOLEAN | JSON \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | INTEGER | DECIMAL | DATETIME | BIT | BOOLEAN | JSON | SEMISTRUCT \nUpdate requires: No interruption\n" + }, + "ParentDataSet": { + "additionalProperties": false, + "type": "object", + "properties": { + "InputColumns": { + "minItems": 0, + "maxItems": 2048, + "type": "array", + "items": { + "$ref": "#/definitions/InputColumn" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DataSetArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DataSetArn", + "InputColumns" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "JoinOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "OnClause": { + "minLength": 1, + "type": "string", + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\n" + }, + "Type": { + "$ref": "#/definitions/JoinOperationType" + }, + "RightOperandProperties": { + "$ref": "#/definitions/JoinOperandProperties" + }, + "LeftOperandProperties": { + "$ref": "#/definitions/JoinOperandProperties" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "LeftOperand": { + "$ref": "#/definitions/TransformOperationSource" + }, + "RightOperand": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "LeftOperand", + "RightOperand", + "Type", + "OnClause" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "UniqueKey": { "additionalProperties": false, @@ -1504,9 +2641,12 @@ "maxLength": 127, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, + "required": [ + "ColumnNames" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "GeoSpatialDataRole": { @@ -1551,9 +2691,10 @@ "type": "array", "items": { "default": 0, + "format": "int64", "description": "

The default value for the integer parameter.

", - "type": "number", - "markdownDescription": "

The default value for the integer parameter.

\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "type": "integer", + "markdownDescription": "

The default value for the integer parameter.

\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "markdownDescription": "

A list of static default values for a given integer parameter.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, @@ -1586,6 +2727,48 @@ }, "markdownDescription": "

The configuration that overrides the existing default values for a dataset parameter that is inherited from another dataset.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DataPrepPercentileAggregationFunction": { + "additionalProperties": false, + "type": "object", + "properties": { + "InputColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "PercentileValue": { + "default": 0, + "maximum": 100, + "type": "number", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PercentileValue" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetDateFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "ColumnName": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "RangeFilterCondition": { + "$ref": "#/definitions/DataSetDateRangeFilterCondition" + }, + "ComparisonFilterCondition": { + "$ref": "#/definitions/DataSetDateComparisonFilterCondition" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "DataSetUsageConfiguration": { "description": "

The usage configuration to apply to child datasets that reference this dataset as a source.

", "additionalProperties": false, @@ -1606,6 +2789,43 @@ }, "markdownDescription": "

The usage configuration to apply to child datasets that reference this dataset as a source.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DestinationTableSource": { + "additionalProperties": false, + "type": "object", + "properties": { + "TransformOperationId": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[0-9a-zA-Z-]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TransformOperationId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataPrepConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "DestinationTableMap": { + "$ref": "#/definitions/DestinationTableMap" + }, + "TransformStepMap": { + "$ref": "#/definitions/TransformStepMap" + }, + "SourceTableMap": { + "$ref": "#/definitions/SourceTableMap" + } + }, + "required": [ + "DestinationTableMap", + "SourceTableMap", + "TransformStepMap" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ColumnGroup": { "description": "

Groupings of columns that work together in certain Amazon QuickSight features. This is\n a variant type structure. For this structure to be valid, only one of the attributes can\n be non-null.

", "additionalProperties": false, @@ -1642,7 +2862,7 @@ "items": { "$ref": "#/definitions/InputColumn" }, - "markdownDescription": "

The column schema from the SQL query result set.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "

The column schema from the SQL query result set.

\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "Name": { "minLength": 1, @@ -1653,11 +2873,89 @@ } }, "required": [ + "Columns", "DataSourceArn", "Name", "SqlQuery" ], "markdownDescription": "

A physical table type built from the results of the custom SQL query.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetStringListFilterValue": { + "additionalProperties": false, + "type": "object", + "properties": { + "StaticValues": { + "minItems": 0, + "maxItems": 1000, + "type": "array", + "items": { + "minLength": 0, + "type": "string", + "maxLength": 512, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 512 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AggregateOperation": { + "additionalProperties": false, + "type": "object", + "properties": { + "GroupByColumnNames": { + "minItems": 0, + "maxItems": 128, + "type": "array", + "items": { + "minLength": 1, + "type": "string", + "maxLength": 127, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 127 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Alias": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "Aggregations": { + "minItems": 0, + "maxItems": 128, + "type": "array", + "items": { + "$ref": "#/definitions/Aggregation" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Source": { + "$ref": "#/definitions/TransformOperationSource" + } + }, + "required": [ + "Alias", + "Source", + "Aggregations" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataSetDateComparisonFilterCondition": { + "additionalProperties": false, + "type": "object", + "properties": { + "Operator": { + "$ref": "#/definitions/DataSetDateComparisonFilterOperator" + }, + "Value": { + "$ref": "#/definitions/DataSetDateFilterValue" + } + }, + "required": [ + "Operator" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -1741,6 +3039,9 @@ "type": "string", "markdownDescription": "

The last time that this dataset was updated.

\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "SemanticModelConfiguration": { + "$ref": "#/definitions/SemanticModelConfiguration" + }, "DataSetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" @@ -1797,6 +3098,9 @@ }, "markdownDescription": "

The list of columns after all transforms. These columns are available in templates,\n analyses, and dashboards.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "DataPrepConfiguration": { + "$ref": "#/definitions/DataPrepConfiguration" + }, "Arn": { "description": "

The Amazon Resource Name (ARN) of the resource.

", "type": "string", diff --git a/server/schema/resources/aws-quicksight-datasource.json b/server/schema/resources/aws-quicksight-datasource.json index 63bc63e5..4b735a7a 100644 --- a/server/schema/resources/aws-quicksight-datasource.json +++ b/server/schema/resources/aws-quicksight-datasource.json @@ -119,6 +119,17 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "S3TablesParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "TableBucketArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:bucket/[a-zA-Z0-9-_]{3,63})$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "AuroraPostgreSqlParameters": { "description": "

Parameters for Amazon Aurora PostgreSQL-Compatible Edition.

", "additionalProperties": false, @@ -173,10 +184,42 @@ }, "CredentialPair": { "$ref": "#/definitions/CredentialPair" + }, + "KeyPairCredentials": { + "$ref": "#/definitions/KeyPairCredentials" } }, "markdownDescription": "

Data source credentials. This is a variant type structure. For this structure to be\n valid, only one of the attributes can be non-null.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "KeyPairCredentials": { + "additionalProperties": false, + "type": "object", + "properties": { + "KeyPairUsername": { + "minLength": 1, + "type": "string", + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "PrivateKey": { + "minLength": 1600, + "type": "string", + "maxLength": 8000, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1600 \nMaximum Length: 8000 \nPattern: ^-{5}BEGIN (ENCRYPTED )?PRIVATE KEY-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END (ENCRYPTED )?PRIVATE KEY-{5}(\\u000D?\\u000A)?$ \nUpdate requires: No interruption\n" + }, + "PrivateKeyPassphrase": { + "minLength": 0, + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "KeyPairUsername", + "PrivateKey" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ManifestFileLocation": { "description": "

Amazon S3 manifest file location.

", "additionalProperties": false, @@ -380,6 +423,7 @@ "EXASOL", "FILE", "GITHUB", + "INTERNATIONAL_DATA_CORPORATION", "JIRA", "MARIADB", "MYSQL", @@ -414,9 +458,10 @@ "CONFLUENCE", "SHAREPOINT", "ONE_DRIVE", - "WEB_CRAWLER" + "WEB_CRAWLER", + "BOX" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ADOBE_ANALYTICS | AMAZON_ELASTICSEARCH | AMAZON_OPENSEARCH | ATHENA | AURORA | AURORA_POSTGRESQL | AWS_IOT_ANALYTICS | DATABRICKS | DENODO | DREMIO | DYNAMODB | SAPHANA | DB2_AS400 | EXASOL | FILE | GITHUB | JIRA | MARIADB | MYSQL | ORACLE | POSTGRESQL | PRESTO | QBUSINESS | REDSHIFT | S3 | S3_TABLES | S3_KNOWLEDGE_BASE | SALESFORCE | SERVICENOW | SNOWFLAKE | SPARK | SPICE | SQLSERVER | TERADATA | TIMESTREAM | TWITTER | BIGQUERY | GOOGLE_ANALYTICS | TRINO | STARBURST | MONGO | MONGO_ATLAS | DOCUMENTDB | APPFLOW | IMPALA | GLUE | GOOGLE_DRIVE | CONFLUENCE | SHAREPOINT | ONE_DRIVE | WEB_CRAWLER \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ADOBE_ANALYTICS | AMAZON_ELASTICSEARCH | AMAZON_OPENSEARCH | ATHENA | AURORA | AURORA_POSTGRESQL | AWS_IOT_ANALYTICS | DATABRICKS | DENODO | DREMIO | DYNAMODB | SAPHANA | DB2_AS400 | EXASOL | FILE | GITHUB | INTERNATIONAL_DATA_CORPORATION | JIRA | MARIADB | MYSQL | ORACLE | POSTGRESQL | PRESTO | QBUSINESS | REDSHIFT | S3 | S3_TABLES | S3_KNOWLEDGE_BASE | SALESFORCE | SERVICENOW | SNOWFLAKE | SPARK | SPICE | SQLSERVER | TERADATA | TIMESTREAM | TWITTER | BIGQUERY | GOOGLE_ANALYTICS | TRINO | STARBURST | MONGO | MONGO_ATLAS | DOCUMENTDB | APPFLOW | IMPALA | GLUE | GOOGLE_DRIVE | CONFLUENCE | SHAREPOINT | ONE_DRIVE | WEB_CRAWLER | BOX \nUpdate requires: No interruption\n" }, "OAuthParameters": { "additionalProperties": false, @@ -636,9 +681,10 @@ "enum": [ "PASSWORD", "TOKEN", - "X509" + "X509", + "KEYPAIR" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PASSWORD | TOKEN | X509 \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PASSWORD | TOKEN | X509 | KEYPAIR \nUpdate requires: No interruption\n" }, "DataSourceErrorInfo": { "description": "

Error information for the data source creation or update.

", @@ -910,6 +956,9 @@ "additionalProperties": false, "type": "object", "properties": { + "S3TablesParameters": { + "$ref": "#/definitions/S3TablesParameters" + }, "AuroraPostgreSqlParameters": { "$ref": "#/definitions/AuroraPostgreSqlParameters" }, diff --git a/server/schema/resources/aws-quicksight-template.json b/server/schema/resources/aws-quicksight-template.json index a63dedd1..6540cde3 100644 --- a/server/schema/resources/aws-quicksight-template.json +++ b/server/schema/resources/aws-quicksight-template.json @@ -122,7 +122,9 @@ "TotalCellStyle": { "$ref": "#/definitions/TableCellStyle" }, - "TotalsVisibility": {}, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, "MetricHeaderCellStyle": { "$ref": "#/definitions/TableCellStyle" } @@ -150,8 +152,12 @@ "InfoIconLabelOptions": { "$ref": "#/definitions/SheetControlInfoIconLabelOptions" }, - "HelperTextVisibility": {}, - "DateIconVisibility": {}, + "HelperTextVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DateIconVisibility": { + "$ref": "#/definitions/Visibility" + }, "DateTimeFormat": { "minLength": 1, "type": "string", @@ -196,7 +202,9 @@ "Symbol": { "$ref": "#/definitions/NumericSeparatorSymbol" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "GroupingStyle": { "$ref": "#/definitions/DigitGroupingStyle" } @@ -390,7 +398,9 @@ "LineStyle": { "$ref": "#/definitions/LineChartLineStyle" }, - "LineVisibility": {}, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, "LineWidth": { "description": "String based length that is composed of value and unit in px", "type": "string", @@ -562,7 +572,9 @@ "additionalProperties": false, "type": "object", "properties": { - "MissingDateVisibility": {} + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -659,8 +671,12 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "AxisLineVisibility": {}, - "GridLineVisibility": {}, + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, "ScrollbarOptions": { "$ref": "#/definitions/ScrollBarOptions" } @@ -677,7 +693,9 @@ "maxLength": 512, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\n" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "FieldValue": { "minLength": 0, "type": "string", @@ -1499,7 +1517,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -1738,7 +1758,9 @@ "maxLength": 1024, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -1834,7 +1856,9 @@ "maxLength": 512, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\n" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "Width": { "description": "String based length that is composed of value and unit in px", "type": "string", @@ -1912,7 +1936,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "FormatText": { "$ref": "#/definitions/LongFormatText" } @@ -2538,19 +2564,27 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "MeasureLabelVisibility": {}, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, "Position": { "$ref": "#/definitions/DataLabelPosition" }, "LabelContent": { "$ref": "#/definitions/DataLabelContent" }, - "Visibility": {}, - "TotalsVisibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, "Overlap": { "$ref": "#/definitions/DataLabelOverlap" }, - "CategoryLabelVisibility": {}, + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, "LabelColor": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}$ \nUpdate requires: No interruption\n" @@ -2687,7 +2721,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "TooltipText": { "$ref": "#/definitions/SheetImageTooltipText" } @@ -2833,8 +2869,12 @@ "additionalProperties": false, "type": "object", "properties": { - "OverflowColumnHeaderVisibility": {}, - "VerticalOverflowVisibility": {} + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -2881,8 +2921,12 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}$ \nUpdate requires: No interruption\n" }, - "TooltipVisibility": {}, - "Visibility": {} + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "required": [ "Type" @@ -3023,7 +3067,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -3183,7 +3229,9 @@ "VisibleRange": { "$ref": "#/definitions/VisibleRangeOptions" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -3839,7 +3887,9 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "RenderingRules": { "minItems": 0, "maxItems": 10000, @@ -4281,7 +4331,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}(?:[A-F0-9]{2})?$ \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -4329,7 +4381,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -4401,7 +4455,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "FontConfiguration": { "$ref": "#/definitions/FontConfiguration" }, @@ -4537,7 +4593,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}(?:[A-F0-9]{2})?$ \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -5395,7 +5453,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -5403,7 +5463,9 @@ "additionalProperties": false, "type": "object", "properties": { - "LabelVisibility": {} + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -5982,7 +6044,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -6004,7 +6068,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -6084,7 +6150,9 @@ "TotalCellStyle": { "$ref": "#/definitions/TableCellStyle" }, - "TotalsVisibility": {}, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, "FieldLevel": { "$ref": "#/definitions/PivotTableSubtotalLevel" }, @@ -6107,8 +6175,12 @@ "additionalProperties": false, "type": "object", "properties": { - "OverflowColumnHeaderVisibility": {}, - "VerticalOverflowVisibility": {} + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -7018,12 +7090,18 @@ "additionalProperties": false, "type": "object", "properties": { - "MeasureLabelVisibility": {}, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, "Position": { "$ref": "#/definitions/DataLabelPosition" }, - "Visibility": {}, - "CategoryLabelVisibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, "LabelColor": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}$ \nUpdate requires: No interruption\n" @@ -7049,7 +7127,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -7435,8 +7515,12 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {}, - "SortIconVisibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, "AxisLabelOptions": { "minItems": 0, "maxItems": 100, @@ -7805,7 +7889,9 @@ "RowHeaderStyle": { "$ref": "#/definitions/TableCellStyle" }, - "CollapsedRowDimensionsVisibility": {}, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, "RowsLayout": { "$ref": "#/definitions/PivotTableRowsLayout" }, @@ -7817,15 +7903,21 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ColumnNamesVisibility": {}, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, "RowsLabelOptions": { "$ref": "#/definitions/PivotTableRowsLabelOptions" }, - "SingleMetricVisibility": {}, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, "ColumnHeaderStyle": { "$ref": "#/definitions/TableCellStyle" }, - "ToggleButtonsVisibility": {}, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + }, "CellStyle": { "$ref": "#/definitions/TableCellStyle" }, @@ -8092,7 +8184,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "InfoIconText": { "minLength": 1, "type": "string", @@ -8707,7 +8801,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -8899,7 +8995,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -8916,7 +9014,9 @@ "Title": { "$ref": "#/definitions/LabelOptions" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "Height": { "description": "String based length that is composed of value and unit in px", "type": "string", @@ -9200,7 +9300,9 @@ "VerticalTextAlignment": { "$ref": "#/definitions/VerticalTextAlignment" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "Height": { "maximum": 500, "type": "number", @@ -9351,7 +9453,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -9381,7 +9485,9 @@ "TotalCellStyle": { "$ref": "#/definitions/TableCellStyle" }, - "TotalsVisibility": {} + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -9456,7 +9562,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -10242,7 +10350,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -10298,7 +10408,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "FontConfiguration": { "$ref": "#/definitions/FontConfiguration" } @@ -10415,7 +10527,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "required": [ "FieldId" @@ -10459,7 +10573,9 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "MarkerVisibility": {}, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + }, "MarkerColor": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}$ \nUpdate requires: No interruption\n" @@ -11189,7 +11305,9 @@ "maxLength": 512, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -11328,7 +11446,9 @@ "maxLength": 512, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 512 \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "required": [ "FieldId" @@ -11825,7 +11945,9 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Visibility": {} + "Visibility": { + "$ref": "#/definitions/Visibility" + } }, "required": [ "Column" @@ -12149,7 +12271,9 @@ "SelectedTooltipType": { "$ref": "#/definitions/SelectedTooltipType" }, - "TooltipVisibility": {}, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, "FieldBasedTooltip": { "$ref": "#/definitions/FieldBasedTooltip" } @@ -12169,7 +12293,9 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "AggregationVisibility": {}, + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, "TooltipTitleType": { "$ref": "#/definitions/TooltipTitleType" } @@ -12830,7 +12956,9 @@ "VisualPalette": { "$ref": "#/definitions/VisualPalette" }, - "AlternateBandColorsVisibility": {}, + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, "StartAngle": { "maximum": 360, "type": "number", @@ -12864,7 +12992,9 @@ "additionalProperties": false, "type": "object", "properties": { - "Visibility": {}, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, "FormatText": { "$ref": "#/definitions/ShortFormatText" } @@ -13245,8 +13375,12 @@ "type": "string", "markdownDescription": "String based length that is composed of value and unit in px\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "BackgroundVisibility": {}, - "BorderVisibility": {}, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, "BorderColor": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}(?:[A-F0-9]{2})?$ \nUpdate requires: No interruption\n" @@ -13254,7 +13388,9 @@ "Title": { "$ref": "#/definitions/PanelTitleOptions" }, - "GutterVisibility": {}, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, "BackgroundColor": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^#[A-F0-9]{6}(?:[A-F0-9]{2})?$ \nUpdate requires: No interruption\n" @@ -13450,8 +13586,12 @@ "StyleOptions": { "$ref": "#/definitions/BoxPlotStyleOptions" }, - "OutlierVisibility": {}, - "AllDataPointsVisibility": {} + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, diff --git a/server/schema/resources/aws-ram-resourceshare.json b/server/schema/resources/aws-ram-resourceshare.json index b62a3a30..c59b54b5 100644 --- a/server/schema/resources/aws-ram-resourceshare.json +++ b/server/schema/resources/aws-ram-resourceshare.json @@ -1,50 +1,118 @@ { + "tagging": { + "permissions": [ + "ram:TagResource", + "ram:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, "typeName": "AWS::RAM::ResourceShare", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Status", + "/properties/CreationTime", + "/properties/LastUpdatedTime", + "/properties/FeatureSet", + "/properties/OwningAccountId" + ], "description": "Resource type definition for AWS::RAM::ResourceShare", + "primaryIdentifier": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ram", + "handlers": { + "read": { + "permissions": [ + "ram:GetResourceShares" + ] + }, + "create": { + "permissions": [ + "ram:CreateResourceShare", + "ram:TagResource" + ] + }, + "update": { + "permissions": [ + "ram:GetPermission", + "ram:GetResourceShares", + "ram:GetResourceShareAssociations", + "ram:ListResourceSharePermissions", + "ram:UpdateResourceShare", + "ram:AssociateResourceSharePermission", + "ram:AssociateResourceShare", + "ram:DisassociateResourceShare", + "ram:UntagResource", + "ram:TagResource" + ] + }, + "list": { + "permissions": [ + "ram:GetResourceShares" + ] + }, + "delete": { + "permissions": [ + "ram:DeleteResourceShare", + "ram:GetResourceShares" + ] + } + }, + "writeOnlyProperties": [ + "/properties/PermissionArns", + "/properties/Principals", + "/properties/ResourceArns", + "/properties/Sources" + ], + "additionalProperties": false, "definitions": { "Tag": { "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "type": "string", - "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 -.", - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, "Value": { - "type": "string", "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 -.", + "type": "string", "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "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 -.", + "type": "string", + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "Key", "Value" ], - "additionalProperties": false, "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { - "AllowExternalPrincipals": { - "description": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", - "type": "boolean", - "markdownDescription": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "Arn": { + "Status": { + "description": "The current status of the resource share.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Name": { - "description": "Specifies the name of the resource share.", - "type": "string", - "markdownDescription": "Specifies the name of the resource share.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "PENDING", + "ACTIVE", + "FAILED", + "DELETING", + "DELETED" + ], + "markdownDescription": "The current status of the resource share.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | ACTIVE | FAILED | DELETING | DELETED \nUpdate requires: No interruption\nRead only property: Yes" }, "PermissionArns": { "description": "Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.", - "type": "array", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -53,111 +121,126 @@ }, "Principals": { "description": "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user", - "type": "array", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "ResourceArns": { - "description": "Specifies a list of one or more ARNs of the resources to associate with the resource share.", - "type": "array", + "LastUpdatedTime": { + "format": "date-time", + "description": "The date and time when the resource share was last updated.", + "type": "string", + "markdownDescription": "The date and time when the resource share was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Sources": { + "description": "Specifies from which source accounts the service principal has access to the resources in this resource share.", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "Specifies a list of one or more ARNs of the resources to associate with the resource share.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies from which source accounts the service principal has access to the resources in this resource share.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "Sources": { - "description": "Specifies from which source accounts the service principal has access to the resources in this resource share.", - "type": "array", + "Name": { + "description": "Specifies the name of the resource share.", + "type": "string", + "markdownDescription": "Specifies the name of the resource share.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "CreationTime": { + "format": "date-time", + "description": "The date and time when the resource share was created.", + "type": "string", + "markdownDescription": "The date and time when the resource share was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwningAccountId": { + "description": "The ID of the AWS account that owns the resource share.", + "type": "string", + "markdownDescription": "The ID of the AWS account that owns the resource share.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FeatureSet": { + "description": "The feature set of the resource share.", + "type": "string", + "enum": [ + "CREATED_FROM_POLICY", + "PROMOTING_TO_STANDARD", + "STANDARD" + ], + "markdownDescription": "The feature set of the resource share.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATED_FROM_POLICY | PROMOTING_TO_STANDARD | STANDARD \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AllowExternalPrincipals": { + "description": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", + "type": "boolean", + "markdownDescription": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceArns": { + "description": "Specifies a list of one or more ARNs of the resources to associate with the resource share.", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "Specifies from which source accounts the service principal has access to the resources in this resource share.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies a list of one or more ARNs of the resources to associate with the resource share.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Tags": { - "description": "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", - "type": "array", "uniqueItems": true, + "description": "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, - "required": [ - "Name" - ], - "readOnlyProperties": [ - "/properties/Arn" - ], - "writeOnlyProperties": [ - "/properties/PermissionArns", - "/properties/Principals", - "/properties/ResourceArns", - "/properties/Sources" - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags", - "permissions": [ - "ram:TagResource", - "ram:UntagResource" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ram:CreateResourceShare", - "ram:TagResource" - ] + "attributes": { + "Status": { + "description": "The current status of the resource share.", + "type": "string", + "enum": [ + "PENDING", + "ACTIVE", + "FAILED", + "DELETING", + "DELETED" + ], + "markdownDescription": "The current status of the resource share.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | ACTIVE | FAILED | DELETING | DELETED \nUpdate requires: No interruption\nRead only property: Yes" }, - "read": { - "permissions": [ - "ram:GetResourceShares" - ] + "LastUpdatedTime": { + "format": "date-time", + "description": "The date and time when the resource share was last updated.", + "type": "string", + "markdownDescription": "The date and time when the resource share was last updated.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "update": { - "permissions": [ - "ram:GetPermission", - "ram:GetResourceShares", - "ram:GetResourceShareAssociations", - "ram:ListResourceSharePermissions", - "ram:UpdateResourceShare", - "ram:AssociateResourceSharePermission", - "ram:AssociateResourceShare", - "ram:DisassociateResourceShare", - "ram:UntagResource", - "ram:TagResource" - ] + "CreationTime": { + "format": "date-time", + "description": "The date and time when the resource share was created.", + "type": "string", + "markdownDescription": "The date and time when the resource share was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "delete": { - "permissions": [ - "ram:DeleteResourceShare", - "ram:GetResourceShares" - ] + "OwningAccountId": { + "description": "The ID of the AWS account that owns the resource share.", + "type": "string", + "markdownDescription": "The ID of the AWS account that owns the resource share.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FeatureSet": { + "description": "The feature set of the resource share.", + "type": "string", + "enum": [ + "CREATED_FROM_POLICY", + "PROMOTING_TO_STANDARD", + "STANDARD" + ], + "markdownDescription": "The feature set of the resource share.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATED_FROM_POLICY | PROMOTING_TO_STANDARD | STANDARD \nUpdate requires: No interruption\nRead only property: Yes" }, - "list": { - "permissions": [ - "ram:GetResourceShares" - ] - } - }, - "attributes": { "Arn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" diff --git a/server/schema/resources/aws-rbin-rule.json b/server/schema/resources/aws-rbin-rule.json index 2361d63d..2df11899 100644 --- a/server/schema/resources/aws-rbin-rule.json +++ b/server/schema/resources/aws-rbin-rule.json @@ -151,9 +151,10 @@ "type": "string", "enum": [ "EBS_SNAPSHOT", - "EC2_IMAGE" + "EC2_IMAGE", + "EBS_VOLUME" ], - "markdownDescription": "The resource type retained by the retention rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: EBS_SNAPSHOT | EC2_IMAGE \nUpdate requires: Replacement\n" + "markdownDescription": "The resource type retained by the retention rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: EBS_SNAPSHOT | EC2_IMAGE | EBS_VOLUME \nUpdate requires: Replacement\n" }, "Tags": { "description": "Information about the tags assigned to the retention rule.", diff --git a/server/schema/resources/aws-rds-dbcluster.json b/server/schema/resources/aws-rds-dbcluster.json index 9b92ae7f..1146a00c 100644 --- a/server/schema/resources/aws-rds-dbcluster.json +++ b/server/schema/resources/aws-rds-dbcluster.json @@ -190,9 +190,9 @@ "markdownDescription": "The DB engine mode of the DB cluster, either ``provisioned`` or ``serverless``.\n The ``serverless`` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora Serverless v2 DB clusters use the ``provisioned`` engine mode.\n For information about limitations and requirements for Serverless DB clusters, see the following sections in the *Amazon Aurora User Guide*:\n + [Limitations of Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n + [Requirements for Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) \n \n Valid for Cluster Type: Aurora DB clusters only\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "EngineVersion": { - "description": "The version number of the database engine to use.\n To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (8.0-compatible), use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"`` \n You can supply either ``5.7`` or ``8.0`` to use the default engine version for Aurora MySQL version 2 or version 3, respectively.\n To list all of the available engine versions for Aurora PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for MySQL, use the following command:\n ``aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"`` \n *Aurora MySQL* \n For information, see [Database engine updates for Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in the *Amazon Aurora User Guide*.\n *Aurora PostgreSQL* \n For information, see [Amazon Aurora PostgreSQL releases and engine versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) in the *Amazon Aurora User Guide*.\n *MySQL* \n For information, see [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide*.\n *PostgreSQL* \n For information, see [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the *Amazon RDS User Guide*.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "description": "The version number of the database engine to use.\n Don't use this property if your DB cluster is a member of a global database cluster. Instead, specify the ``EngineVersion`` property on the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource. Major version upgrades aren't supported for individual members of a global cluster. Use ``ModifyGlobalCluster`` to upgrade all members of the global cluster.\n To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (8.0-compatible), use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"`` \n You can supply either ``5.7`` or ``8.0`` to use the default engine version for Aurora MySQL version 2 or version 3, respectively.\n To list all of the available engine versions for Aurora PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for MySQL, use the following command:\n ``aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"`` \n *Aurora MySQL* \n For information, see [Database engine updates for Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in the *Amazon Aurora User Guide*.\n *Aurora PostgreSQL* \n For information, see [Amazon Aurora PostgreSQL releases and engine versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) in the *Amazon Aurora User Guide*.\n *MySQL* \n For information, see [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide*.\n *PostgreSQL* \n For information, see [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the *Amazon RDS User Guide*.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string", - "markdownDescription": "The version number of the database engine to use.\n To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (8.0-compatible), use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"`` \n You can supply either ``5.7`` or ``8.0`` to use the default engine version for Aurora MySQL version 2 or version 3, respectively.\n To list all of the available engine versions for Aurora PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for MySQL, use the following command:\n ``aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"`` \n *Aurora MySQL* \n For information, see [Database engine updates for Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in the *Amazon Aurora User Guide*.\n *Aurora PostgreSQL* \n For information, see [Amazon Aurora PostgreSQL releases and engine versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) in the *Amazon Aurora User Guide*.\n *MySQL* \n For information, see [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide*.\n *PostgreSQL* \n For information, see [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the *Amazon RDS User Guide*.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The version number of the database engine to use.\n Don't use this property if your DB cluster is a member of a global database cluster. Instead, specify the ``EngineVersion`` property on the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource. Major version upgrades aren't supported for individual members of a global cluster. Use ``ModifyGlobalCluster`` to upgrade all members of the global cluster.\n To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (8.0-compatible), use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"`` \n You can supply either ``5.7`` or ``8.0`` to use the default engine version for Aurora MySQL version 2 or version 3, respectively.\n To list all of the available engine versions for Aurora PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for MySQL, use the following command:\n ``aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"`` \n *Aurora MySQL* \n For information, see [Database engine updates for Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in the *Amazon Aurora User Guide*.\n *Aurora PostgreSQL* \n For information, see [Amazon Aurora PostgreSQL releases and engine versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) in the *Amazon Aurora User Guide*.\n *MySQL* \n For information, see [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide*.\n *PostgreSQL* \n For information, see [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the *Amazon RDS User Guide*.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ManageMasterUserPassword": { "description": "Specifies whether to manage the master user password with AWS Secrets Manager.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Constraints:\n + Can't manage the master user password with AWS Secrets Manager if ``MasterUserPassword`` is specified.", @@ -261,9 +261,9 @@ "markdownDescription": "The number of days to retain Performance Insights data. When creating a DB cluster without enabling Performance Insights, you can't specify the parameter ``PerformanceInsightsRetentionPeriod``.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "Port": { - "description": "The port number on which the DB instances in the DB cluster accept connections.\n Default:\n + When ``EngineMode`` is ``provisioned``, ``3306`` (for both Aurora MySQL and Aurora PostgreSQL)\n + When ``EngineMode`` is ``serverless``:\n + ``3306`` when ``Engine`` is ``aurora`` or ``aurora-mysql``\n + ``5432`` when ``Engine`` is ``aurora-postgresql``\n \n \n The ``No interruption`` on update behavior only applies to DB clusters. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "description": "The port number on which the DB instances in the DB cluster accept connections.\n Default:\n + RDS for MySQL and Aurora MySQL - ``3306``\n + RDS for PostgreSQL and Aurora PostgreSQL - ``5432``\n \n The ``No interruption`` on update behavior only applies to DB clusters. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "integer", - "markdownDescription": "The port number on which the DB instances in the DB cluster accept connections.\n Default:\n + When ``EngineMode`` is ``provisioned``, ``3306`` (for both Aurora MySQL and Aurora PostgreSQL)\n + When ``EngineMode`` is ``serverless``:\n + ``3306`` when ``Engine`` is ``aurora`` or ``aurora-mysql``\n + ``5432`` when ``Engine`` is ``aurora-postgresql``\n \n \n The ``No interruption`` on update behavior only applies to DB clusters. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The port number on which the DB instances in the DB cluster accept connections.\n Default:\n + RDS for MySQL and Aurora MySQL - ``3306``\n + RDS for PostgreSQL and Aurora PostgreSQL - ``5432``\n \n The ``No interruption`` on update behavior only applies to DB clusters. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "PreferredBackupWindow": { "description": "The daily time range during which automated backups are created. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) in the *Amazon Aurora User Guide.*\n Constraints:\n + Must be in the format ``hh24:mi-hh24:mi``.\n + Must be in Universal Coordinated Time (UTC).\n + Must not conflict with the preferred maintenance window.\n + Must be at least 30 minutes.\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", @@ -276,9 +276,9 @@ "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).\n Format: ``ddd:hh24:mi-ddd:hh24:mi``\n 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 [Maintaining an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide.*\n Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.\n Constraints: Minimum 30-minute window.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PubliclyAccessible": { - "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + "description": "Specifies whether the DB cluster is publicly accessible.\n Valid for Cluster Type: Multi-AZ DB clusters only\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is controlled by its security group settings.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n The default behavior when ``PubliclyAccessible`` is not specified depends on whether a ``DBSubnetGroup`` is specified.\n If ``DBSubnetGroup`` isn't specified, ``PubliclyAccessible`` defaults to ``true``.\n If ``DBSubnetGroup`` is specified, ``PubliclyAccessible`` defaults to ``false`` unless the value of ``DBSubnetGroup`` is ``default``, in which case ``PubliclyAccessible`` defaults to ``true``.\n If ``PubliclyAccessible`` is true and the VPC that the ``DBSubnetGroup`` is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.", "type": "boolean", - "markdownDescription": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "markdownDescription": "Specifies whether the DB cluster is publicly accessible.\n Valid for Cluster Type: Multi-AZ DB clusters only\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is controlled by its security group settings.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n The default behavior when ``PubliclyAccessible`` is not specified depends on whether a ``DBSubnetGroup`` is specified.\n If ``DBSubnetGroup`` isn't specified, ``PubliclyAccessible`` defaults to ``true``.\n If ``DBSubnetGroup`` is specified, ``PubliclyAccessible`` defaults to ``false`` unless the value of ``DBSubnetGroup`` is ``default``, in which case ``PubliclyAccessible`` defaults to ``true``.\n If ``PubliclyAccessible`` is true and the VPC that the ``DBSubnetGroup`` is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "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.\n Valid for: Aurora DB clusters only", @@ -330,6 +330,11 @@ "type": "boolean", "markdownDescription": "Indicates whether the DB cluster is encrypted.\n If you specify the ``KmsKeyId`` property, then you must enable encryption.\n If you specify the ``SourceDBClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified ``KmsKeyId`` property is used.\n If you specify the ``SnapshotIdentifier`` and the specified snapshot is encrypted, don't specify this property. The value is inherited from the snapshot, and the specified ``KmsKeyId`` property is used.\n If you specify the ``SnapshotIdentifier`` and the specified snapshot isn't encrypted, you can use this property to specify that the restored DB cluster is encrypted. Specify the ``KmsKeyId`` property for the KMS key to use for encryption. If you don't want the restored DB cluster to be encrypted, then don't set this property or set it to ``false``.\n If you specify both the ``StorageEncrypted`` and ``SnapshotIdentifier`` properties without specifying the ``KmsKeyId`` property, then the restored DB cluster inherits the encryption settings from the DB snapshot that provide.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, + "StorageEncryptionType": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "StorageThroughput": { "description": "", "type": "integer", @@ -551,6 +556,7 @@ "/properties/ReadEndpoint", "/properties/ReadEndpoint/Address", "/properties/MasterUserSecret/SecretArn", + "/properties/StorageEncryptionType", "/properties/StorageThroughput" ], "createOnlyProperties": [ @@ -694,6 +700,11 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "StorageEncryptionType": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "StorageThroughput": { "description": "", "type": "integer", diff --git a/server/schema/resources/aws-rds-dbinstance.json b/server/schema/resources/aws-rds-dbinstance.json index 6c05af4e..c7205380 100644 --- a/server/schema/resources/aws-rds-dbinstance.json +++ b/server/schema/resources/aws-rds-dbinstance.json @@ -159,6 +159,44 @@ }, "description": "The ``MasterUserSecret`` return value specifies the secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", "markdownDescription": "The ``MasterUserSecret`` return value specifies the secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AdditionalStorageVolume": { + "type": "object", + "additionalProperties": false, + "properties": { + "VolumeName": { + "type": "string", + "description": "The name of the additional storage volume.\n Valid Values: ``RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4``", + "markdownDescription": "The name of the additional storage volume.\n Valid Values: ``RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4``\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "StorageType": { + "type": "string", + "description": "The storage type for the additional storage volume.\n Valid Values: ``GP3 | IO2``", + "markdownDescription": "The storage type for the additional storage volume.\n Valid Values: ``GP3 | IO2``\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AllocatedStorage": { + "type": "string", + "description": "The amount of storage allocated for the additional storage volume, in gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 TiB).", + "markdownDescription": "The amount of storage allocated for the additional storage volume, in gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 TiB).\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]*$ \nUpdate requires: No interruption\n" + }, + "Iops": { + "type": "integer", + "description": "The number of I/O operations per second (IOPS) provisioned for the additional storage volume.", + "markdownDescription": "The number of I/O operations per second (IOPS) provisioned for the additional storage volume.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxAllocatedStorage": { + "type": "integer", + "description": "The upper limit in gibibytes (GiB) to which RDS can automatically scale the storage of the additional storage volume.", + "markdownDescription": "The upper limit in gibibytes (GiB) to which RDS can automatically scale the storage of the additional storage volume.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "StorageThroughput": { + "type": "integer", + "description": "The storage throughput value for the additional storage volume, in mebibytes per second (MiBps). This setting applies only to the General Purpose SSD (``gp3``) storage type.", + "markdownDescription": "The storage throughput value for the additional storage volume, in mebibytes per second (MiBps). This setting applies only to the General Purpose SSD (``gp3``) storage type.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "description": "Contains details about an additional storage volume for a DB instance. RDS support additional storage volumes for RDS for Oracle and RDS for SQL Server.", + "markdownDescription": "Contains details about an additional storage volume for a DB instance. RDS support additional storage volumes for RDS for Oracle and RDS for SQL Server.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -523,8 +561,8 @@ }, "PerformanceInsightsKMSKeyId": { "type": "string", - "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you do not specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS account. Your AWS account has a different default KMS key for each AWS Region.\n For information about enabling Performance Insights, see [EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights).", - "markdownDescription": "The AWS KMS key identifier for encryption of Performance Insights data.\n The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you do not specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS account. Your AWS account has a different default KMS key for each AWS Region.\n For information about enabling Performance Insights, see [EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights).\n\n---\n\nRequired: No \nType: String \nUpdate requires: Some interruptions\n" + "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you do not specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS account. Your AWS account has a different default KMS key for each AWS Region.\n *Update behavior:* Once Performance Insights is enabled with a KMS key, you cannot change to a different physical KMS key without replacing the DB instance. However, the following updates do not require replacement:\n + Enabling or disabling Performance Insights using the ``EnablePerformanceInsights`` property\n + Changing between different identifier formats (key ARN, key ID, alias ARN, alias name) of the same physical KMS key\n + Removing the ``PerformanceInsightsKMSKeyId`` property from your template\n \n *Drift behavior:* If you specify ``PerformanceInsightsKMSKeyId`` while ``EnablePerformanceInsights`` is set to ``false``, CloudFormation will report drift. This occurs because the RDS API does not allow setting a KMS key when Performance Insights is disabled. CloudFormation ignores the ``PerformanceInsightsKMSKeyId`` value during instance creation to avoid API errors, resulting in a mismatch between your template and the actual instance configuration.\n To avoid drift, omit both ``EnablePerformanceInsights`` and ``PerformanceInsightsKMSKeyId`` during initial instance creation, then set both properties together when you're ready to enable Performance Insights.\n For information about enabling Performance Insights, see [EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights).", + "markdownDescription": "The AWS KMS key identifier for encryption of Performance Insights data.\n The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you do not specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS account. Your AWS account has a different default KMS key for each AWS Region.\n *Update behavior:* Once Performance Insights is enabled with a KMS key, you cannot change to a different physical KMS key without replacing the DB instance. However, the following updates do not require replacement:\n + Enabling or disabling Performance Insights using the ``EnablePerformanceInsights`` property\n + Changing between different identifier formats (key ARN, key ID, alias ARN, alias name) of the same physical KMS key\n + Removing the ``PerformanceInsightsKMSKeyId`` property from your template\n \n *Drift behavior:* If you specify ``PerformanceInsightsKMSKeyId`` while ``EnablePerformanceInsights`` is set to ``false``, CloudFormation will report drift. This occurs because the RDS API does not allow setting a KMS key when Performance Insights is disabled. CloudFormation ignores the ``PerformanceInsightsKMSKeyId`` value during instance creation to avoid API errors, resulting in a mismatch between your template and the actual instance configuration.\n To avoid drift, omit both ``EnablePerformanceInsights`` and ``PerformanceInsightsKMSKeyId`` during initial instance creation, then set both properties together when you're ready to enable Performance Insights.\n For information about enabling Performance Insights, see [EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights).\n\n---\n\nRequired: No \nType: String \nUpdate requires: Some interruptions\n" }, "PerformanceInsightsRetentionPeriod": { "type": "integer", @@ -701,6 +739,14 @@ "type": "boolean", "description": "Specifies whether changes to the DB instance and any pending modifications are applied immediately, regardless of the ``PreferredMaintenanceWindow`` setting. If set to ``false``, changes are applied during the next maintenance window. Until RDS applies the changes, the DB instance remains in a drift state. As a result, the configuration doesn't fully reflect the requested modifications and temporarily diverges from the intended state.\n In addition to the settings described in [Modifying a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html), this property also determines whether the DB instance reboots when a static parameter is modified in the associated DB parameter group.\n Default: ``true``", "markdownDescription": "Specifies whether changes to the DB instance and any pending modifications are applied immediately, regardless of the ``PreferredMaintenanceWindow`` setting. If set to ``false``, changes are applied during the next maintenance window. Until RDS applies the changes, the DB instance remains in a drift state. As a result, the configuration doesn't fully reflect the requested modifications and temporarily diverges from the intended state.\n In addition to the settings described in [Modifying a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html), this property also determines whether the DB instance reboots when a static parameter is modified in the associated DB parameter group.\n Default: ``true``\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AdditionalStorageVolumes": { + "type": "array", + "items": { + "$ref": "#/definitions/AdditionalStorageVolume" + }, + "description": "The additional storage volumes associated with the DB instance. RDS supports additional storage volumes for RDS for Oracle and RDS for SQL Server.", + "markdownDescription": "The additional storage volumes associated with the DB instance. RDS supports additional storage volumes for RDS for Oracle and RDS for SQL Server.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, diff --git a/server/schema/resources/aws-rds-dbproxy.json b/server/schema/resources/aws-rds-dbproxy.json index 6bad04cd..808fe5c0 100644 --- a/server/schema/resources/aws-rds-dbproxy.json +++ b/server/schema/resources/aws-rds-dbproxy.json @@ -197,6 +197,9 @@ "RoleArn", "VpcSubnetIds" ], + "propertyTransform": { + "/properties/DBProxyName": "$lowercase(DBProxyName)" + }, "readOnlyProperties": [ "/properties/DBProxyArn", "/properties/Endpoint", @@ -213,7 +216,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "rds:AddTagsToResource", diff --git a/server/schema/resources/aws-rds-dbproxyendpoint.json b/server/schema/resources/aws-rds-dbproxyendpoint.json index f2b426ef..14198714 100644 --- a/server/schema/resources/aws-rds-dbproxyendpoint.json +++ b/server/schema/resources/aws-rds-dbproxyendpoint.json @@ -107,6 +107,10 @@ } }, "additionalProperties": false, + "propertyTransform": { + "/properties/DBProxyName": "$lowercase(DBProxyName)", + "/properties/DBProxyEndpointName": "$lowercase(DBProxyEndpointName)" + }, "required": [ "DBProxyName", "DBProxyEndpointName", @@ -128,7 +132,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "rds:AddTagsToResource", diff --git a/server/schema/resources/aws-rds-dbproxytargetgroup.json b/server/schema/resources/aws-rds-dbproxytargetgroup.json index 1581cae9..e8f49766 100644 --- a/server/schema/resources/aws-rds-dbproxytargetgroup.json +++ b/server/schema/resources/aws-rds-dbproxytargetgroup.json @@ -88,6 +88,10 @@ } }, "additionalProperties": false, + "propertyTransform": { + "/properties/DBProxyName": "$lowercase(DBProxyName)", + "/properties/TargetGroupName": "$lowercase(TargetGroupName)" + }, "required": [ "DBProxyName", "TargetGroupName" diff --git a/server/schema/resources/aws-redshift-cluster.json b/server/schema/resources/aws-redshift-cluster.json index 1708d227..aecb7fc7 100644 --- a/server/schema/resources/aws-redshift-cluster.json +++ b/server/schema/resources/aws-redshift-cluster.json @@ -544,9 +544,9 @@ "markdownDescription": "The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin user credentials secret.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "DeferMaintenanceDuration": { - "description": "An integer indicating the duration of the maintenance window in days. If you specify a duration, you can't specify an end time. The duration must be 45 days or less.", + "description": "An integer indicating the duration of the maintenance window in days. If you specify a duration, you can't specify an end time. The duration must be 60 days or less.", "type": "integer", - "markdownDescription": "An integer indicating the duration of the maintenance window in days. If you specify a duration, you can't specify an end time. The duration must be 45 days or less.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "An integer indicating the duration of the maintenance window in days. If you specify a duration, you can't specify an end time. The duration must be 60 days or less.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "DBName": { "description": "The name of the first database to be created when the cluster is created. To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database.", diff --git a/server/schema/resources/aws-redshiftserverless-workgroup.json b/server/schema/resources/aws-redshiftserverless-workgroup.json index d4b00d78..ecae2646 100644 --- a/server/schema/resources/aws-redshiftserverless-workgroup.json +++ b/server/schema/resources/aws-redshiftserverless-workgroup.json @@ -376,7 +376,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "redshift-serverless:ListTagsForResource", @@ -400,8 +400,7 @@ "/properties/Workgroup/BaseCapacity", "/properties/Workgroup/MaxCapacity", "/properties/Workgroup/EnhancedVpcRouting", - "/properties/Workgroup/ConfigParameters/*/ParameterKey", - "/properties/Workgroup/ConfigParameters/*/ParameterValue", + "/properties/Workgroup/ConfigParameters", "/properties/Workgroup/SecurityGroupIds", "/properties/Workgroup/SubnetIds", "/properties/Workgroup/TrackName", diff --git a/server/schema/resources/aws-rekognition-project.json b/server/schema/resources/aws-rekognition-project.json index fa582f42..4bcad0a8 100644 --- a/server/schema/resources/aws-rekognition-project.json +++ b/server/schema/resources/aws-rekognition-project.json @@ -14,6 +14,30 @@ "minLength": 1, "maxLength": 255, "markdownDescription": "The name of the project\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: [a-zA-Z0-9][a-zA-Z0-9_\\-]* \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: \\A(?!aws:)[a-zA-Z0-9+\\-=\\._\\:\\/@]+$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: \\A[a-zA-Z0-9+\\-=\\._\\:\\/@]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -22,6 +46,18 @@ }, "ProjectName": { "$ref": "#/definitions/ProjectName" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 0, + "maxItems": 200, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -37,21 +73,41 @@ "primaryIdentifier": [ "/properties/ProjectName" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rekognition:ListTagsForResource", + "rekognition:TagResource", + "rekognition:UntagResource" + ] + }, "handlers": { "create": { "permissions": [ - "rekognition:CreateProject" + "rekognition:CreateProject", + "rekognition:TagResource", + "rekognition:ListTagsForResource" ], "timeoutInMinutes": 15 }, "read": { "permissions": [ - "rekognition:DescribeProjects" + "rekognition:DescribeProjects", + "rekognition:ListTagsForResource" ], "timeoutInMinutes": 15 }, "update": { - "permissions": [], + "permissions": [ + "rekognition:DescribeProjects", + "rekognition:TagResource", + "rekognition:UntagResource", + "rekognition:ListTagsForResource" + ], "timeoutInMinutes": 15 }, "delete": { diff --git a/server/schema/resources/aws-resourceexplorer2-index.json b/server/schema/resources/aws-resourceexplorer2-index.json index cf9972ec..c1be5d35 100644 --- a/server/schema/resources/aws-resourceexplorer2-index.json +++ b/server/schema/resources/aws-resourceexplorer2-index.json @@ -99,7 +99,7 @@ "tagging": { "taggable": true, "tagOnCreate": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagUpdatable": true, "tagProperty": "/properties/Tags", "permissions": [ diff --git a/server/schema/resources/aws-resourceexplorer2-view.json b/server/schema/resources/aws-resourceexplorer2-view.json index 865e2a4f..60463d8b 100644 --- a/server/schema/resources/aws-resourceexplorer2-view.json +++ b/server/schema/resources/aws-resourceexplorer2-view.json @@ -122,7 +122,7 @@ "tagging": { "taggable": true, "tagOnCreate": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagUpdatable": true, "tagProperty": "/properties/Tags", "permissions": [ diff --git a/server/schema/resources/aws-rolesanywhere-crl.json b/server/schema/resources/aws-rolesanywhere-crl.json index 14cd72fc..98345a50 100644 --- a/server/schema/resources/aws-rolesanywhere-crl.json +++ b/server/schema/resources/aws-rolesanywhere-crl.json @@ -115,6 +115,9 @@ } }, "additionalProperties": false, + "propertyTransform": { + "/properties/CrlData": "$replace(CrlData, /\\s+$/, '')" + }, "attributes": { "CrlId": { "type": "string", diff --git a/server/schema/resources/aws-route53-hostedzone.json b/server/schema/resources/aws-route53-hostedzone.json index b5f7204f..80e1d1c9 100644 --- a/server/schema/resources/aws-route53-hostedzone.json +++ b/server/schema/resources/aws-route53-hostedzone.json @@ -28,6 +28,8 @@ "route53:CreateQueryLoggingConfig", "route53:ChangeTagsForResource", "route53:GetChange", + "route53:GetHostedZone", + "route53:UpdateHostedZoneFeatures", "route53:AssociateVPCWithHostedZone", "ec2:DescribeVpcs" ] @@ -39,6 +41,7 @@ "route53:ListTagsForResource", "route53:ListQueryLoggingConfigs", "route53:UpdateHostedZoneComment", + "route53:UpdateHostedZoneFeatures", "route53:ChangeTagsForResource", "route53:AssociateVPCWithHostedZone", "route53:DisassociateVPCFromHostedZone", @@ -60,6 +63,8 @@ "route53:DeleteHostedZone", "route53:DeleteQueryLoggingConfig", "route53:ListQueryLoggingConfigs", + "route53:UpdateHostedZoneFeatures", + "route53:GetHostedZone", "route53:GetChange" ] } @@ -78,6 +83,19 @@ "/properties/Id" ], "definitions": { + "HostedZoneFeatures": { + "description": "Represents the features configuration for a hosted zone, including the status of various features and any associated failure reasons.", + "additionalProperties": false, + "type": "object", + "properties": { + "EnableAcceleratedRecovery": { + "description": "", + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Represents the features configuration for a hosted zone, including the status of various features and any associated failure reasons.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "HostedZoneTag": { "description": "A complex type that contains information about a tag that you want to add or edit for the specified health check or hosted zone.", "additionalProperties": false, @@ -176,6 +194,11 @@ }, "markdownDescription": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "HostedZoneFeatures": { + "description": "The features configuration for the hosted zone, including accelerated recovery settings and status information.", + "$ref": "#/definitions/HostedZoneFeatures", + "markdownDescription": "The features configuration for the hosted zone, including accelerated recovery settings and status information.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "HostedZoneConfig": { "description": "A complex type that contains an optional comment.\n If you don't want to specify a comment, omit the ``HostedZoneConfig`` and ``Comment`` elements.", "$ref": "#/definitions/HostedZoneConfig", diff --git a/server/schema/resources/aws-route53globalresolver-accesssource.json b/server/schema/resources/aws-route53globalresolver-accesssource.json new file mode 100644 index 00000000..4bca7831 --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-accesssource.json @@ -0,0 +1,237 @@ +{ + "typeName": "AWS::Route53GlobalResolver::AccessSource", + "description": "Resource schema for AWS::Route53GlobalResolver::AccessSource", + "primaryIdentifier": [ + "/properties/AccessSourceId" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/AccessSourceId", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status" + ], + "createOnlyProperties": [ + "/properties/DnsViewId", + "/properties/ClientToken" + ], + "writeOnlyProperties": [ + "/properties/ClientToken" + ], + "required": [ + "Cidr", + "DnsViewId", + "Protocol" + ], + "additionalProperties": false, + "definitions": { + "Cidr": { + "type": "string", + "maxLength": 42, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 42 \nUpdate requires: No interruption\n" + }, + "IpAddressType": { + "type": "string", + "enum": [ + "IPV4", + "IPV6" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | IPV6 \nUpdate requires: No interruption\n" + }, + "DnsProtocol": { + "type": "string", + "enum": [ + "DO53", + "DOH", + "DOT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DO53 | DOH | DOT \nUpdate requires: No interruption\n" + }, + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "CRResourceStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "UPDATING", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | UPDATING | DELETING \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AccessSourceId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Cidr": { + "$ref": "#/definitions/Cidr" + }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "DnsViewId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "Protocol": { + "$ref": "#/definitions/DnsProtocol" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientToken": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:CreateAccessSource", + "route53globalresolver:GetAccessSource", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetAccessSource", + "route53globalresolver:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:UpdateAccessSource", + "route53globalresolver:GetAccessSource", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DeleteAccessSource", + "route53globalresolver:GetAccessSource" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListAccessSources" + ], + "handlerSchema": { + "properties": { + "DnsViewId": { + "$ref": "resource-schema.json#/properties/DnsViewId" + } + }, + "required": [ + "DnsViewId" + ] + } + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "attributes": { + "AccessSourceId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53globalresolver-accesstoken.json b/server/schema/resources/aws-route53globalresolver-accesstoken.json new file mode 100644 index 00000000..f3a4cbde --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-accesstoken.json @@ -0,0 +1,233 @@ +{ + "typeName": "AWS::Route53GlobalResolver::AccessToken", + "description": "Resource schema for AWS::Route53GlobalResolver::AccessToken", + "primaryIdentifier": [ + "/properties/AccessTokenId" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/AccessTokenId", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status", + "/properties/Value", + "/properties/GlobalResolverId" + ], + "createOnlyProperties": [ + "/properties/DnsViewId", + "/properties/ExpiresAt", + "/properties/ClientToken" + ], + "writeOnlyProperties": [ + "/properties/ClientToken" + ], + "required": [ + "DnsViewId" + ], + "additionalProperties": false, + "definitions": { + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "TokenStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | DELETING \nUpdate requires: No interruption\n" + }, + "AccessToken": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 100 \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AccessTokenId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "DnsViewId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "GlobalResolverId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ExpiresAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Status": { + "$ref": "#/definitions/TokenStatus" + }, + "Value": { + "$ref": "#/definitions/AccessToken" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientToken": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:CreateAccessToken", + "route53globalresolver:GetAccessToken", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetAccessToken", + "route53globalresolver:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:UpdateAccessToken", + "route53globalresolver:GetAccessToken", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DeleteAccessToken", + "route53globalresolver:GetAccessToken" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListAccessTokens" + ], + "handlerSchema": { + "properties": { + "DnsViewId": { + "$ref": "resource-schema.json#/properties/DnsViewId" + } + }, + "required": [ + "DnsViewId" + ] + } + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "attributes": { + "AccessTokenId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GlobalResolverId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/TokenStatus" + }, + "Value": { + "$ref": "#/definitions/AccessToken" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53globalresolver-dnsview.json b/server/schema/resources/aws-route53globalresolver-dnsview.json new file mode 100644 index 00000000..38bc6b06 --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-dnsview.json @@ -0,0 +1,249 @@ +{ + "typeName": "AWS::Route53GlobalResolver::DnsView", + "description": "Resource schema for AWS::Route53GlobalResolver::DnsView", + "primaryIdentifier": [ + "/properties/DnsViewId" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DnsViewId", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status" + ], + "createOnlyProperties": [ + "/properties/GlobalResolverId", + "/properties/ClientToken" + ], + "writeOnlyProperties": [ + "/properties/ClientToken" + ], + "required": [ + "GlobalResolverId", + "Name" + ], + "additionalProperties": false, + "definitions": { + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "ResourceDescription": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "DnsSecValidationType": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "EdnsClientSubnetType": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "FirewallRulesFailOpenType": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "ProfileResourceStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "UPDATING", + "ENABLING", + "DISABLING", + "DISABLED", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | UPDATING | ENABLING | DISABLING | DISABLED | DELETING \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DnsViewId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "Description": { + "$ref": "#/definitions/ResourceDescription" + }, + "GlobalResolverId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "DnssecValidation": { + "$ref": "#/definitions/DnsSecValidationType" + }, + "EdnsClientSubnet": { + "$ref": "#/definitions/EdnsClientSubnetType" + }, + "FirewallRulesFailOpen": { + "$ref": "#/definitions/FirewallRulesFailOpenType" + }, + "Status": { + "$ref": "#/definitions/ProfileResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientToken": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:CreateDNSView", + "route53globalresolver:GetDNSView", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetDNSView", + "route53globalresolver:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:UpdateDNSView", + "route53globalresolver:GetDNSView", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DeleteDNSView", + "route53globalresolver:GetDNSView" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListDNSViews" + ], + "handlerSchema": { + "properties": { + "GlobalResolverId": { + "$ref": "resource-schema.json#/properties/GlobalResolverId" + } + }, + "required": [ + "GlobalResolverId" + ] + } + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "attributes": { + "DnsViewId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/ProfileResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53globalresolver-firewalldomainlist.json b/server/schema/resources/aws-route53globalresolver-firewalldomainlist.json new file mode 100644 index 00000000..b62a6cfa --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-firewalldomainlist.json @@ -0,0 +1,252 @@ +{ + "typeName": "AWS::Route53GlobalResolver::FirewallDomainList", + "description": "Resource schema for AWS::Route53GlobalResolver::FirewallDomainList", + "primaryIdentifier": [ + "/properties/FirewallDomainListId" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/FirewallDomainListId", + "/properties/DomainCount", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status", + "/properties/StatusMessage" + ], + "createOnlyProperties": [ + "/properties/GlobalResolverId", + "/properties/Name", + "/properties/Description", + "/properties/ClientToken" + ], + "writeOnlyProperties": [ + "/properties/ClientToken", + "/properties/Domains", + "/properties/DomainFileUrl" + ], + "required": [ + "GlobalResolverId", + "Name" + ], + "additionalProperties": false, + "definitions": { + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "ResourceDescription": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "CRResourceStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "UPDATING", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | UPDATING | DELETING \nUpdate requires: No interruption\n" + }, + "Domains": { + "description": "An inline list of domains to use for this domain list.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "description": "FirewallDomainName", + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "FirewallDomainName\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "An inline list of domains to use for this domain list.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "FirewallDomainListId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "Description": { + "$ref": "#/definitions/ResourceDescription" + }, + "GlobalResolverId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "DomainCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Domains": { + "$ref": "#/definitions/Domains" + }, + "DomainFileUrl": { + "description": "S3 URL to import domains from.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "markdownDescription": "S3 URL to import domains from.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "ClientToken": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:CreateFirewallDomainList", + "route53globalresolver:GetFirewallDomainList", + "route53globalresolver:ImportFirewallDomains", + "route53globalresolver:UpdateFirewallDomains", + "route53globalresolver:TagResource", + "s3:GetObject" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetFirewallDomainList", + "route53globalresolver:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:GetFirewallDomainList", + "route53globalresolver:ImportFirewallDomains", + "route53globalresolver:UpdateFirewallDomains", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource", + "s3:GetObject" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DeleteFirewallDomainList", + "route53globalresolver:GetFirewallDomainList" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListFirewallDomainLists" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "attributes": { + "FirewallDomainListId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DomainCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53globalresolver-firewallrule.json b/server/schema/resources/aws-route53globalresolver-firewallrule.json new file mode 100644 index 00000000..f487bea0 --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-firewallrule.json @@ -0,0 +1,256 @@ +{ + "typeName": "AWS::Route53GlobalResolver::FirewallRule", + "description": "Resource schema for AWS::Route53GlobalResolver::FirewallRule", + "primaryIdentifier": [ + "/properties/FirewallRuleId" + ], + "readOnlyProperties": [ + "/properties/FirewallRuleId", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status", + "/properties/QueryType" + ], + "createOnlyProperties": [ + "/properties/DnsViewId", + "/properties/ClientToken", + "/properties/FirewallDomainListId", + "/properties/QType" + ], + "writeOnlyProperties": [ + "/properties/ClientToken", + "/properties/QType" + ], + "required": [ + "Action", + "Name", + "DnsViewId" + ], + "additionalProperties": false, + "definitions": { + "FirewallRuleAction": { + "type": "string", + "enum": [ + "ALLOW", + "ALERT", + "BLOCK" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOW | ALERT | BLOCK \nUpdate requires: No interruption\n" + }, + "FirewallBlockResponse": { + "type": "string", + "enum": [ + "NODATA", + "NXDOMAIN", + "OVERRIDE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NODATA | NXDOMAIN | OVERRIDE \nUpdate requires: No interruption\n" + }, + "BlockOverrideDnsQueryType": { + "type": "string", + "enum": [ + "CNAME" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CNAME \nUpdate requires: No interruption\n" + }, + "ConfidenceThreshold": { + "type": "string", + "enum": [ + "LOW", + "MEDIUM", + "HIGH" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: LOW | MEDIUM | HIGH \nUpdate requires: No interruption\n" + }, + "DnsAdvancedProtection": { + "type": "string", + "enum": [ + "DGA", + "DNS_TUNNELING", + "DICTIONARY_DGA" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DGA | DNS_TUNNELING | DICTIONARY_DGA \nUpdate requires: No interruption\n" + }, + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "ResourceDescription": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Domain": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: \\*?[-a-zA-Z0-9.]+ \nUpdate requires: No interruption\n" + }, + "CRResourceStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "UPDATING", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | UPDATING | DELETING \nUpdate requires: No interruption\n" + } + }, + "properties": { + "FirewallRuleId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "Description": { + "$ref": "#/definitions/ResourceDescription" + }, + "Action": { + "$ref": "#/definitions/FirewallRuleAction" + }, + "BlockResponse": { + "$ref": "#/definitions/FirewallBlockResponse" + }, + "BlockOverrideDnsType": { + "$ref": "#/definitions/BlockOverrideDnsQueryType" + }, + "BlockOverrideDomain": { + "$ref": "#/definitions/Domain" + }, + "BlockOverrideTtl": { + "type": "integer", + "minimum": 0, + "maximum": 604800, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ConfidenceThreshold": { + "$ref": "#/definitions/ConfidenceThreshold" + }, + "DnsAdvancedProtection": { + "$ref": "#/definitions/DnsAdvancedProtection" + }, + "FirewallDomainListId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "Priority": { + "type": "integer", + "minimum": 1, + "maximum": 10000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DnsViewId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "QType": { + "type": "string", + "maxLength": 16, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 16 \nUpdate requires: Replacement\n" + }, + "QueryType": { + "type": "string", + "maxLength": 16, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 16 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientToken": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:CreateFirewallRule", + "route53globalresolver:GetFirewallRule" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetFirewallRule" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:UpdateFirewallRule", + "route53globalresolver:GetFirewallRule" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DeleteFirewallRule", + "route53globalresolver:GetFirewallRule" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListFirewallRules" + ], + "handlerSchema": { + "properties": { + "DnsViewId": { + "$ref": "resource-schema.json#/properties/DnsViewId" + } + }, + "required": [ + "DnsViewId" + ] + } + } + }, + "tagging": { + "taggable": false + }, + "attributes": { + "FirewallRuleId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "QueryType": { + "type": "string", + "maxLength": 16, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 16 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53globalresolver-globalresolver.json b/server/schema/resources/aws-route53globalresolver-globalresolver.json new file mode 100644 index 00000000..1aa9a14f --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-globalresolver.json @@ -0,0 +1,279 @@ +{ + "typeName": "AWS::Route53GlobalResolver::GlobalResolver", + "description": "Resource schema for AWS::Route53GlobalResolver::GlobalResolver", + "primaryIdentifier": [ + "/properties/GlobalResolverId" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ] + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/GlobalResolverId", + "/properties/DnsName", + "/properties/IPv4Addresses", + "/properties/IPv6Addresses", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status" + ], + "createOnlyProperties": [ + "/properties/ClientToken" + ], + "writeOnlyProperties": [ + "/properties/ClientToken" + ], + "required": [ + "Name", + "Regions" + ], + "additionalProperties": false, + "definitions": { + "Region": { + "type": "string", + "maxLength": 32, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 32 \nUpdate requires: No interruption\n" + }, + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "ResourceDescription": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "IPv4Address": { + "type": "string", + "maxLength": 15, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 15 \nPattern: ((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4} \nUpdate requires: No interruption\n" + }, + "IPv6Address": { + "type": "string", + "maxLength": 39, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 39 \nPattern: (?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4} \nUpdate requires: No interruption\n" + }, + "GlobalResolverIpAddressType": { + "type": "string", + "enum": [ + "IPV4", + "DUAL_STACK" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUAL_STACK \nUpdate requires: No interruption\n" + }, + "CRResourceStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "UPDATING", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | UPDATING | DELETING \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "GlobalResolverId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "Description": { + "$ref": "#/definitions/ResourceDescription" + }, + "Regions": { + "type": "array", + "items": { + "$ref": "#/definitions/Region" + }, + "description": "A list of regions the Global Resolver will exist in. This list cannot be updated and will stay fixed for the duration of the Global Resolver.", + "markdownDescription": "A list of regions the Global Resolver will exist in. This list cannot be updated and will stay fixed for the duration of the Global Resolver.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ObservabilityRegion": { + "$ref": "#/definitions/Region" + }, + "DnsName": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IPv4Addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/IPv4Address" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IPv6Addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/IPv6Address" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpAddressType": { + "$ref": "#/definitions/GlobalResolverIpAddressType" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientToken": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:CreateGlobalResolver", + "route53globalresolver:GetGlobalResolver", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource", + "route53globalresolver:TagResource" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetGlobalResolver", + "route53globalresolver:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:UpdateGlobalResolver", + "route53globalresolver:GetGlobalResolver", + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DeleteGlobalResolver", + "route53globalresolver:GetGlobalResolver" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListGlobalResolvers" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "route53globalresolver:TagResource", + "route53globalresolver:UntagResource", + "route53globalresolver:ListTagsForResource" + ] + }, + "attributes": { + "GlobalResolverId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DnsName": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IPv4Addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/IPv4Address" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IPv6Addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/IPv6Address" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/CRResourceStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53globalresolver-hostedzoneassociation.json b/server/schema/resources/aws-route53globalresolver-hostedzoneassociation.json new file mode 100644 index 00000000..ced09f42 --- /dev/null +++ b/server/schema/resources/aws-route53globalresolver-hostedzoneassociation.json @@ -0,0 +1,160 @@ +{ + "typeName": "AWS::Route53GlobalResolver::HostedZoneAssociation", + "description": "Resource schema for AWS::Route53GlobalResolver::HostedZoneAssociation", + "primaryIdentifier": [ + "/properties/HostedZoneAssociationId" + ], + "readOnlyProperties": [ + "/properties/HostedZoneAssociationId", + "/properties/HostedZoneName", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/Status" + ], + "createOnlyProperties": [ + "/properties/HostedZoneId", + "/properties/ResourceArn" + ], + "required": [ + "HostedZoneId", + "ResourceArn", + "Name" + ], + "additionalProperties": false, + "definitions": { + "ResourceName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+) \nUpdate requires: No interruption\n" + }, + "HostedZoneAssociationStatus": { + "type": "string", + "enum": [ + "CREATING", + "OPERATIONAL", + "DELETING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | OPERATIONAL | DELETING \nUpdate requires: No interruption\n" + }, + "HostedZoneId": { + "type": "string", + "maxLength": 32, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 32 \nUpdate requires: No interruption\n" + }, + "ResourceArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: arn:[-.a-z0-9]{1,63}:[-.a-z0-9]{1,63}:[-.a-z0-9]{0,63}:[-.a-z0-9]{0,63}:[^/].{0,1023} \nUpdate requires: No interruption\n" + } + }, + "properties": { + "HostedZoneAssociationId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "$ref": "#/definitions/ResourceName" + }, + "HostedZoneId": { + "$ref": "#/definitions/HostedZoneId" + }, + "HostedZoneName": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + }, + "Status": { + "$ref": "#/definitions/HostedZoneAssociationStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53globalresolver:AssociateHostedZone", + "route53globalresolver:GetHostedZoneAssociation", + "route53:GetHostedZone" + ] + }, + "read": { + "permissions": [ + "route53globalresolver:GetHostedZoneAssociation", + "route53:GetHostedZone" + ] + }, + "update": { + "permissions": [ + "route53globalresolver:UpdateHostedZoneAssociation", + "route53globalresolver:GetHostedZoneAssociation", + "route53:GetHostedZone" + ] + }, + "delete": { + "permissions": [ + "route53globalresolver:DisassociateHostedZone", + "route53globalresolver:GetHostedZoneAssociation", + "route53:GetHostedZone" + ] + }, + "list": { + "permissions": [ + "route53globalresolver:ListHostedZoneAssociations", + "route53:GetHostedZone" + ], + "handlerSchema": { + "properties": { + "ResourceArn": { + "$ref": "resource-schema.json#/properties/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ] + } + } + }, + "tagging": { + "taggable": false + }, + "attributes": { + "HostedZoneAssociationId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "HostedZoneName": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/HostedZoneAssociationStatus" + }, + "CreatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-route53profiles-profile.json b/server/schema/resources/aws-route53profiles-profile.json index 48e4cb28..c91cd47e 100644 --- a/server/schema/resources/aws-route53profiles-profile.json +++ b/server/schema/resources/aws-route53profiles-profile.json @@ -36,6 +36,16 @@ "type": "string", "description": "The ID of the profile.", "markdownDescription": "The ID of the profile.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ShareStatus": { + "type": "string", + "description": "The sharing status of the profile.", + "enum": [ + "NOT_SHARED", + "SHARED_WITH_ME", + "SHARED_BY_ME" + ], + "markdownDescription": "The sharing status of the profile.\n\n---\n\nRequired: No \nType: String \nAllowed Values: NOT_SHARED | SHARED_WITH_ME | SHARED_BY_ME \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -85,7 +95,8 @@ "readOnlyProperties": [ "/properties/Arn", "/properties/Id", - "/properties/ClientToken" + "/properties/ClientToken", + "/properties/ShareStatus" ], "createOnlyProperties": [ "/properties/Name" @@ -145,6 +156,16 @@ "type": "string", "description": "The ID of the profile.", "markdownDescription": "The ID of the profile.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ShareStatus": { + "type": "string", + "description": "The sharing status of the profile.", + "enum": [ + "NOT_SHARED", + "SHARED_WITH_ME", + "SHARED_BY_ME" + ], + "markdownDescription": "The sharing status of the profile.\n\n---\n\nRequired: No \nType: String \nAllowed Values: NOT_SHARED | SHARED_WITH_ME | SHARED_BY_ME \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-route53profiles-profileresourceassociation.json b/server/schema/resources/aws-route53profiles-profileresourceassociation.json index cbb16e55..8df11f4b 100644 --- a/server/schema/resources/aws-route53profiles-profileresourceassociation.json +++ b/server/schema/resources/aws-route53profiles-profileresourceassociation.json @@ -66,6 +66,7 @@ "route53resolver:GetFirewallRuleGroup", "route53resolver:GetResolverRule", "route53:GetHostedZone", + "route53profiles:ListProfileResourceAssociations", "route53resolver:GetResolverQueryLogConfig", "ec2:DescribeVpcEndpoints" ] diff --git a/server/schema/resources/aws-route53resolver-firewallrulegroup.json b/server/schema/resources/aws-route53resolver-firewallrulegroup.json index ecc4e614..f2de8c21 100644 --- a/server/schema/resources/aws-route53resolver-firewallrulegroup.json +++ b/server/schema/resources/aws-route53resolver-firewallrulegroup.json @@ -89,9 +89,10 @@ "type": "string", "enum": [ "DGA", - "DNS_TUNNELING" + "DNS_TUNNELING", + "DICTIONARY_DGA" ], - "markdownDescription": "FirewallDomainRedirectionAction\n\n---\n\nRequired: No \nType: String \nAllowed Values: DGA | DNS_TUNNELING \nUpdate requires: No interruption\n" + "markdownDescription": "FirewallDomainRedirectionAction\n\n---\n\nRequired: No \nType: String \nAllowed Values: DGA | DNS_TUNNELING | DICTIONARY_DGA \nUpdate requires: No interruption\n" }, "FirewallDomainRedirectionAction": { "description": "FirewallDomainRedirectionAction", diff --git a/server/schema/resources/aws-route53resolver-resolverendpoint.json b/server/schema/resources/aws-route53resolver-resolverendpoint.json index 8a290372..34bdb8ec 100644 --- a/server/schema/resources/aws-route53resolver-resolverendpoint.json +++ b/server/schema/resources/aws-route53resolver-resolverendpoint.json @@ -96,6 +96,16 @@ "description": "The Amazon EC2 instance type.", "markdownDescription": "The Amazon EC2 instance type.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, + "TargetNameServerMetricsEnabled": { + "type": "boolean", + "description": "Specifies whether target name server metrics are enabled for the Outbound Resolver Endpoint. When set to true, one-minute granular metrics are published in CloudWatch for each target name server associated with this endpoint. When set to false, metrics are not published. Default is false.", + "markdownDescription": "Specifies whether target name server metrics are enabled for the Outbound Resolver Endpoint. When set to true, one-minute granular metrics are published in CloudWatch for each target name server associated with this endpoint. When set to false, metrics are not published. Default is false.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "RniEnhancedMetricsEnabled": { + "type": "boolean", + "description": "Specifies whether RNI enhanced metrics are enabled for the Resolver Endpoints. When set to true, one-minute granular metrics are published in CloudWatch for each RNI associated with this endpoint. When set to false, metrics are not published. Default is false.", + "markdownDescription": "Specifies whether RNI enhanced metrics are enabled for the Resolver Endpoints. When set to true, one-minute granular metrics are published in CloudWatch for each RNI associated with this endpoint. When set to false, metrics are not published. Default is false.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "Protocols": { "type": "array", "description": "Protocols used for the endpoint. DoH-FIPS is applicable for inbound endpoints only.", diff --git a/server/schema/resources/aws-route53resolver-resolverruleassociation.json b/server/schema/resources/aws-route53resolver-resolverruleassociation.json index 3b868681..b9e7c516 100644 --- a/server/schema/resources/aws-route53resolver-resolverruleassociation.json +++ b/server/schema/resources/aws-route53resolver-resolverruleassociation.json @@ -19,9 +19,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Name": { - "description": "The name of an association between a Resolver rule and a VPC.", + "description": "The name of an association between a Resolver rule and a VPC.\n The name can be up to 64 characters long and can contain letters (a-z, A-Z), numbers (0-9), hyphens (-), underscores (_), and spaces. The name cannot consist of only numbers.", "type": "string", - "markdownDescription": "The name of an association between a Resolver rule and a VPC.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The name of an association between a Resolver rule and a VPC.\n The name can be up to 64 characters long and can contain letters (a-z, A-Z), numbers (0-9), hyphens (-), underscores (_), and spaces. The name cannot consist of only numbers.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" } }, "required": [ diff --git a/server/schema/resources/aws-rtbfabric-inboundexternallink.json b/server/schema/resources/aws-rtbfabric-inboundexternallink.json new file mode 100644 index 00000000..b7e386e9 --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-inboundexternallink.json @@ -0,0 +1,344 @@ +{ + "typeName": "AWS::RTBFabric::InboundExternalLink", + "description": "Resource Type definition for AWS::RTBFabric::InboundExternalLink Resource Type", + "definitions": { + "LinkId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^link-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingLoggingType": { + "type": "string", + "enum": [ + "NONE", + "METRIC", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | METRIC | RESPONSE \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingForHttpCode": { + "type": "object", + "additionalProperties": false, + "properties": { + "HttpCode": { + "type": "string", + "maxLength": 7, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 7 \nPattern: ^DEFAULT|4XX|5XX|\\d{3}$ \nUpdate requires: No interruption\n" + }, + "Action": { + "type": "string", + "enum": [ + "NO_BID", + "PASSTHROUGH" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NO_BID | PASSTHROUGH \nUpdate requires: No interruption\n" + }, + "LoggingTypes": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingLoggingType" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ResponseLoggingPercentage": { + "type": "number", + "minimum": 0, + "maximum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "HttpCode", + "Action", + "LoggingTypes" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkAttributes": { + "type": "object", + "additionalProperties": false, + "properties": { + "ResponderErrorMasking": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingForHttpCode" + }, + "minItems": 1, + "maxItems": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomerProvidedId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "PENDING_REQUEST", + "REQUESTED", + "ACCEPTED", + "ACTIVE", + "REJECTED", + "FAILED", + "PENDING_DELETION", + "DELETED", + "PENDING_UPDATE", + "PENDING_ISOLATION", + "ISOLATED", + "PENDING_RESTORATION", + "UNKNOWN_TO_SDK_VERSION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | PENDING_REQUEST | REQUESTED | ACCEPTED | ACTIVE | REJECTED | FAILED | PENDING_DELETION | DELETED | PENDING_UPDATE | PENDING_ISOLATION | ISOLATED | PENDING_RESTORATION | UNKNOWN_TO_SDK_VERSION \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+/link/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "description": "Tags to assign to the Link.", + "markdownDescription": "Tags to assign to the Link.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LinkLogSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "ApplicationLogs": { + "type": "object", + "additionalProperties": false, + "properties": { + "LinkApplicationLogSampling": { + "type": "object", + "additionalProperties": false, + "properties": { + "ErrorLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "FilterLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ErrorLog", + "FilterLog" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LinkApplicationLogSampling" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApplicationLogs" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + }, + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "LinkAttributes": { + "$ref": "#/definitions/LinkAttributes" + }, + "LinkLogSettings": { + "$ref": "#/definitions/LinkLogSettings" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + } + }, + "required": [ + "GatewayId", + "LinkLogSettings" + ], + "readOnlyProperties": [ + "/properties/LinkId", + "/properties/Arn", + "/properties/DomainName", + "/properties/LinkStatus", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp" + ], + "conditionalCreateOnlyProperties": [ + "/properties/GatewayId", + "/properties/LinkAttributes", + "/properties/LinkLogSettings" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/GatewayId", + "/properties/LinkId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "rtbfabric:CreateInboundExternalLink", + "rtbfabric:GetInboundExternalLink", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "rtbfabric:GetInboundExternalLink", + "rtbfabric:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rtbfabric:GetInboundExternalLink", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteInboundExternalLink", + "rtbfabric:GetInboundExternalLink" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "GatewayId" + ] + }, + "permissions": [ + "rtbfabric:ListLinks" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rtbfabric-link.json b/server/schema/resources/aws-rtbfabric-link.json new file mode 100644 index 00000000..71d53230 --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-link.json @@ -0,0 +1,601 @@ +{ + "typeName": "AWS::RTBFabric::Link", + "description": "Resource Type definition for AWS::RTBFabric::Link Resource Type", + "definitions": { + "LinkId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^link-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingLoggingType": { + "type": "string", + "enum": [ + "NONE", + "METRIC", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | METRIC | RESPONSE \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingForHttpCode": { + "type": "object", + "additionalProperties": false, + "properties": { + "HttpCode": { + "type": "string", + "maxLength": 7, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 7 \nPattern: ^DEFAULT|4XX|5XX|\\d{3}$ \nUpdate requires: No interruption\n" + }, + "Action": { + "type": "string", + "enum": [ + "NO_BID", + "PASSTHROUGH" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NO_BID | PASSTHROUGH \nUpdate requires: No interruption\n" + }, + "LoggingTypes": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingLoggingType" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ResponseLoggingPercentage": { + "type": "number", + "minimum": 0, + "maximum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "HttpCode", + "Action", + "LoggingTypes" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkAttributes": { + "type": "object", + "additionalProperties": false, + "properties": { + "ResponderErrorMasking": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingForHttpCode" + }, + "minItems": 1, + "maxItems": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomerProvidedId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "PENDING_REQUEST", + "REQUESTED", + "ACCEPTED", + "ACTIVE", + "REJECTED", + "FAILED", + "PENDING_DELETION", + "DELETED", + "PENDING_UPDATE", + "PENDING_ISOLATION", + "ISOLATED", + "PENDING_RESTORATION", + "UNKNOWN_TO_SDK_VERSION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | PENDING_REQUEST | REQUESTED | ACCEPTED | ACTIVE | REJECTED | FAILED | PENDING_DELETION | DELETED | PENDING_UPDATE | PENDING_ISOLATION | ISOLATED | PENDING_RESTORATION | UNKNOWN_TO_SDK_VERSION \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+/link/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HttpResponderAllowed": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "description": "Tags to assign to the Link.", + "markdownDescription": "Tags to assign to the Link.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LinkDirection": { + "type": "string", + "enum": [ + "REQUEST", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: REQUEST | RESPONSE \nUpdate requires: No interruption\n" + }, + "LinkLogSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "ApplicationLogs": { + "type": "object", + "additionalProperties": false, + "properties": { + "LinkApplicationLogSampling": { + "type": "object", + "additionalProperties": false, + "properties": { + "ErrorLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "FilterLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ErrorLog", + "FilterLog" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LinkApplicationLogSampling" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApplicationLogs" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NoBidModuleParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nPattern: ^[a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" + }, + "ReasonCode": { + "type": "integer", + "minimum": 0, + "maximum": 10, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "PassThroughPercentage": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FilterCriterion": { + "type": "object", + "additionalProperties": false, + "properties": { + "Path": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Values": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Path", + "Values" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Filter": { + "type": "object", + "additionalProperties": false, + "properties": { + "Criteria": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/FilterCriterion" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Criteria" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NoBidAction": { + "type": "object", + "additionalProperties": false, + "properties": { + "NoBidReasonCode": { + "type": "integer", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HeaderTagAction": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OpenRtbAttributeModuleParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "FilterType": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: INCLUDE | EXCLUDE \nUpdate requires: No interruption\n" + }, + "FilterConfiguration": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Filter" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Action": { + "type": "object", + "oneOf": [ + { + "properties": { + "NoBid": { + "$ref": "#/definitions/NoBidAction" + } + }, + "required": [ + "NoBid" + ], + "additionalProperties": false + }, + { + "properties": { + "HeaderTag": { + "$ref": "#/definitions/HeaderTagAction" + } + }, + "required": [ + "HeaderTag" + ], + "additionalProperties": false + } + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + }, + "HoldbackPercentage": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FilterType", + "FilterConfiguration", + "Action", + "HoldbackPercentage" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ModuleParameters": { + "type": "object", + "oneOf": [ + { + "properties": { + "NoBid": { + "$ref": "#/definitions/NoBidModuleParameters" + } + }, + "required": [ + "NoBid" + ], + "additionalProperties": false + }, + { + "properties": { + "OpenRtbAttribute": { + "$ref": "#/definitions/OpenRtbAttributeModuleParameters" + } + }, + "required": [ + "OpenRtbAttribute" + ], + "additionalProperties": false + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ModuleConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Version": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9]{1,25}$ \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9 -]+$ \nUpdate requires: No interruption\n" + }, + "DependsOn": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9 -]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ModuleParameters": { + "$ref": "#/definitions/ModuleParameters" + } + }, + "required": [ + "Name" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ModuleConfigurationList": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ModuleConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + }, + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "PeerGatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "LinkAttributes": { + "$ref": "#/definitions/LinkAttributes" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "HttpResponderAllowed": { + "$ref": "#/definitions/HttpResponderAllowed" + }, + "LinkDirection": { + "$ref": "#/definitions/LinkDirection" + }, + "LinkLogSettings": { + "$ref": "#/definitions/LinkLogSettings" + }, + "ModuleConfigurationList": { + "$ref": "#/definitions/ModuleConfigurationList" + } + }, + "required": [ + "GatewayId", + "PeerGatewayId", + "LinkLogSettings" + ], + "readOnlyProperties": [ + "/properties/LinkId", + "/properties/Arn", + "/properties/LinkStatus", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp", + "/properties/LinkDirection" + ], + "conditionalCreateOnlyProperties": [ + "/properties/GatewayId", + "/properties/PeerGatewayId", + "/properties/LinkAttributes", + "/properties/HttpResponderAllowed" + ], + "writeOnlyProperties": [ + "/properties/HttpResponderAllowed", + "/properties/ModuleConfigurationList" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/GatewayId", + "/properties/LinkId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "rtbfabric:CreateLink", + "rtbfabric:GetLink", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "rtbfabric:GetLink", + "rtbfabric:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rtbfabric:UpdateLink", + "rtbfabric:GetLink", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteLink", + "rtbfabric:GetLink" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "GatewayId" + ] + }, + "permissions": [ + "rtbfabric:ListLinks" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "LinkDirection": { + "$ref": "#/definitions/LinkDirection" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rtbfabric-outboundexternallink.json b/server/schema/resources/aws-rtbfabric-outboundexternallink.json new file mode 100644 index 00000000..1e0004ed --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-outboundexternallink.json @@ -0,0 +1,344 @@ +{ + "typeName": "AWS::RTBFabric::OutboundExternalLink", + "description": "Resource Type definition for AWS::RTBFabric::OutboundExternalLink Resource Type", + "definitions": { + "LinkId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^link-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "PublicEndpoint": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nPattern: ^(https|http)://.+$ \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingLoggingType": { + "type": "string", + "enum": [ + "NONE", + "METRIC", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | METRIC | RESPONSE \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingForHttpCode": { + "type": "object", + "additionalProperties": false, + "properties": { + "HttpCode": { + "type": "string", + "maxLength": 7, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 7 \nPattern: ^DEFAULT|4XX|5XX|\\d{3}$ \nUpdate requires: No interruption\n" + }, + "Action": { + "type": "string", + "enum": [ + "NO_BID", + "PASSTHROUGH" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NO_BID | PASSTHROUGH \nUpdate requires: No interruption\n" + }, + "LoggingTypes": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingLoggingType" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ResponseLoggingPercentage": { + "type": "number", + "minimum": 0, + "maximum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "HttpCode", + "Action", + "LoggingTypes" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkAttributes": { + "type": "object", + "additionalProperties": false, + "properties": { + "ResponderErrorMasking": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingForHttpCode" + }, + "minItems": 1, + "maxItems": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomerProvidedId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "PENDING_REQUEST", + "REQUESTED", + "ACCEPTED", + "ACTIVE", + "REJECTED", + "FAILED", + "PENDING_DELETION", + "DELETED", + "PENDING_UPDATE", + "PENDING_ISOLATION", + "ISOLATED", + "PENDING_RESTORATION", + "UNKNOWN_TO_SDK_VERSION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | PENDING_REQUEST | REQUESTED | ACCEPTED | ACTIVE | REJECTED | FAILED | PENDING_DELETION | DELETED | PENDING_UPDATE | PENDING_ISOLATION | ISOLATED | PENDING_RESTORATION | UNKNOWN_TO_SDK_VERSION \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+/link/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "description": "Tags to assign to the Link.", + "markdownDescription": "Tags to assign to the Link.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LinkLogSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "ApplicationLogs": { + "type": "object", + "additionalProperties": false, + "properties": { + "LinkApplicationLogSampling": { + "type": "object", + "additionalProperties": false, + "properties": { + "ErrorLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "FilterLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ErrorLog", + "FilterLog" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LinkApplicationLogSampling" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApplicationLogs" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + }, + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "PublicEndpoint": { + "$ref": "#/definitions/PublicEndpoint" + }, + "LinkAttributes": { + "$ref": "#/definitions/LinkAttributes" + }, + "LinkLogSettings": { + "$ref": "#/definitions/LinkLogSettings" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + } + }, + "required": [ + "GatewayId", + "PublicEndpoint", + "LinkLogSettings" + ], + "readOnlyProperties": [ + "/properties/LinkId", + "/properties/Arn", + "/properties/LinkStatus", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp" + ], + "conditionalCreateOnlyProperties": [ + "/properties/GatewayId", + "/properties/PublicEndpoint", + "/properties/LinkAttributes", + "/properties/LinkLogSettings" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/GatewayId", + "/properties/LinkId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "rtbfabric:CreateOutboundExternalLink", + "rtbfabric:GetOutboundExternalLink", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "rtbfabric:GetOutboundExternalLink", + "rtbfabric:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rtbfabric:GetOutboundExternalLink", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteOutboundExternalLink", + "rtbfabric:GetOutboundExternalLink" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "GatewayId" + ] + }, + "permissions": [ + "rtbfabric:ListLinks" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rtbfabric-requestergateway.json b/server/schema/resources/aws-rtbfabric-requestergateway.json new file mode 100644 index 00000000..bc253b5b --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-requestergateway.json @@ -0,0 +1,291 @@ +{ + "typeName": "AWS::RTBFabric::RequesterGateway", + "description": "Resource Type definition for AWS::RTBFabric::RequesterGateway Resource Type.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9 ]+$ \nUpdate requires: No interruption\n" + }, + "VpcId": { + "type": "string", + "maxLength": 50, + "minLength": 5, + "relationshipRef": { + "typeName": "AWS::EC2::VPC", + "propertyPath": "/properties/VpcId" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "type": "array", + "description": "The ID of one or more subnets in order to create a requester gateway.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "relationshipRef": { + "typeName": "AWS::EC2::Subnet", + "propertyPath": "/properties/SubnetId" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "The ID of one or more subnets in order to create a requester gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "type": "array", + "description": "The ID of one or more security groups in order to create a requester gateway.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/GroupId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/Id" + } + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "The ID of one or more security groups in order to create a requester gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(rtbapp-[a-z0-9-]{1,25}|rtb-gw-[a-z0-9-]{1,25})$ \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "RequesterGatewayStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "ACTIVE", + "PENDING_DELETION", + "DELETED", + "ERROR", + "PENDING_UPDATE", + "ISOLATED", + "PENDING_ISOLATION", + "PENDING_RESTORATION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | ACTIVE | PENDING_DELETION | DELETED | ERROR | PENDING_UPDATE | ISOLATED | PENDING_ISOLATION | PENDING_RESTORATION \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 1600, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 1600 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "description": "Tags to assign to the Requester Gateway.", + "markdownDescription": "Tags to assign to the Requester Gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ActiveLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TotalLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "VpcId": { + "$ref": "#/definitions/VpcId" + }, + "SubnetIds": { + "$ref": "#/definitions/SubnetIds" + }, + "SecurityGroupIds": { + "$ref": "#/definitions/SecurityGroupIds" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "RequesterGatewayStatus": { + "$ref": "#/definitions/RequesterGatewayStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "ActiveLinksCount": { + "$ref": "#/definitions/ActiveLinksCount" + }, + "TotalLinksCount": { + "$ref": "#/definitions/TotalLinksCount" + } + }, + "required": [ + "VpcId", + "SubnetIds", + "SecurityGroupIds" + ], + "readOnlyProperties": [ + "/properties/GatewayId", + "/properties/Arn", + "/properties/RequesterGatewayStatus", + "/properties/DomainName", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp", + "/properties/ActiveLinksCount", + "/properties/TotalLinksCount" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Description", + "/properties/VpcId", + "/properties/SubnetIds", + "/properties/SecurityGroupIds" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/GatewayId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "rtbfabric:CreateRequesterGateway", + "rtbfabric:GetRequesterGateway", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "rtbfabric:GetRequesterGateway", + "rtbfabric:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rtbfabric:GetRequesterGateway", + "rtbfabric:UpdateRequesterGateway", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteRequesterGateway", + "rtbfabric:GetRequesterGateway" + ] + }, + "list": { + "permissions": [ + "rtbfabric:ListRequesterGateways" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "RequesterGatewayStatus": { + "$ref": "#/definitions/RequesterGatewayStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "ActiveLinksCount": { + "$ref": "#/definitions/ActiveLinksCount" + }, + "TotalLinksCount": { + "$ref": "#/definitions/TotalLinksCount" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rtbfabric-respondergateway.json b/server/schema/resources/aws-rtbfabric-respondergateway.json new file mode 100644 index 00000000..37163ca0 --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-respondergateway.json @@ -0,0 +1,496 @@ +{ + "tagging": { + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "handlers": { + "read": { + "permissions": [ + "rtbfabric:GetResponderGateway", + "rtbfabric:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "rtbfabric:CreateResponderGateway", + "rtbfabric:GetResponderGateway", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "update": { + "permissions": [ + "rtbfabric:GetResponderGateway", + "rtbfabric:UpdateResponderGateway", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "rtbfabric:ListResponderGateways" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteResponderGateway", + "rtbfabric:GetResponderGateway" + ] + } + }, + "typeName": "AWS::RTBFabric::ResponderGateway", + "readOnlyProperties": [ + "/properties/GatewayId", + "/properties/Arn", + "/properties/ResponderGatewayStatus", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp" + ], + "description": "Resource Type definition for AWS::RTBFabric::ResponderGateway Resource Type", + "additionalIdentifiers": [ + [ + "/properties/GatewayId" + ] + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "definitions": { + "TrustStoreConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "CertificateAuthorityCertificates": { + "$ref": "#/definitions/CertificateAuthorityCertificates" + } + }, + "required": [ + "CertificateAuthorityCertificates" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9 ]+$ \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Port": { + "maximum": 65535, + "type": "integer", + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TotalLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ManagedEndpointConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "AutoScalingGroupsConfiguration": { + "$ref": "#/definitions/AutoScalingGroupsConfiguration" + } + }, + "required": [ + "AutoScalingGroupsConfiguration" + ] + }, + { + "additionalProperties": false, + "properties": { + "EksEndpointsConfiguration": { + "$ref": "#/definitions/EksEndpointsConfiguration" + } + }, + "required": [ + "EksEndpointsConfiguration" + ] + } + ], + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "minItems": 1, + "uniqueItems": true, + "description": "The ID of one or more subnets in order to create a gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "relationshipRef": { + "typeName": "AWS::EC2::Subnet", + "propertyPath": "/properties/SubnetId" + }, + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The ID of one or more subnets in order to create a gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Base64EncodedCertificateChain": { + "minLength": 1, + "type": "string", + "maxLength": 2097152, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2097152 \nUpdate requires: No interruption\n" + }, + "EksEndpointsConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "ClusterApiServerCaCertificateChain": { + "minLength": 1, + "type": "string", + "maxLength": 2097152, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2097152 \nUpdate requires: No interruption\n" + }, + "EndpointsResourceName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]$ \nUpdate requires: No interruption\n" + }, + "ClusterApiServerEndpointUri": { + "minLength": 0, + "type": "string", + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 255 \nPattern: ^(https|http)://(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "ClusterName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]$ \nUpdate requires: No interruption\n" + }, + "EndpointsResourceNamespace": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]$ \nUpdate requires: No interruption\n" + }, + "RoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EndpointsResourceName", + "EndpointsResourceNamespace", + "ClusterApiServerEndpointUri", + "ClusterApiServerCaCertificateChain", + "ClusterName", + "RoleArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AutoScalingGroupNameList": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Protocol": { + "type": "string", + "enum": [ + "HTTP", + "HTTPS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: HTTP | HTTPS \nUpdate requires: No interruption\n" + }, + "Tags": { + "minItems": 0, + "maxItems": 50, + "uniqueItems": true, + "description": "Tags to assign to the Responder Gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the Responder Gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "InboundLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "ActiveLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AutoScalingGroupsConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "AutoScalingGroupNameList": { + "$ref": "#/definitions/AutoScalingGroupNameList" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig" + }, + "RoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AutoScalingGroupNameList", + "RoleArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(rtbapp-[a-z0-9-]{1,25}|rtb-gw-[a-z0-9-]{1,25})$ \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "minItems": 1, + "uniqueItems": true, + "description": "The ID of one or more security groups in order to create a gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/GroupId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/Id" + } + } + ], + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The ID of one or more security groups in order to create a gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VpcId": { + "relationshipRef": { + "typeName": "AWS::EC2::VPC", + "propertyPath": "/properties/VpcId" + }, + "minLength": 5, + "type": "string", + "maxLength": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, + "ResponderGatewayStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "ACTIVE", + "PENDING_DELETION", + "DELETED", + "ERROR", + "PENDING_UPDATE", + "ISOLATED", + "PENDING_ISOLATION", + "PENDING_RESTORATION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | ACTIVE | PENDING_DELETION | DELETED | ERROR | PENDING_UPDATE | ISOLATED | PENDING_ISOLATION | PENDING_RESTORATION \nUpdate requires: No interruption\n" + }, + "CertificateAuthorityCertificates": { + "minItems": 0, + "maxItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Base64EncodedCertificateChain" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "Path": { + "minLength": 1, + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^/.*$ \nUpdate requires: No interruption\n" + }, + "TimeoutMs": { + "maximum": 5000, + "type": "integer", + "minimum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "HealthyThresholdCount": { + "maximum": 10, + "type": "integer", + "minimum": 2, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Port": { + "maximum": 65535, + "type": "integer", + "minimum": 80, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "StatusCodeMatcher": { + "minLength": 3, + "type": "string", + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 2000 \nPattern: ^[0-9,\\-]+$ \nUpdate requires: No interruption\n" + }, + "Protocol": { + "$ref": "#/definitions/Protocol" + }, + "UnhealthyThresholdCount": { + "maximum": 10, + "type": "integer", + "minimum": 2, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "IntervalSeconds": { + "maximum": 60, + "type": "integer", + "minimum": 5, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Port", + "Path" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "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 -. ", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "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 -. ", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Arn": { + "minLength": 20, + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + } + }, + "properties": { + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "TrustStoreConfiguration": { + "$ref": "#/definitions/TrustStoreConfiguration" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "Port": { + "$ref": "#/definitions/Port" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "ManagedEndpointConfiguration": { + "$ref": "#/definitions/ManagedEndpointConfiguration" + }, + "SubnetIds": { + "$ref": "#/definitions/SubnetIds" + }, + "SecurityGroupIds": { + "$ref": "#/definitions/SecurityGroupIds" + }, + "VpcId": { + "$ref": "#/definitions/VpcId" + }, + "ResponderGatewayStatus": { + "$ref": "#/definitions/ResponderGatewayStatus" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "Protocol": { + "$ref": "#/definitions/Protocol" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "required": [ + "VpcId", + "SubnetIds", + "SecurityGroupIds", + "Port", + "Protocol" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Description", + "/properties/VpcId", + "/properties/SubnetIds", + "/properties/SecurityGroupIds", + "/properties/Port", + "/properties/Protocol", + "/properties/DomainName", + "/properties/TrustStoreConfiguration" + ], + "attributes": { + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "ResponderGatewayStatus": { + "$ref": "#/definitions/ResponderGatewayStatus" + }, + "Arn": { + "$ref": "#/definitions/Arn" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rum-appmonitor.json b/server/schema/resources/aws-rum-appmonitor.json index a0b8d085..d9aa3906 100644 --- a/server/schema/resources/aws-rum-appmonitor.json +++ b/server/schema/resources/aws-rum-appmonitor.json @@ -162,23 +162,23 @@ "type": "object", "properties": { "Destination": { - "description": "Defines the destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the Evidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.", + "description": "Defines the destination to send the metrics to. Valid values are CloudWatch and Evidently. Note: Evidently has been discontinued and is no longer supported - requests with Evidently will be rejected.", "type": "string", "enum": [ "CloudWatch", "Evidently" ], - "markdownDescription": "Defines the destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the Evidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CloudWatch | Evidently \nUpdate requires: No interruption\n" + "markdownDescription": "Defines the destination to send the metrics to. Valid values are CloudWatch and Evidently. Note: Evidently has been discontinued and is no longer supported - requests with Evidently will be rejected.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CloudWatch | Evidently \nUpdate requires: No interruption\n" }, "DestinationArn": { "type": "string", - "description": "Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.", - "markdownDescription": "Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.\n\n---\n\nRequired: No \nType: String \nPattern: arn:[^:]*:[^:]*:[^:]*:[^:]*:.* \nUpdate requires: No interruption\n" + "description": "Evidently has been discontinued and therefore this is no longer an acceptable field. If Destination is CloudWatch, do not use this parameter. \n\nThis parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.", + "markdownDescription": "Evidently has been discontinued and therefore this is no longer an acceptable field. If Destination is CloudWatch, do not use this parameter. \n\nThis parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.\n\n---\n\nRequired: No \nType: String \nPattern: arn:[^:]*:[^:]*:[^:]*:[^:]*:.* \nUpdate requires: No interruption\n" }, "IamRoleArn": { "type": "string", - "description": "This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.\n\nThis parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.", - "markdownDescription": "This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.\n\nThis parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.\n\n---\n\nRequired: No \nType: String \nPattern: arn:[^:]*:[^:]*:[^:]*:[^:]*:.* \nUpdate requires: No interruption\n" + "description": "Evidently has been discontinued and therefore this is no longer an acceptable field. If Destination is CloudWatch, do not use this parameter. \n\nThis parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.", + "markdownDescription": "Evidently has been discontinued and therefore this is no longer an acceptable field. If Destination is CloudWatch, do not use this parameter. \n\nThis parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.\n\n---\n\nRequired: No \nType: String \nPattern: arn:[^:]*:[^:]*:[^:]*:[^:]*:.* \nUpdate requires: No interruption\n" }, "MetricDefinitions": { "description": "An array of structures which define the metrics that you want to send.", @@ -204,11 +204,11 @@ "type": "object", "properties": { "Name": { - "description": "The name for the metric that is defined in this structure. For extended metrics, valid values are the following:\n\nPerformanceNavigationDuration\n\nPerformanceResourceDuration\n\nNavigationSatisfiedTransaction\n\nNavigationToleratedTransaction\n\nNavigationFrustratedTransaction\n\nWebVitalsCumulativeLayoutShift\n\nWebVitalsFirstInputDelay\n\nWebVitalsLargestContentfulPaint\n\nJsErrorCount\n\nHttpErrorCount\n\nSessionCount", + "description": "The name for the metric that is defined in this structure. For extended metrics, valid values are the following:\n\nPerformanceNavigationDuration\n\nPerformanceResourceDuration\n\nNavigationSatisfiedTransaction\n\nNavigationToleratedTransaction\n\nNavigationFrustratedTransaction\n\nWebVitalsCumulativeLayoutShift\n\nWebVitalsFirstInputDelay\n\nWebVitalsLargestContentfulPaint\n\nWebVitalsInteractionToNextPaint\n\nJsErrorCount\n\nHttpErrorCount\n\nSessionCount\n\nPageViewCount\n\nHttp4xxCount\n\nHttp5xxCount\n\nSessionDuration\n\nPageViewCountPerSession\n\nJsErrorCountPerSession\n\nHttp4xxCountPerSession\n\nHttp5xxCountPerSession\n\nJsErrorCountPerPageView\n\nHttp4xxCountPerPageView\n\nHttp5xxCountPerPageView\n\nTimeOnPage\n\nColdLaunchTime\n\nWarmLaunchTime\n\nCrashCount\n\nANRCount\n\nAppHangCount\n\nScreenLoadCount\n\nScreenLoadTime\n\nNetworkLatency\n\nSpanPayloadSize\n\nLogEventPayloadSize", "type": "string", "minLength": 1, "maxLength": 255, - "markdownDescription": "The name for the metric that is defined in this structure. For extended metrics, valid values are the following:\n\nPerformanceNavigationDuration\n\nPerformanceResourceDuration\n\nNavigationSatisfiedTransaction\n\nNavigationToleratedTransaction\n\nNavigationFrustratedTransaction\n\nWebVitalsCumulativeLayoutShift\n\nWebVitalsFirstInputDelay\n\nWebVitalsLargestContentfulPaint\n\nJsErrorCount\n\nHttpErrorCount\n\nSessionCount\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + "markdownDescription": "The name for the metric that is defined in this structure. For extended metrics, valid values are the following:\n\nPerformanceNavigationDuration\n\nPerformanceResourceDuration\n\nNavigationSatisfiedTransaction\n\nNavigationToleratedTransaction\n\nNavigationFrustratedTransaction\n\nWebVitalsCumulativeLayoutShift\n\nWebVitalsFirstInputDelay\n\nWebVitalsLargestContentfulPaint\n\nWebVitalsInteractionToNextPaint\n\nJsErrorCount\n\nHttpErrorCount\n\nSessionCount\n\nPageViewCount\n\nHttp4xxCount\n\nHttp5xxCount\n\nSessionDuration\n\nPageViewCountPerSession\n\nJsErrorCountPerSession\n\nHttp4xxCountPerSession\n\nHttp5xxCountPerSession\n\nJsErrorCountPerPageView\n\nHttp4xxCountPerPageView\n\nHttp5xxCountPerPageView\n\nTimeOnPage\n\nColdLaunchTime\n\nWarmLaunchTime\n\nCrashCount\n\nANRCount\n\nAppHangCount\n\nScreenLoadCount\n\nScreenLoadTime\n\nNetworkLatency\n\nSpanPayloadSize\n\nLogEventPayloadSize\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" }, "Namespace": { "description": "The namespace used by CloudWatch Metrics for the metric that is defined in this structure", @@ -218,11 +218,11 @@ "markdownDescription": "The namespace used by CloudWatch Metrics for the metric that is defined in this structure\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 237 \nPattern: [a-zA-Z0-9-._/#:]+$ \nUpdate requires: No interruption\n" }, "ValueKey": { - "description": "The field within the event object that the metric value is sourced from.\n\nIf you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.\n\nIf this metric is sent to Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.", + "description": "The field within the event object that the metric value is sourced from.\n\nIf you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.\n\nIf this metric is sent to Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event. Note: Evidently has been discontinued.", "type": "string", "minLength": 1, "maxLength": 256, - "markdownDescription": "The field within the event object that the metric value is sourced from.\n\nIf you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.\n\nIf this metric is sent to Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: .* \nUpdate requires: No interruption\n" + "markdownDescription": "The field within the event object that the metric value is sourced from.\n\nIf you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.\n\nIf this metric is sent to Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event. Note: Evidently has been discontinued.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: .* \nUpdate requires: No interruption\n" }, "UnitLabel": { "description": "The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit.", @@ -349,14 +349,14 @@ "type": "string", "minLength": 1, "maxLength": 255, - "markdownDescription": "A name for the app monitor\n\n---\n\nRequired: Conditional \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: [\\.\\-_/#A-Za-z0-9]+ \nUpdate requires: Replacement\n" + "markdownDescription": "A name for the app monitor\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: [\\.\\-_/#A-Za-z0-9]+ \nUpdate requires: Replacement\n" }, "Domain": { "description": "The top-level internet domain name for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list.", "type": "string", "minLength": 1, "maxLength": 253, - "markdownDescription": "The top-level internet domain name for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list.\n\n---\n\nRequired: Conditional \nType: String \nMinimum Length: 1 \nMaximum Length: 253 \nPattern: ^(localhost)|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(?![-.])([A-Za-z0-9-\\.\\-]{0,63})((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1}))\\.(?![-])[A-Za-z-0-9]{1,63}((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1}))|^(\\*\\.)(?![-.])([A-Za-z0-9-\\.\\-]{0,63})((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1}))\\.(?![-])[A-Za-z-0-9]{1,63}((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1})) \nUpdate requires: No interruption\n" + "markdownDescription": "The top-level internet domain name for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 253 \nPattern: ^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\\.\\*-]{4,253}$)(?!.*\\.-)(?!.*-\\.)(?!.*\\.\\.)(?!.*[^\\.]{64,})^(\\*\\.)?(?![-\\.\\*])[^\\*]{1,}\\.(\\*|(?!.*--)(?=.*[a-zA-Z])[^\\*]{1,}[^\\*-])$ \nUpdate requires: No interruption\n" }, "DomainList": { "description": "The top-level internet domain names for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list.", @@ -367,9 +367,9 @@ "type": "string", "minLength": 1, "maxLength": 253, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 253 \nPattern: ^(localhost)|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(?![-.])([A-Za-z0-9-\\.\\-]{0,63})((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1}))\\.(?![-])[A-Za-z-0-9]{1,63}((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1}))|^(\\*\\.)(?![-.])([A-Za-z0-9-\\.\\-]{0,63})((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1}))\\.(?![-])[A-Za-z-0-9]{1,63}((?![-])([a-zA-Z0-9]{1}|^[a-zA-Z0-9]{0,1})) \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 253 \nPattern: ^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\\.\\*-]{4,253}$)(?!.*\\.-)(?!.*-\\.)(?!.*\\.\\.)(?!.*[^\\.]{64,})^(\\*\\.)?(?![-\\.\\*])[^\\*]{1,}\\.(\\*|(?!.*--)(?=.*[a-zA-Z])[^\\*]{1,}[^\\*-])$ \nUpdate requires: No interruption\n" }, - "markdownDescription": "The top-level internet domain names for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list.\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The top-level internet domain names for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "CwLogEnabled": { "description": "Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to CWLlong in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur CWLlong charges. If you omit this parameter, the default is false", @@ -390,11 +390,25 @@ }, "DeobfuscationConfiguration": { "$ref": "#/definitions/DeobfuscationConfiguration" + }, + "Platform": { + "type": "string", + "enum": [ + "Web", + "Android", + "iOS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Web | Android | iOS \nUpdate requires: Replacement\n" } }, "additionalProperties": false, "createOnlyProperties": [ - "/properties/Name" + "/properties/Name", + "/properties/Platform" + ], + "deprecatedProperties": [ + "/properties/AppMonitorConfiguration/MetricDestinations/*/DestinationArn", + "/properties/AppMonitorConfiguration/MetricDestinations/*/IamRoleArn" ], "readOnlyProperties": [ "/properties/Id" @@ -410,18 +424,6 @@ "required": [ "Name" ], - "oneOf": [ - { - "required": [ - "Domain" - ] - }, - { - "required": [ - "DomainList" - ] - } - ], "tagging": { "taggable": true, "tagOnCreate": true, diff --git a/server/schema/resources/aws-s3-accessgrant.json b/server/schema/resources/aws-s3-accessgrant.json index ba3fe593..176a4ba2 100644 --- a/server/schema/resources/aws-s3-accessgrant.json +++ b/server/schema/resources/aws-s3-accessgrant.json @@ -1,6 +1,6 @@ { "typeName": "AWS::S3::AccessGrant", - "description": "The AWS::S3::AccessGrant resource is an Amazon S3 resource type representing permissions to a specific S3 bucket or prefix hosted in an S3 Access Grants instance.", + "description": "The AWS::S3::AccessGrant resource is an Amazon S3 resource type representing permissions to a specific S3 bucket or prefix hosted in an S3 Access Grants instance. ", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "Grantee": { diff --git a/server/schema/resources/aws-s3-accessgrantslocation.json b/server/schema/resources/aws-s3-accessgrantslocation.json index a0e2006c..42479761 100644 --- a/server/schema/resources/aws-s3-accessgrantslocation.json +++ b/server/schema/resources/aws-s3-accessgrantslocation.json @@ -43,7 +43,7 @@ "examples": [ "arn:aws:iamw::123456789012:role/rolename" ], - "markdownDescription": "The Amazon Resource Name (ARN) of the access grant location's associated IAM role.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the access grant location's associated IAM role.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "LocationScope": { "type": "string", @@ -51,7 +51,7 @@ "examples": [ "s3://test-bucket-access-grants-cmh/prefixA" ], - "markdownDescription": "Descriptor for where the location actually points\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Descriptor for where the location actually points\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Tags": { "type": "array", @@ -63,7 +63,10 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" } }, - "required": [], + "required": [ + "IamRoleArn", + "LocationScope" + ], "readOnlyProperties": [ "/properties/AccessGrantsLocationArn", "/properties/AccessGrantsLocationId" diff --git a/server/schema/resources/aws-s3-bucket.json b/server/schema/resources/aws-s3-bucket.json index e5932bc4..f4f37d61 100644 --- a/server/schema/resources/aws-s3-bucket.json +++ b/server/schema/resources/aws-s3-bucket.json @@ -43,6 +43,20 @@ "type": "string", "markdownDescription": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html). For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) in the *Amazon S3 User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, + "BucketNamePrefix": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "BucketNamespace": { + "description": "", + "type": "string", + "enum": [ + "global", + "account-regional" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: global | account-regional \nUpdate requires: Replacement\n" + }, "CorsConfiguration": { "$ref": "#/definitions/CorsConfiguration", "description": "Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*.", @@ -59,14 +73,14 @@ "markdownDescription": "Defines how Amazon S3 handles Intelligent-Tiering storage.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "InventoryConfigurations": { - "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", + "description": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", "items": { "$ref": "#/definitions/InventoryConfiguration" }, "type": "array", "uniqueItems": true, "insertionOrder": true, - "markdownDescription": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "LifecycleConfiguration": { "$ref": "#/definitions/LifecycleConfiguration", @@ -95,8 +109,8 @@ }, "MetadataConfiguration": { "$ref": "#/definitions/MetadataConfiguration", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\nRead only property: Yes" + "description": "The S3 Metadata configuration for a general purpose bucket.", + "markdownDescription": "The S3 Metadata configuration for a general purpose bucket.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, "NotificationConfiguration": { "$ref": "#/definitions/NotificationConfiguration", @@ -105,8 +119,8 @@ }, "ObjectLockConfiguration": { "$ref": "#/definitions/ObjectLockConfiguration", - "description": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).", - "markdownDescription": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).\n \n You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt``, containing two spaces after ``my``, you must URL encode this value to ``my%20%20file.txt``.", + "markdownDescription": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).\n \n You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt``, containing two spaces after ``my``, you must URL encode this value to ``my%20%20file.txt``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ObjectLockEnabled": { "description": "Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.", @@ -137,6 +151,15 @@ "type": "array", "markdownDescription": "An arbitrary set of tags (key-value pairs) for this S3 bucket.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "AbacStatus": { + "description": "The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see [Using tags with S3 general purpose buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html).", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "markdownDescription": "The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see [Using tags with S3 general purpose buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html).\n\n---\n\nRequired: No \nType: String \nAllowed Values: Enabled | Disabled \nUpdate requires: No interruption\n" + }, "VersioningConfiguration": { "$ref": "#/definitions/VersioningConfiguration", "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", @@ -378,6 +401,11 @@ "$ref": "#/definitions/ServerSideEncryptionByDefault", "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.", "markdownDescription": "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.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "BlockedEncryptionTypes": { + "$ref": "#/definitions/BlockedEncryptionTypes", + "description": "A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type. For example, blocking an encryption type will block ``PutObject``, ``CopyObject``, ``PostObject``, multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see [Blocking or unblocking SSE-C for a general purpose bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html).\n Currently, this parameter only supports blocking or unblocking server-side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see [Using server-side encryption with customer-provided keys (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html).", + "markdownDescription": "A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type. For example, blocking an encryption type will block ``PutObject``, ``CopyObject``, ``PostObject``, multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see [Blocking or unblocking SSE-C for a general purpose bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html).\n Currently, this parameter only supports blocking or unblocking server-side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see [Using server-side encryption with customer-provided keys (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specifies the default server-side encryption configuration.\n + *General purpose buckets* - If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester\u2019s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.\n + *Directory buckets* - When you specify an [customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -408,6 +436,34 @@ ], "markdownDescription": "Describes 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. For more information, see [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html).\n + *General purpose buckets* - If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key (``aws/s3``) in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. \n + *Directory buckets* - Your SSE-KMS configuration can only support 1 [customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) per directory bucket's lifetime. The [managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (``aws/s3``) isn't supported. \n + *Directory buckets* - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "BlockedEncryptionTypes": { + "description": "A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type. For example, blocking an encryption type will block ``PutObject``, ``CopyObject``, ``PostObject``, multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see [Blocking or unblocking SSE-C for a general purpose bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html).\n This data type is used with the following actions:\n + [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) \n + [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) \n + [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) \n \n + Permissions You must have the s3:PutEncryptionConfiguration permission to block or unblock an encryption type for a bucket. You must have the s3:GetEncryptionConfiguration permission to view a bucket's encryption type.", + "type": "object", + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/BlockedEncryptionTypeList", + "description": "The object encryption type that you want to block or unblock for an Amazon S3 general purpose bucket.\n Currently, this parameter only supports blocking or unblocking server side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see [Using server-side encryption with customer-provided keys (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html).", + "markdownDescription": "The object encryption type that you want to block or unblock for an Amazon S3 general purpose bucket.\n Currently, this parameter only supports blocking or unblocking server side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see [Using server-side encryption with customer-provided keys (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type. For example, blocking an encryption type will block ``PutObject``, ``CopyObject``, ``PostObject``, multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see [Blocking or unblocking SSE-C for a general purpose bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html).\n This data type is used with the following actions:\n + [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) \n + [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) \n + [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) \n \n + Permissions You must have the s3:PutEncryptionConfiguration permission to block or unblock an encryption type for a bucket. You must have the s3:GetEncryptionConfiguration permission to view a bucket's encryption type.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BlockedEncryptionTypeList": { + "description": "List of encryption types.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "NONE", + "SSE-C" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | SSE-C \nUpdate requires: No interruption\n" + }, + "uniqueItems": true, + "insertionOrder": true, + "markdownDescription": "List of encryption types.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "CorsConfiguration": { "type": "object", "additionalProperties": false, @@ -633,9 +689,10 @@ "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", - "ObjectOwner" + "ObjectOwner", + "LifecycleExpirationDate" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus | ChecksumAlgorithm | ObjectAccessControlList | ObjectOwner \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus | ChecksumAlgorithm | ObjectAccessControlList | ObjectOwner | LifecycleExpirationDate \nUpdate requires: No interruption\n" }, "markdownDescription": "Contains the optional fields that are included in the inventory results.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, @@ -661,8 +718,8 @@ "IncludedObjectVersions", "ScheduleFrequency" ], - "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", - "markdownDescription": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", + "markdownDescription": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "LifecycleConfiguration": { "type": "object", @@ -827,7 +884,7 @@ "iso8601UTC": { "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", "type": "string", - "markdownDescription": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)\n\n---\n\nRequired: No \nType: String \nPattern: ^([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$ \nUpdate requires: No interruption\n" + "markdownDescription": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)\n\n---\n\nRequired: No \nType: String \nPattern: ^(\\d{4})-(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$ \nUpdate requires: No interruption\n" }, "NoncurrentVersionExpiration": { "type": "object", @@ -1328,7 +1385,7 @@ "markdownDescription": "Specifies an Object Ownership rule.\n S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "PublicAccessBlockConfiguration": { - "description": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.", + "description": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Bucket-level settings work alongside account-level settings (which may inherit from organization-level policies). For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.", "type": "object", "additionalProperties": false, "properties": { @@ -1353,7 +1410,7 @@ "markdownDescription": "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-service principals and authorized users within this account if the bucket has a public policy.\n Enabling 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.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Bucket-level settings work alongside account-level settings (which may inherit from organization-level policies). For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ReplicationConfiguration": { "type": "object", @@ -1452,8 +1509,8 @@ "Disabled", "Enabled" ], - "description": "Indicates whether to replicate delete markers. Disabled by default.", - "markdownDescription": "Indicates whether to replicate delete markers. Disabled by default.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Disabled | Enabled \nUpdate requires: No interruption\n" + "description": "Indicates whether to replicate delete markers.", + "markdownDescription": "Indicates whether to replicate delete markers.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Disabled | Enabled \nUpdate requires: No interruption\n" } }, "description": "Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication````Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). \n For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). \n If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).", @@ -1495,7 +1552,7 @@ "markdownDescription": "A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.", + "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.\n ``FSX_OPENZFS`` is not an accepted value when replicating objects.", "type": "string", "enum": [ "DEEP_ARCHIVE", @@ -1507,7 +1564,7 @@ "STANDARD", "STANDARD_IA" ], - "markdownDescription": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA \nUpdate requires: No interruption\n" + "markdownDescription": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.\n ``FSX_OPENZFS`` is not an accepted value when replicating objects.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA \nUpdate requires: No interruption\n" } }, "required": [ @@ -1745,7 +1802,7 @@ "markdownDescription": "A container of a key value name pair.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "VersioningConfiguration": { - "description": "Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", + "description": "Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.\n Keep the following timing in mind when enabling, suspending, or transitioning between versioning states:\n + *Enabling versioning* - Changes may take up to 15 minutes to propagate across all AWS regions for full consistency.\n + *Suspending versioning* - Takes effect immediately with no propagation delay.\n + *Transitioning between states* - Any change from Suspended to Enabled has a 15-minute delay.", "type": "object", "additionalProperties": false, "properties": { @@ -1763,7 +1820,7 @@ "required": [ "Status" ], - "markdownDescription": "Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.\n Keep the following timing in mind when enabling, suspending, or transitioning between versioning states:\n + *Enabling versioning* - Changes may take up to 15 minutes to propagate across all AWS regions for full consistency.\n + *Suspending versioning* - Takes effect immediately with no propagation delay.\n + *Transitioning between states* - Any change from Suspended to Enabled has a 15-minute delay.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "WebsiteConfiguration": { "type": "object", @@ -1916,8 +1973,8 @@ "required": [ "S3TablesDestination" ], - "description": "The metadata table configuration of an S3 general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) and [Setting up permissions for configuring metadata tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html).", - "markdownDescription": "The metadata table configuration of an S3 general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) and [Setting up permissions for configuring metadata tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + "description": "We recommend that you create your S3 Metadata configurations by using the V2 [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type. We no longer recommend using the V1 ``MetadataTableConfiguration`` resource type. \n If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using the [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type so that you can expire journal table records and create a live inventory table.\n Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.", + "markdownDescription": "We recommend that you create your S3 Metadata configurations by using the V2 [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type. We no longer recommend using the V1 ``MetadataTableConfiguration`` resource type. \n If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using the [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type so that you can expire journal table records and create a live inventory table.\n Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" }, "S3TablesDestination": { "type": "object", @@ -1948,8 +2005,8 @@ "TableBucketArn", "TableName" ], - "description": "The destination information for the metadata table configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.", - "markdownDescription": "The destination information for the metadata table configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The destination information for a V1 S3 Metadata configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.", + "markdownDescription": "The destination information for a V1 S3 Metadata configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "RecordExpiration": { "type": "object", @@ -1961,20 +2018,20 @@ "ENABLED", "DISABLED" ], - "description": "Specifies whether record expiration is enabled or disabled.", - "markdownDescription": "Specifies whether record expiration is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + "description": "Specifies whether journal table record expiration is enabled or disabled.", + "markdownDescription": "Specifies whether journal table record expiration is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" }, "Days": { "type": "integer", - "description": "The number of days after which records expire. Required if Expiration is ENABLED.", - "markdownDescription": "The number of days after which records expire. Required if Expiration is ENABLED.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647``. For example, to retain your journal table records for one year, set this value to ``365``.", + "markdownDescription": "If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647``. For example, to retain your journal table records for one year, set this value to ``365``.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "required": [ "Expiration" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The journal table record expiration settings for a journal table in an S3 Metadata configuration.", + "markdownDescription": "The journal table record expiration settings for a journal table in an S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MetadataTableEncryptionConfiguration": { "type": "object", @@ -1986,20 +2043,20 @@ "aws:kms", "AES256" ], - "description": "Specifies the server-side encryption algorithm to use for encrypting tables.", - "markdownDescription": "Specifies the server-side encryption algorithm to use for encrypting tables.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws:kms | AES256 \nUpdate requires: No interruption\n" + "description": "The encryption type specified for a metadata table. To specify server-side encryption with KMSlong (KMS) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.", + "markdownDescription": "The encryption type specified for a metadata table. To specify server-side encryption with KMSlong (KMS) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws:kms | AES256 \nUpdate requires: No interruption\n" }, "KmsKeyArn": { "type": "string", - "description": "The ARN of the KMS key. Required if SseAlgorithm is aws:kms.", - "markdownDescription": "The ARN of the KMS key. Required if SseAlgorithm is aws:kms.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "If server-side encryption with KMSlong (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.", + "markdownDescription": "If server-side encryption with KMSlong (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "SseAlgorithm" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The encryption settings for an S3 Metadata journal table or inventory table configuration.", + "markdownDescription": "The encryption settings for an S3 Metadata journal table or inventory table configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MetadataDestination": { "type": "object", @@ -2011,25 +2068,25 @@ "aws", "customer" ], - "description": "The type of the table bucket.", - "markdownDescription": "The type of the table bucket.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws | customer \nUpdate requires: No interruption\n" + "description": "The type of the table bucket where the metadata configuration is stored. The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.", + "markdownDescription": "The type of the table bucket where the metadata configuration is stored. The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws | customer \nUpdate requires: No interruption\n" }, "TableBucketArn": { "type": "string", - "description": "The ARN of the table bucket.", - "markdownDescription": "The ARN of the table bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.", + "markdownDescription": "The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TableNamespace": { "type": "string", - "description": "The namespace of the table.", - "markdownDescription": "The namespace of the table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The namespace in the table bucket where the metadata tables for a metadata configuration are stored.", + "markdownDescription": "The namespace in the table bucket where the metadata tables for a metadata configuration are stored.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "TableBucketType" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The destination information for the S3 Metadata configuration.", + "markdownDescription": "The destination information for the S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "JournalTableConfiguration": { "type": "object", @@ -2042,11 +2099,13 @@ }, "TableArn": { "type": "string", - "description": "The ARN of the journal table.", - "markdownDescription": "The ARN of the journal table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) for the journal table.", + "markdownDescription": "The Amazon Resource Name (ARN) for the journal table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "RecordExpiration": { - "$ref": "#/definitions/RecordExpiration" + "$ref": "#/definitions/RecordExpiration", + "description": "The journal table record expiration settings for the journal table.", + "markdownDescription": "The journal table record expiration settings for the journal table.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/MetadataTableEncryptionConfiguration", @@ -2057,8 +2116,8 @@ "required": [ "RecordExpiration" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The journal table configuration for an S3 Metadata configuration.", + "markdownDescription": "The journal table configuration for an S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "InventoryTableConfiguration": { "type": "object", @@ -2071,8 +2130,8 @@ }, "TableArn": { "type": "string", - "description": "The ARN of the inventory table.", - "markdownDescription": "The ARN of the inventory table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) for the inventory table.", + "markdownDescription": "The Amazon Resource Name (ARN) for the inventory table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ConfigurationState": { "type": "string", @@ -2080,8 +2139,8 @@ "ENABLED", "DISABLED" ], - "description": "Specifies whether inventory table configuration is enabled or disabled.", - "markdownDescription": "Specifies whether inventory table configuration is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + "description": "The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.", + "markdownDescription": "The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/MetadataTableEncryptionConfiguration", @@ -2092,34 +2151,34 @@ "required": [ "ConfigurationState" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The inventory table configuration for an S3 Metadata configuration.", + "markdownDescription": "The inventory table configuration for an S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MetadataConfiguration": { "type": "object", "additionalProperties": false, - "description": "", + "description": "Creates a V2 S3 Metadata configuration of a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.", "properties": { "Destination": { "$ref": "#/definitions/MetadataDestination", - "description": "The destination information for the metadata configuration.", - "markdownDescription": "The destination information for the metadata configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The destination information for the S3 Metadata configuration.", + "markdownDescription": "The destination information for the S3 Metadata configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "JournalTableConfiguration": { "$ref": "#/definitions/JournalTableConfiguration", - "description": "The configuration for the journal table.", - "markdownDescription": "The configuration for the journal table.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "description": "The journal table configuration for a metadata configuration.", + "markdownDescription": "The journal table configuration for a metadata configuration.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, "InventoryTableConfiguration": { "$ref": "#/definitions/InventoryTableConfiguration", - "description": "The configuration for the inventory table.", - "markdownDescription": "The configuration for the inventory table.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The inventory table configuration for a metadata configuration.", + "markdownDescription": "The inventory table configuration for a metadata configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ "JournalTableConfiguration" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" + "markdownDescription": "Creates a V2 S3 Metadata configuration of a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } }, "tagging": { @@ -2131,12 +2190,16 @@ "permissions": [ "s3:PutBucketTagging", "s3:GetBucketTagging", - "s3:DeleteBucketTagging" + "s3:DeleteBucketTagging", + "s3:TagResource", + "s3:UntagResource", + "s3:ListTagsForResource" ] }, "createOnlyProperties": [ "/properties/BucketName", - "/properties/MetadataConfiguration/JournalTableConfiguration/EncryptionConfiguration" + "/properties/BucketNamePrefix", + "/properties/BucketNamespace" ], "primaryIdentifier": [ "/properties/BucketName" @@ -2157,6 +2220,8 @@ ], "writeOnlyProperties": [ "/properties/AccessControl", + "/properties/BucketNamePrefix", + "/properties/BucketNamespace", "/properties/MetadataConfiguration/JournalTableConfiguration/EncryptionConfiguration", "/properties/MetadataConfiguration/InventoryTableConfiguration/EncryptionConfiguration", "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", @@ -2175,6 +2240,8 @@ "permissions": [ "s3:CreateBucket", "s3:PutBucketTagging", + "s3:TagResource", + "s3:PutBucketAbac", "s3:PutAnalyticsConfiguration", "s3:PutEncryptionConfiguration", "s3:PutBucketCORS", @@ -2204,6 +2271,7 @@ "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:GetTable", + "s3tables:PutTableBucketPolicy", "s3tables:PutTableEncryption", "s3tables:PutTablePolicy", "s3tables:GetTableMetadataLocation", @@ -2228,6 +2296,8 @@ "s3:GetBucketPublicAccessBlock", "s3:GetBucketObjectLockConfiguration", "s3:GetBucketTagging", + "s3:ListTagsForResource", + "s3:GetBucketAbac", "s3:GetBucketOwnershipControls", "s3:GetIntelligentTieringConfiguration", "s3:GetBucketMetadataTableConfiguration", @@ -2238,6 +2308,9 @@ "permissions": [ "s3:PutBucketAcl", "s3:PutBucketTagging", + "s3:TagResource", + "s3:UntagResource", + "s3:PutBucketAbac", "s3:PutAnalyticsConfiguration", "s3:PutEncryptionConfiguration", "s3:PutBucketCORS", @@ -2257,6 +2330,7 @@ "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:GetTable", + "s3tables:PutTableBucketPolicy", "s3tables:PutTableEncryption", "s3tables:PutTablePolicy", "s3tables:GetTableMetadataLocation", diff --git a/server/schema/resources/aws-s3-storagelens.json b/server/schema/resources/aws-s3-storagelens.json index d6d7306f..614be235 100644 --- a/server/schema/resources/aws-s3-storagelens.json +++ b/server/schema/resources/aws-s3-storagelens.json @@ -25,6 +25,8 @@ "s3:PutStorageLensConfigurationTagging", "s3:GetStorageLensConfiguration", "s3:GetStorageLensConfigurationTagging", + "s3tables:CreateTableBucket", + "s3tables:PutTableBucketPolicy", "organizations:DescribeOrganization", "organizations:ListAccounts", "organizations:ListAWSServiceAccessForOrganization", @@ -38,6 +40,8 @@ "s3:PutStorageLensConfigurationTagging", "s3:GetStorageLensConfiguration", "s3:GetStorageLensConfigurationTagging", + "s3tables:CreateTableBucket", + "s3tables:PutTableBucketPolicy", "organizations:DescribeOrganization", "organizations:ListAccounts", "organizations:ListAWSServiceAccessForOrganization", @@ -103,6 +107,11 @@ "Include": { "$ref": "#/definitions/BucketsAndRegions" }, + "PrefixDelimiter": { + "description": "The delimiter to divide S3 key into hierarchy of prefixes.", + "type": "string", + "markdownDescription": "The delimiter to divide S3 key into hierarchy of prefixes.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "AwsOrg": { "$ref": "#/definitions/AwsOrg" }, @@ -116,6 +125,9 @@ }, "DataExport": { "$ref": "#/definitions/DataExport" + }, + "ExpandedPrefixesDataExport": { + "$ref": "#/definitions/StorageLensExpandedPrefixesDataExport" } }, "required": [ @@ -125,11 +137,6 @@ ], "markdownDescription": "Specifies the details of Amazon S3 Storage Lens configuration.\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" }, - "StorageLensGroupArn": { - "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", - "type": "string", - "markdownDescription": "The ARN for the Amazon S3 Storage Lens Group configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "PrefixLevelStorageMetrics": { "additionalProperties": false, "type": "object", @@ -145,20 +152,6 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AwsOrg": { - "description": "The AWS Organizations ARN to use in the Amazon S3 Storage Lens configuration.", - "additionalProperties": false, - "type": "object", - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - } - }, - "required": [ - "Arn" - ], - "markdownDescription": "The AWS Organizations ARN to use in the Amazon S3 Storage Lens configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "Encryption": { "oneOf": [ { @@ -216,46 +209,6 @@ }, "markdownDescription": "Enables advanced data protection metrics.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AccountLevel": { - "description": "Account-level metrics configurations.", - "additionalProperties": false, - "type": "object", - "properties": { - "AdvancedDataProtectionMetrics": { - "$ref": "#/definitions/AdvancedDataProtectionMetrics" - }, - "StorageLensGroupLevel": { - "$ref": "#/definitions/StorageLensGroupLevel" - }, - "ActivityMetrics": { - "$ref": "#/definitions/ActivityMetrics" - }, - "BucketLevel": { - "$ref": "#/definitions/BucketLevel" - }, - "AdvancedCostOptimizationMetrics": { - "$ref": "#/definitions/AdvancedCostOptimizationMetrics" - }, - "DetailedStatusCodesMetrics": { - "$ref": "#/definitions/DetailedStatusCodesMetrics" - } - }, - "required": [ - "BucketLevel" - ], - "markdownDescription": "Account-level metrics configurations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "StorageLensGroupLevel": { - "description": "Specifies the details of Amazon S3 Storage Lens Group configuration.", - "additionalProperties": false, - "type": "object", - "properties": { - "StorageLensGroupSelectionCriteria": { - "$ref": "#/definitions/StorageLensGroupSelectionCriteria" - } - }, - "markdownDescription": "Specifies the details of Amazon S3 Storage Lens Group configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "StorageLensGroupSelectionCriteria": { "description": "Selection criteria for Storage Lens Group level metrics", "additionalProperties": false, @@ -331,6 +284,158 @@ ], "markdownDescription": "S3 bucket destination settings for the Amazon S3 Storage Lens metrics export.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "BucketsAndRegions": { + "description": "S3 buckets and Regions to include/exclude in the Amazon S3 Storage Lens configuration.", + "additionalProperties": false, + "type": "object", + "properties": { + "Regions": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "description": "An AWS Region.", + "type": "string", + "markdownDescription": "An AWS Region.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Buckets": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Arn" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "S3 buckets and Regions to include/exclude in the Amazon S3 Storage Lens configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BucketLevel": { + "description": "Bucket-level metrics configurations.", + "additionalProperties": false, + "type": "object", + "properties": { + "AdvancedDataProtectionMetrics": { + "$ref": "#/definitions/AdvancedDataProtectionMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/PrefixLevel" + }, + "ActivityMetrics": { + "$ref": "#/definitions/ActivityMetrics" + }, + "AdvancedPerformanceMetrics": { + "$ref": "#/definitions/AdvancedPerformanceMetrics" + }, + "AdvancedCostOptimizationMetrics": { + "$ref": "#/definitions/AdvancedCostOptimizationMetrics" + }, + "DetailedStatusCodesMetrics": { + "$ref": "#/definitions/DetailedStatusCodesMetrics" + } + }, + "markdownDescription": "Bucket-level metrics configurations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DataExport": { + "description": "Specifies how Amazon S3 Storage Lens metrics should be exported.", + "additionalProperties": false, + "type": "object", + "properties": { + "StorageLensTableDestination": { + "$ref": "#/definitions/StorageLensTableDestination" + }, + "S3BucketDestination": { + "$ref": "#/definitions/S3BucketDestination" + }, + "CloudWatchMetrics": { + "$ref": "#/definitions/CloudWatchMetrics" + } + }, + "markdownDescription": "Specifies how Amazon S3 Storage Lens metrics should be exported.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StorageLensGroupArn": { + "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", + "type": "string", + "markdownDescription": "The ARN for the Amazon S3 Storage Lens Group configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AwsOrg": { + "description": "The AWS Organizations ARN to use in the Amazon S3 Storage Lens configuration.", + "additionalProperties": false, + "type": "object", + "properties": { + "Arn": { + "$ref": "#/definitions/Arn" + } + }, + "required": [ + "Arn" + ], + "markdownDescription": "The AWS Organizations ARN to use in the Amazon S3 Storage Lens configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AccountLevel": { + "description": "Account-level metrics configurations.", + "additionalProperties": false, + "type": "object", + "properties": { + "AdvancedDataProtectionMetrics": { + "$ref": "#/definitions/AdvancedDataProtectionMetrics" + }, + "StorageLensGroupLevel": { + "$ref": "#/definitions/StorageLensGroupLevel" + }, + "ActivityMetrics": { + "$ref": "#/definitions/ActivityMetrics" + }, + "AdvancedPerformanceMetrics": { + "$ref": "#/definitions/AdvancedPerformanceMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/BucketLevel" + }, + "AdvancedCostOptimizationMetrics": { + "$ref": "#/definitions/AdvancedCostOptimizationMetrics" + }, + "DetailedStatusCodesMetrics": { + "$ref": "#/definitions/DetailedStatusCodesMetrics" + } + }, + "required": [ + "BucketLevel" + ], + "markdownDescription": "Account-level metrics configurations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StorageLensGroupLevel": { + "description": "Specifies the details of Amazon S3 Storage Lens Group configuration.", + "additionalProperties": false, + "type": "object", + "properties": { + "StorageLensGroupSelectionCriteria": { + "$ref": "#/definitions/StorageLensGroupSelectionCriteria" + } + }, + "markdownDescription": "Specifies the details of Amazon S3 Storage Lens Group configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StorageLensTableDestination": { + "description": "S3 Tables destination settings for the Amazon S3 Storage Lens metrics export.", + "additionalProperties": false, + "type": "object", + "properties": { + "IsEnabled": { + "description": "Specifies whether the export to S3 Tables is enabled or disabled.", + "type": "boolean", + "markdownDescription": "Specifies whether the export to S3 Tables is enabled or disabled.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Encryption": { + "$ref": "#/definitions/Encryption" + } + }, + "required": [ + "IsEnabled" + ], + "markdownDescription": "S3 Tables destination settings for the Amazon S3 Storage Lens metrics export.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ActivityMetrics": { "description": "Enables activity metrics.", "additionalProperties": false, @@ -399,33 +504,18 @@ ], "markdownDescription": "AWS KMS server-side encryption.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BucketsAndRegions": { - "description": "S3 buckets and Regions to include/exclude in the Amazon S3 Storage Lens configuration.", + "AdvancedPerformanceMetrics": { + "description": "Advanced Performance Metrics.", "additionalProperties": false, "type": "object", "properties": { - "Regions": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "description": "An AWS Region.", - "type": "string", - "markdownDescription": "An AWS Region.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Buckets": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Arn" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "IsEnabled": { + "description": "Specifies whether the Advanced Performance Metrics is enabled or disabled.", + "type": "boolean", + "markdownDescription": "Specifies whether the Advanced Performance Metrics is enabled or disabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, - "markdownDescription": "S3 buckets and Regions to include/exclude in the Amazon S3 Storage Lens configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Advanced Performance Metrics.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Id": { "minLength": 1, @@ -434,29 +524,6 @@ "maxLength": 64, "markdownDescription": "The ID that identifies the Amazon S3 Storage Lens configuration.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9\\-_.]+$ \nUpdate requires: No interruption\n" }, - "BucketLevel": { - "description": "Bucket-level metrics configurations.", - "additionalProperties": false, - "type": "object", - "properties": { - "AdvancedDataProtectionMetrics": { - "$ref": "#/definitions/AdvancedDataProtectionMetrics" - }, - "PrefixLevel": { - "$ref": "#/definitions/PrefixLevel" - }, - "ActivityMetrics": { - "$ref": "#/definitions/ActivityMetrics" - }, - "AdvancedCostOptimizationMetrics": { - "$ref": "#/definitions/AdvancedCostOptimizationMetrics" - }, - "DetailedStatusCodesMetrics": { - "$ref": "#/definitions/DetailedStatusCodesMetrics" - } - }, - "markdownDescription": "Bucket-level metrics configurations.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "Tag": { "additionalProperties": false, "type": "object", @@ -485,19 +552,19 @@ "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the specified resource.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "DataExport": { - "description": "Specifies how Amazon S3 Storage Lens metrics should be exported.", + "StorageLensExpandedPrefixesDataExport": { + "description": "Expanded Prefixes Data Export.", "additionalProperties": false, "type": "object", "properties": { + "StorageLensTableDestination": { + "$ref": "#/definitions/StorageLensTableDestination" + }, "S3BucketDestination": { "$ref": "#/definitions/S3BucketDestination" - }, - "CloudWatchMetrics": { - "$ref": "#/definitions/CloudWatchMetrics" } }, - "markdownDescription": "Specifies how Amazon S3 Storage Lens metrics should be exported.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Expanded Prefixes Data Export.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AdvancedCostOptimizationMetrics": { "description": "Enables advanced cost optimization metrics.", diff --git a/server/schema/resources/aws-s3express-directorybucket.json b/server/schema/resources/aws-s3express-directorybucket.json index 3f8cd06e..947ddcc0 100644 --- a/server/schema/resources/aws-s3express-directorybucket.json +++ b/server/schema/resources/aws-s3express-directorybucket.json @@ -55,6 +55,26 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MetricsConfigurations": { + "description": "Specifies the metrics configurations for the Amazon S3 Express bucket.", + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "items": { + "$ref": "#/definitions/MetricsConfiguration" + }, + "markdownDescription": "Specifies the metrics configurations for the Amazon S3 Express bucket.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "InventoryConfigurations": { + "description": "The inventory configuration for an Amazon S3 Express bucket.", + "items": { + "$ref": "#/definitions/InventoryConfiguration" + }, + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "markdownDescription": "The inventory configuration for an Amazon S3 Express bucket.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "definitions": { @@ -242,6 +262,139 @@ "Value" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MetricsConfiguration": { + "description": "Specifies a metrics configuration for the CloudWatch request metrics from an Amazon S3 Express bucket.", + "type": "object", + "additionalProperties": false, + "properties": { + "Id": { + "description": "The ID used to identify the metrics configuration.", + "type": "string", + "markdownDescription": "The ID used to identify the metrics configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Prefix": { + "description": "The prefix used when evaluating a metrics filter.", + "type": "string", + "markdownDescription": "The prefix used when evaluating a metrics filter.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AccessPointArn": { + "description": "The access point ARN used when evaluating a metrics filter.", + "type": "string", + "markdownDescription": "The access point ARN used when evaluating a metrics filter.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specifies a metrics configuration for the CloudWatch request metrics from an Amazon S3 Express bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InventoryConfiguration": { + "description": "Specifies an inventory configuration for an Amazon S3 Express bucket", + "type": "object", + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/Destination" + }, + "Enabled": { + "description": "Specifies whether the inventory is enabled or disabled.", + "type": "boolean", + "markdownDescription": "Specifies whether the inventory is enabled or disabled.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Id": { + "description": "The ID used to identify the inventory configuration.", + "type": "string", + "markdownDescription": "The ID used to identify the inventory configuration.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "IncludedObjectVersions": { + "description": "Object versions to include in the inventory list.", + "type": "string", + "enum": [ + "All", + "Current" + ], + "markdownDescription": "Object versions to include in the inventory list.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: All | Current \nUpdate requires: No interruption\n" + }, + "OptionalFields": { + "description": "Contains the optional fields that are included in the inventory results.", + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "items": { + "type": "string", + "enum": [ + "Size", + "LastModifiedDate", + "StorageClass", + "ETag", + "IsMultipartUploaded", + "EncryptionStatus", + "BucketKeyStatus", + "ChecksumAlgorithm", + "LifecycleExpirationDate" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | EncryptionStatus | BucketKeyStatus | ChecksumAlgorithm | LifecycleExpirationDate \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Contains the optional fields that are included in the inventory results.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Prefix": { + "description": "The prefix that is prepended to all inventory results.", + "type": "string", + "markdownDescription": "The prefix that is prepended to all inventory results.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ScheduleFrequency": { + "description": "Specifies the schedule for generating inventory results.", + "type": "string", + "enum": [ + "Daily", + "Weekly" + ], + "markdownDescription": "Specifies the schedule for generating inventory results.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Daily | Weekly \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Destination", + "Enabled", + "Id", + "IncludedObjectVersions", + "ScheduleFrequency" + ], + "markdownDescription": "Specifies an inventory configuration for an Amazon S3 Express bucket\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Destination": { + "description": "Specifies information about where to publish inventory reports for an Amazon S3 Express bucket.", + "type": "object", + "additionalProperties": false, + "properties": { + "BucketArn": { + "description": "The Amazon Resource Name (ARN) of the destination Amazon S3 bucket to which data is exported.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the destination Amazon S3 bucket to which data is exported.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "BucketAccountId": { + "description": "The account ID that owns the destination S3 bucket. ", + "type": "string", + "markdownDescription": "The account ID that owns the destination S3 bucket. \n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Format": { + "description": "Specifies the file format used when exporting data to Amazon S3.", + "type": "string", + "enum": [ + "CSV", + "ORC", + "Parquet" + ], + "markdownDescription": "Specifies the file format used when exporting data to Amazon S3.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CSV | ORC | Parquet \nUpdate requires: No interruption\n" + }, + "Prefix": { + "description": "The prefix to use when exporting data. The prefix is prepended to all results.", + "type": "string", + "markdownDescription": "The prefix to use when exporting data. The prefix is prepended to all results.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "BucketArn", + "Format" + ], + "markdownDescription": "Specifies information about where to publish inventory reports for an Amazon S3 Express bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "createOnlyProperties": [ @@ -280,6 +433,8 @@ "s3express:ListAllMyDirectoryBuckets", "s3express:PutEncryptionConfiguration", "s3express:PutLifecycleConfiguration", + "s3express:PutMetricsConfiguration", + "s3express:PutInventoryConfiguration", "s3express:TagResource" ] }, @@ -289,6 +444,8 @@ "ec2:DescribeAvailabilityZones", "s3express:GetEncryptionConfiguration", "s3express:GetLifecycleConfiguration", + "s3express:GetMetricsConfiguration", + "s3express:GetInventoryConfiguration", "s3express:ListTagsForResource" ] }, @@ -298,6 +455,8 @@ "kms:Decrypt", "s3express:PutEncryptionConfiguration", "s3express:PutLifecycleConfiguration", + "s3express:PutMetricsConfiguration", + "s3express:PutInventoryConfiguration", "s3express:TagResource", "s3express:UntagResource" ] diff --git a/server/schema/resources/aws-s3files-accesspoint.json b/server/schema/resources/aws-s3files-accesspoint.json new file mode 100644 index 00000000..fcef7315 --- /dev/null +++ b/server/schema/resources/aws-s3files-accesspoint.json @@ -0,0 +1,278 @@ +{ + "typeName": "AWS::S3Files::AccessPoint", + "description": "Resource Type definition for AWS::S3Files::AccessPoint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "AccessPointTag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CreationPermissions": { + "type": "object", + "properties": { + "OwnerUid": { + "type": "string", + "description": "Specifies the POSIX user ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295).", + "markdownDescription": "Specifies the POSIX user ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295).\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "OwnerGid": { + "type": "string", + "description": "Specifies the POSIX group ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295).", + "markdownDescription": "Specifies the POSIX group ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295).\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Permissions": { + "type": "string", + "description": "Specifies the POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits.", + "markdownDescription": "Specifies the POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-7]{3,4}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "OwnerUid", + "OwnerGid", + "Permissions" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RootDirectory": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the CreationPermissions.", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the CreationPermissions.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^(\\/|(\\/(?!\\.)+[^$#<>;;`|&?{}^*/\\n]+){1,4})$ \nUpdate requires: No interruption\n" + }, + "CreationPermissions": { + "description": "(Optional) Specifies the POSIX IDs and permissions to apply to the access point's RootDirectory. If the RootDirectory>Path specified does not exist, EFS creates the root directory using the CreationPermissions settings when a client connects to an access point. When specifying the CreationPermissions, you must provide values for all properties. If you do not provide CreationPermissions and the specified RootDirectory>Path does not exist, attempts to mount the file system using the access point will fail. ", + "$ref": "#/definitions/CreationPermissions", + "markdownDescription": "(Optional) Specifies the POSIX IDs and permissions to apply to the access point's RootDirectory. If the RootDirectory>Path specified does not exist, EFS creates the root directory using the CreationPermissions settings when a client connects to an access point. When specifying the CreationPermissions, you must provide values for all properties. If you do not provide CreationPermissions and the specified RootDirectory>Path does not exist, attempts to mount the file system using the access point will fail. \n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, + "PosixUser": { + "type": "object", + "properties": { + "Uid": { + "type": "string", + "description": "The POSIX user ID used for all file system operations using this access point.", + "markdownDescription": "The POSIX user ID used for all file system operations using this access point.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "Gid": { + "type": "string", + "description": "The POSIX group ID used for all file system operations using this access point.", + "markdownDescription": "The POSIX group ID used for all file system operations using this access point.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "SecondaryGids": { + "type": "array", + "description": "Secondary POSIX group IDs used for all file system operations using this access point.", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]+$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Secondary POSIX group IDs used for all file system operations using this access point.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Uid", + "Gid" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + } + }, + "properties": { + "AccessPointId": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}|fsap-[0-9a-f]{17,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccessPointArn": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ClientToken": { + "description": "(optional) A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "(optional) A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^(.+)$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "maxItems": 50, + "items": { + "$ref": "#/definitions/AccessPointTag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "FileSystemId": { + "description": "The ID of the S3 Files file system that the access point provides access to.", + "type": "string", + "maxLength": 128, + "markdownDescription": "The ID of the S3 Files file system that the access point provides access to.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}|fs-[0-9a-f]{17,40})$ \nUpdate requires: Replacement\n" + }, + "PosixUser": { + "description": "The operating system user and group applied to all compute drive requests made using the access point.", + "$ref": "#/definitions/PosixUser", + "markdownDescription": "The operating system user and group applied to all compute drive requests made using the access point.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "RootDirectory": { + "description": "Specifies the directory on the Amazon EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the RootDirectory>Path specified does not exist, EFS creates it and applies the CreationPermissions settings when a client connects to an access point. When specifying a RootDirectory, you need to provide the Path, and the CreationPermissions is optional.", + "$ref": "#/definitions/RootDirectory", + "markdownDescription": "Specifies the directory on the Amazon EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the RootDirectory>Path specified does not exist, EFS creates it and applies the CreationPermissions settings when a client connects to an access point. When specifying a RootDirectory, you need to provide the Path, and the CreationPermissions is optional.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" + }, + "Status": { + "type": "string", + "enum": [ + "available", + "creating", + "updating", + "deleting", + "deleted", + "error" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: available | creating | updating | deleting | deleted | error \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "type": "string", + "maxLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 12 \nPattern: ^((\\d{12})|(\\d{4}-\\d{4}-\\d{4}))$ \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "FileSystemId" + ], + "primaryIdentifier": [ + "/properties/AccessPointId" + ], + "createOnlyProperties": [ + "/properties/FileSystemId", + "/properties/ClientToken", + "/properties/PosixUser", + "/properties/PosixUser/Uid", + "/properties/PosixUser/Gid", + "/properties/PosixUser/SecondaryGids", + "/properties/RootDirectory", + "/properties/RootDirectory/Path", + "/properties/RootDirectory/CreationPermissions", + "/properties/RootDirectory/CreationPermissions/OwnerUid", + "/properties/RootDirectory/CreationPermissions/OwnerGid", + "/properties/RootDirectory/CreationPermissions/Permissions" + ], + "readOnlyProperties": [ + "/properties/AccessPointId", + "/properties/AccessPointArn", + "/properties/Status", + "/properties/OwnerId" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "s3files:TagResource", + "s3files:ListTagsForResource", + "s3files:UntagResource" + ] + }, + "propertyTransform": { + "/properties/FileSystemId": "$split(FileSystemId, \"/\")[-1] $OR FileSystemId" + }, + "handlers": { + "create": { + "permissions": [ + "s3files:CreateAccessPoint", + "s3files:TagResource", + "s3files:GetAccessPoint" + ] + }, + "read": { + "permissions": [ + "s3files:GetAccessPoint", + "s3files:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "s3files:DeleteAccessPoint", + "s3files:GetAccessPoint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FileSystemId": { + "$ref": "resource-schema.json#/properties/FileSystemId" + } + }, + "required": [ + "FileSystemId" + ] + }, + "permissions": [ + "s3files:ListAccessPoints" + ] + }, + "update": { + "permissions": [ + "s3files:GetAccessPoint", + "s3files:ListTagsForResource", + "s3files:TagResource", + "s3files:UntagResource" + ] + } + }, + "attributes": { + "AccessPointId": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}|fsap-[0-9a-f]{17,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccessPointArn": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "available", + "creating", + "updating", + "deleting", + "deleted", + "error" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: available | creating | updating | deleting | deleted | error \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "type": "string", + "maxLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 12 \nPattern: ^((\\d{12})|(\\d{4}-\\d{4}-\\d{4}))$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3files-filesystem.json b/server/schema/resources/aws-s3files-filesystem.json new file mode 100644 index 00000000..d68a3ce6 --- /dev/null +++ b/server/schema/resources/aws-s3files-filesystem.json @@ -0,0 +1,337 @@ +{ + "typeName": "AWS::S3Files::FileSystem", + "description": "Resource Type definition for AWS::S3Files::FileSystem", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "primaryIdentifier": [ + "/properties/FileSystemArn" + ], + "additionalIdentifiers": [ + [ + "/properties/FileSystemId" + ] + ], + "readOnlyProperties": [ + "/properties/CreationTime", + "/properties/FileSystemArn", + "/properties/FileSystemId", + "/properties/CreationTime", + "/properties/Status", + "/properties/StatusMessage", + "/properties/OwnerId", + "/properties/SynchronizationConfiguration/LatestVersionNumber" + ], + "createOnlyProperties": [ + "/properties/Bucket", + "/properties/Prefix", + "/properties/ClientToken", + "/properties/KmsKeyId", + "/properties/RoleArn", + "/properties/AcceptBucketWarning" + ], + "writeOnlyProperties": [ + "/properties/AcceptBucketWarning" + ], + "propertyTransform": { + "/properties/KmsKeyId": "\"arn:aws[-a-z]*:kms:[a-z0-9-]+:[0-9]{12}:key/[a-zA-Z0-9-]+\"" + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "s3files:TagResource", + "s3files:ListTagsForResource", + "s3files:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "s3files:CreateFileSystem", + "s3files:GetFileSystem", + "s3files:PutSynchronizationConfiguration", + "s3files:GetSynchronizationConfiguration", + "s3files:TagResource", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:CreateGrant", + "iam:PassRole", + "s3:PutBucketNotification", + "s3:GetBucketNotification", + "events:PutTargets", + "events:PutRule", + "events:ListTargetsByRule", + "events:ListRules", + "events:DescribeRule" + ] + }, + "read": { + "permissions": [ + "s3files:GetFileSystem", + "s3files:GetSynchronizationConfiguration", + "s3files:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "s3files:GetFileSystem", + "s3files:GetSynchronizationConfiguration", + "s3files:PutSynchronizationConfiguration", + "s3files:TagResource", + "s3files:UntagResource", + "s3files:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "s3files:DeleteFileSystem", + "s3files:GetFileSystem", + "events:DescribeRule", + "events:DeleteRule", + "events:ListTargetsByRule", + "events:PutRule", + "events:RemoveTargets" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Bucket": { + "$ref": "resource-schema.json#/properties/Bucket" + } + } + }, + "permissions": [ + "s3files:ListFileSystems", + "s3files:ListTagsForResource" + ] + } + }, + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$ \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Value", + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ImportDataRule": { + "type": "object", + "additionalProperties": false, + "properties": { + "Prefix": { + "type": "string", + "minLength": 0, + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1024 \nPattern: ^(|.*/)$ \nUpdate requires: No interruption\n" + }, + "Trigger": { + "type": "string", + "enum": [ + "ON_DIRECTORY_FIRST_ACCESS", + "ON_FILE_ACCESS" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ON_DIRECTORY_FIRST_ACCESS | ON_FILE_ACCESS \nUpdate requires: No interruption\n" + }, + "SizeLessThan": { + "type": "integer", + "format": "int64", + "minimum": 0, + "maximum": 52673613135872, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Prefix", + "Trigger", + "SizeLessThan" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExpirationDataRule": { + "type": "object", + "additionalProperties": false, + "properties": { + "DaysAfterLastAccess": { + "type": "integer", + "minimum": 1, + "maximum": 365, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DaysAfterLastAccess" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SynchronizationConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "LatestVersionNumber": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ImportDataRules": { + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/ImportDataRule" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ExpirationDataRules": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "$ref": "#/definitions/ExpirationDataRule" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ImportDataRules", + "ExpirationDataRules" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "properties": { + "CreationTime": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FileSystemId": { + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}|fs-[0-9a-f]{17,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FileSystemArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "maxItems": 50, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "KmsKeyId": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}|alias/[a-zA-Z0-9/_-]+|(arn:aws[-a-z]*:kms:[a-z0-9-]+:\\d{12}:((key/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(key/mrk-[0-9a-f]{32})|(alias/[a-zA-Z0-9/_-]+))))$ \nUpdate requires: Replacement\n" + }, + "Bucket": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^(arn:aws[a-zA-Z0-9-]*:s3:::.+)$ \nUpdate requires: Replacement\n" + }, + "Prefix": { + "type": "string", + "maxLength": 1024, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^(|.*/)$ \nUpdate requires: Replacement\n" + }, + "ClientToken": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^(.+)$ \nUpdate requires: Replacement\n" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$ \nUpdate requires: Replacement\n" + }, + "Status": { + "type": "string", + "enum": [ + "creating", + "available", + "updating", + "deleting", + "deleted", + "error" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: creating | available | updating | deleting | deleted | error \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SynchronizationConfiguration": { + "$ref": "#/definitions/SynchronizationConfiguration" + }, + "AcceptBucketWarning": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + } + }, + "additionalProperties": false, + "required": [ + "Bucket", + "RoleArn" + ], + "attributes": { + "CreationTime": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FileSystemId": { + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}|fs-[0-9a-f]{17,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FileSystemArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "creating", + "available", + "updating", + "deleting", + "deleted", + "error" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: creating | available | updating | deleting | deleted | error \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3files-filesystempolicy.json b/server/schema/resources/aws-s3files-filesystempolicy.json new file mode 100644 index 00000000..564c2a92 --- /dev/null +++ b/server/schema/resources/aws-s3files-filesystempolicy.json @@ -0,0 +1,65 @@ +{ + "typeName": "AWS::S3Files::FileSystemPolicy", + "description": "Resource Type definition for AWS::S3Files::FileSystemPolicy", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "additionalProperties": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "properties": { + "FileSystemId": { + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}|fs-[0-9a-f]{17,40})$ \nUpdate requires: Replacement\n" + }, + "Policy": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "primaryIdentifier": [ + "/properties/FileSystemId" + ], + "createOnlyProperties": [ + "/properties/FileSystemId" + ], + "required": [ + "FileSystemId", + "Policy" + ], + "handlers": { + "create": { + "permissions": [ + "s3files:GetFileSystemPolicy", + "s3files:PutFileSystemPolicy" + ] + }, + "read": { + "permissions": [ + "s3files:GetFileSystemPolicy" + ] + }, + "update": { + "permissions": [ + "s3files:GetFileSystemPolicy", + "s3files:PutFileSystemPolicy" + ] + }, + "delete": { + "permissions": [ + "s3files:GetFileSystemPolicy", + "s3files:DeleteFileSystemPolicy" + ] + }, + "list": { + "permissions": [ + "s3files:GetFileSystemPolicy", + "s3files:ListFileSystems" + ] + } + }, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3files-mounttarget.json b/server/schema/resources/aws-s3files-mounttarget.json new file mode 100644 index 00000000..5f8fdff6 --- /dev/null +++ b/server/schema/resources/aws-s3files-mounttarget.json @@ -0,0 +1,204 @@ +{ + "typeName": "AWS::S3Files::MountTarget", + "description": "Resource Type definition for AWS::S3Files::MountTarget", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties": { + "MountTargetId": { + "type": "string", + "minLength": 22, + "maxLength": 45, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 22 \nMaximum Length: 45 \nPattern: ^fsmt-[0-9a-f]{17,40}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Ipv4Address": { + "type": "string", + "minLength": 7, + "maxLength": 15, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 7 \nMaximum Length: 15 \nPattern: ^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$ \nUpdate requires: Replacement\n" + }, + "Ipv6Address": { + "type": "string", + "minLength": 3, + "maxLength": 39, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 39 \nUpdate requires: Replacement\n" + }, + "IpAddressType": { + "type": "string", + "enum": [ + "IPV4_ONLY", + "IPV6_ONLY", + "DUAL_STACK" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4_ONLY | IPV6_ONLY | DUAL_STACK \nUpdate requires: Replacement\n" + }, + "FileSystemId": { + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 128 \nPattern: ^(arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}|fs-[0-9a-f]{17,40})$ \nUpdate requires: Replacement\n" + }, + "SecurityGroups": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "maxItems": 100, + "items": { + "type": "string", + "minLength": 11, + "maxLength": 43, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 11 \nMaximum Length: 43 \nPattern: ^(sg-[0-9a-f]{8,40})$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "minLength": 15, + "maxLength": 47, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 15 \nMaximum Length: 47 \nPattern: ^subnet-[0-9a-f]{8,40}$ \nUpdate requires: Replacement\n" + }, + "AvailabilityZoneId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "type": "string", + "maxLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 12 \nPattern: ^((\\d{12})|(\\d{4}-\\d{4}-\\d{4}))$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NetworkInterfaceId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "available", + "creating", + "updating", + "deleting", + "deleted", + "error" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: available | creating | updating | deleting | deleted | error \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "FileSystemId", + "SubnetId" + ], + "createOnlyProperties": [ + "/properties/Ipv4Address", + "/properties/Ipv6Address", + "/properties/IpAddressType", + "/properties/SubnetId", + "/properties/FileSystemId" + ], + "primaryIdentifier": [ + "/properties/MountTargetId" + ], + "readOnlyProperties": [ + "/properties/MountTargetId", + "/properties/AvailabilityZoneId", + "/properties/OwnerId", + "/properties/NetworkInterfaceId", + "/properties/VpcId", + "/properties/Status", + "/properties/StatusMessage" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "s3files:CreateMountTarget", + "s3files:GetMountTarget", + "s3files:ListMountTargets", + "ec2:DescribeSubnets", + "ec2:CreateNetworkInterface" + ] + }, + "read": { + "permissions": [ + "s3files:GetMountTarget" + ] + }, + "update": { + "permissions": [ + "s3files:GetMountTarget", + "s3files:UpdateMountTarget", + "ec2:ModifyNetworkInterfaceAttribute" + ] + }, + "delete": { + "permissions": [ + "s3files:GetMountTarget", + "s3files:DeleteMountTarget", + "ec2:DeleteNetworkInterface" + ] + }, + "list": { + "permissions": [ + "s3files:ListMountTargets" + ], + "handlerSchema": { + "properties": { + "FileSystemId": { + "$ref": "resource-schema.json#/properties/FileSystemId" + } + }, + "required": [ + "FileSystemId" + ] + } + } + }, + "attributes": { + "MountTargetId": { + "type": "string", + "minLength": 22, + "maxLength": 45, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 22 \nMaximum Length: 45 \nPattern: ^fsmt-[0-9a-f]{17,40}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AvailabilityZoneId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "OwnerId": { + "type": "string", + "maxLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 12 \nPattern: ^((\\d{12})|(\\d{4}-\\d{4}-\\d{4}))$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "NetworkInterfaceId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "available", + "creating", + "updating", + "deleting", + "deleted", + "error" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: available | creating | updating | deleting | deleted | error \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StatusMessage": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3tables-table.json b/server/schema/resources/aws-s3tables-table.json index 5f81806c..82d1b2f1 100644 --- a/server/schema/resources/aws-s3tables-table.json +++ b/server/schema/resources/aws-s3tables-table.json @@ -1,15 +1,23 @@ { "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, + "permissions": [ + "s3tables:TagResource", + "s3tables:UntagResource", + "s3tables:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", "cloudFormationSystemTags": false }, "handlers": { "read": { "permissions": [ "s3tables:GetTable", - "s3tables:GetTableMaintenanceConfiguration" + "s3tables:GetTableMaintenanceConfiguration", + "s3tables:GetTableStorageClass", + "s3tables:ListTagsForResource" ] }, "create": { @@ -17,14 +25,23 @@ "s3tables:CreateTable", "s3tables:PutTableData", "s3tables:GetTable", - "s3tables:PutTableMaintenanceConfiguration" + "s3tables:PutTableMaintenanceConfiguration", + "s3tables:GetTableMaintenanceConfiguration", + "s3tables:PutTableStorageClass", + "s3tables:GetTableStorageClass", + "s3tables:TagResource", + "s3tables:ListTagsForResource" ] }, "update": { "permissions": [ "s3tables:GetTable", "s3tables:RenameTable", - "s3tables:PutTableMaintenanceConfiguration" + "s3tables:PutTableMaintenanceConfiguration", + "s3tables:GetTableMaintenanceConfiguration", + "s3tables:TagResource", + "s3tables:UntagResource", + "s3tables:ListTagsForResource" ] }, "list": { @@ -76,20 +93,130 @@ "/properties/TableBucketARN", "/properties/OpenTableFormat", "/properties/IcebergMetadata", - "/properties/WithoutMetadata" + "/properties/WithoutMetadata", + "/properties/StorageClassConfiguration" ], "additionalProperties": false, "primaryIdentifier": [ "/properties/TableARN" ], "definitions": { - "WithoutMetadata": { - "description": "Indicates that you don't want to specify a schema for the table. This property is mutually exclusive to 'IcebergMetadata', and its only possible value is 'Yes'.", - "type": "string", - "enum": [ - "Yes" + "StorageClassConfiguration": { + "description": "Specifies storage class settings for the table", + "additionalProperties": false, + "type": "object", + "properties": { + "StorageClass": { + "description": "The storage class for the table", + "type": "string", + "enum": [ + "STANDARD", + "INTELLIGENT_TIERING" + ], + "markdownDescription": "The storage class for the table\n\n---\n\nRequired: No \nType: String \nAllowed Values: STANDARD | INTELLIGENT_TIERING \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specifies storage class settings for the table\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergSortFieldList": { + "description": "List of sort fields for an Iceberg table", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/IcebergSortField" + }, + "markdownDescription": "List of sort fields for an Iceberg table\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IcebergSortOrder": { + "description": "Sort order specification for an Iceberg table", + "additionalProperties": false, + "type": "object", + "properties": { + "Fields": { + "description": "List of sort fields", + "$ref": "#/definitions/IcebergSortFieldList", + "markdownDescription": "List of sort fields\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "OrderId": { + "description": "The sort order ID (defaults to 1 if not specified, 0 is reserved for unsorted)", + "type": "integer", + "markdownDescription": "The sort order ID (defaults to 1 if not specified, 0 is reserved for unsorted)\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Fields" ], - "markdownDescription": "Indicates that you don't want to specify a schema for the table. This property is mutually exclusive to 'IcebergMetadata', and its only possible value is 'Yes'.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Yes \nUpdate requires: No interruption\n" + "markdownDescription": "Sort order specification for an Iceberg table\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergPartitionFieldList": { + "description": "List of partition fields for an Iceberg table", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/IcebergPartitionField" + }, + "markdownDescription": "List of partition fields for an Iceberg table\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IcebergSchemaV2": { + "description": "Contains details about the schema version 2 (V2) for an Iceberg table that supports Apache Iceberg Nested Types (struct, list, map). Primitive types are also supported.", + "additionalProperties": false, + "type": "object", + "properties": { + "SchemaV2FieldList": { + "description": "The schema fields for the table", + "$ref": "#/definitions/SchemaV2FieldList", + "markdownDescription": "The schema fields for the table\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "SchemaV2FieldType": { + "description": "The type of the top-level schema, which is always 'struct'", + "type": "string", + "enum": [ + "struct" + ], + "markdownDescription": "The type of the top-level schema, which is always 'struct'\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: struct \nUpdate requires: No interruption\n" + }, + "SchemaId": { + "description": "An optional unique identifier for the schema", + "type": "integer", + "markdownDescription": "An optional unique identifier for the schema\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "IdentifierFieldIds": { + "description": "A list of field IDs that are used as the identifier fields for the table. Identifier fields uniquely identify a row in the table.", + "insertionOrder": false, + "type": "array", + "items": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of field IDs that are used as the identifier fields for the table. Identifier fields uniquely identify a row in the table.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "SchemaV2FieldList", + "SchemaV2FieldType" + ], + "markdownDescription": "Contains details about the schema version 2 (V2) for an Iceberg table that supports Apache Iceberg Nested Types (struct, list, map). Primitive types are also supported.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergPartitionSpec": { + "description": "Partition specification for an Iceberg table", + "additionalProperties": false, + "type": "object", + "properties": { + "Fields": { + "description": "List of partition fields", + "$ref": "#/definitions/IcebergPartitionFieldList", + "markdownDescription": "List of partition fields\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "SpecId": { + "description": "The partition spec ID (defaults to 0 if not specified)", + "type": "integer", + "markdownDescription": "The partition spec ID (defaults to 0 if not specified)\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Fields" + ], + "markdownDescription": "Partition specification for an Iceberg table\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Compaction": { "description": "Settings governing the Compaction maintenance action. Contains details about the compaction settings for an Iceberg table.", @@ -114,6 +241,111 @@ }, "markdownDescription": "Settings governing the Compaction maintenance action. Contains details about the compaction settings for an Iceberg table.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TableBucketARN": { + "examples": [ + "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + ], + "description": "The Amazon Resource Name (ARN) of the specified table bucket.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the specified table bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "WarehouseLocation": { + "description": "The warehouse location of the table.", + "type": "string", + "markdownDescription": "The warehouse location of the table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SnapshotManagement": { + "description": "Contains details about the snapshot management settings for an Iceberg table. A snapshot is expired when it exceeds MinSnapshotsToKeep and MaxSnapshotAgeHours.", + "additionalProperties": false, + "type": "object", + "properties": { + "Status": { + "description": "Indicates whether the SnapshotManagement maintenance action is enabled.", + "type": "string", + "enum": [ + "enabled", + "disabled" + ], + "markdownDescription": "Indicates whether the SnapshotManagement maintenance action is enabled.\n\n---\n\nRequired: No \nType: String \nAllowed Values: enabled | disabled \nUpdate requires: No interruption\n" + }, + "MinSnapshotsToKeep": { + "description": "The minimum number of snapshots to keep.", + "type": "integer", + "minimum": 1, + "markdownDescription": "The minimum number of snapshots to keep.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxSnapshotAgeHours": { + "description": "The maximum age of a snapshot before it can be expired.", + "type": "integer", + "minimum": 1, + "markdownDescription": "The maximum age of a snapshot before it can be expired.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Contains details about the snapshot management settings for an Iceberg table. A snapshot is expired when it exceeds MinSnapshotsToKeep and MaxSnapshotAgeHours.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WithoutMetadata": { + "description": "Indicates that you don't want to specify a schema for the table. This property is mutually exclusive to 'IcebergMetadata', and its only possible value is 'Yes'.", + "type": "string", + "enum": [ + "Yes" + ], + "markdownDescription": "Indicates that you don't want to specify a schema for the table. This property is mutually exclusive to 'IcebergMetadata', and its only possible value is 'Yes'.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Yes \nUpdate requires: No interruption\n" + }, + "SchemaV2Field": { + "description": "Contains details about a schema field for an Iceberg table that supports nested types (struct, list, map)", + "additionalProperties": false, + "type": "object", + "properties": { + "Type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "description": "The field type. For primitive types, use a string (e.g., 'int', 'string', 'long'). For nested types, use an object (e.g., {'type': 'struct', 'fields': [...]} for struct, {'type': 'list', 'element-id': N, 'element': 'type'} for list, {'type': 'map', 'key-id': N, 'key': 'type', 'value-id': N, 'value': 'type'} for map).", + "markdownDescription": "The field type. For primitive types, use a string (e.g., 'int', 'string', 'long'). For nested types, use an object (e.g., {'type': 'struct', 'fields': [...]} for struct, {'type': 'list', 'element-id': N, 'element': 'type'} for list, {'type': 'map', 'key-id': N, 'key': 'type', 'value-id': N, 'value': 'type'} for map).\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Required": { + "description": "A Boolean value that specifies whether values are required for each row in this field", + "type": "boolean", + "markdownDescription": "A Boolean value that specifies whether values are required for each row in this field\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Doc": { + "description": "Optional documentation for the field", + "type": "string", + "markdownDescription": "Optional documentation for the field\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Id": { + "description": "The unique identifier for the field", + "type": "integer", + "markdownDescription": "The unique identifier for the field\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the field", + "type": "string", + "markdownDescription": "The name of the field\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Id", + "Name", + "Type", + "Required" + ], + "markdownDescription": "Contains details about a schema field for an Iceberg table that supports nested types (struct, list, map)\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaV2FieldList": { + "description": "List of schema fields that support nested types", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/SchemaV2Field" + }, + "markdownDescription": "List of schema fields that support nested types\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Namespace": { "description": "The namespace that the table belongs to.", "type": "string", @@ -134,6 +366,11 @@ "type": "boolean", "markdownDescription": "A Boolean value that specifies whether values are required for each row in this field\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "Id": { + "description": "The unique identifier for the field", + "type": "integer", + "markdownDescription": "The unique identifier for the field\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "Name": { "description": "The name of the field", "type": "string", @@ -151,14 +388,6 @@ "type": "string", "markdownDescription": "The name for the table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "TableBucketARN": { - "examples": [ - "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" - ], - "description": "The Amazon Resource Name (ARN) of the specified table bucket.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the specified table bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "IcebergSchema": { "description": "Contains details about the schema for an Iceberg table", "additionalProperties": false, @@ -203,53 +432,143 @@ ], "markdownDescription": "Format of the table.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ICEBERG \nUpdate requires: No interruption\n" }, - "IcebergMetadata": { - "description": "Contains details about the metadata for an Iceberg table.", + "IcebergSortField": { + "description": "A sort field specification for an Iceberg table", "additionalProperties": false, "type": "object", "properties": { - "IcebergSchema": { - "$ref": "#/definitions/IcebergSchema" + "SourceId": { + "description": "The source column ID to sort on", + "type": "integer", + "markdownDescription": "The source column ID to sort on\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "NullOrder": { + "description": "Null value ordering (nulls-first or nulls-last)", + "type": "string", + "enum": [ + "nulls-first", + "nulls-last" + ], + "markdownDescription": "Null value ordering (nulls-first or nulls-last)\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: nulls-first | nulls-last \nUpdate requires: No interruption\n" + }, + "Transform": { + "description": "The sort transform function", + "type": "string", + "markdownDescription": "The sort transform function\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Direction": { + "description": "Sort direction (asc or desc)", + "type": "string", + "enum": [ + "asc", + "desc" + ], + "markdownDescription": "Sort direction (asc or desc)\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: asc | desc \nUpdate requires: No interruption\n" } }, "required": [ - "IcebergSchema" + "SourceId", + "Transform", + "Direction", + "NullOrder" ], - "markdownDescription": "Contains details about the metadata for an Iceberg table.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "WarehouseLocation": { - "description": "The warehouse location of the table.", - "type": "string", - "markdownDescription": "The warehouse location of the table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "A sort field specification for an Iceberg table\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "SnapshotManagement": { - "description": "Contains details about the snapshot management settings for an Iceberg table. A snapshot is expired when it exceeds MinSnapshotsToKeep and MaxSnapshotAgeHours.", + "IcebergMetadata": { + "description": "Contains details about the metadata for an Iceberg table. Specify either IcebergSchema (for simple flat schemas with primitive types only) or IcebergSchemaV2 (for schemas with nested types like struct, list, map), but not both.", "additionalProperties": false, "type": "object", "properties": { - "Status": { - "description": "Indicates whether the SnapshotManagement maintenance action is enabled.", - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "markdownDescription": "Indicates whether the SnapshotManagement maintenance action is enabled.\n\n---\n\nRequired: No \nType: String \nAllowed Values: enabled | disabled \nUpdate requires: No interruption\n" + "IcebergSchema": { + "description": "Schema definition for flat tables with primitive types only. Mutually exclusive with IcebergSchemaV2.", + "$ref": "#/definitions/IcebergSchema", + "markdownDescription": "Schema definition for flat tables with primitive types only. Mutually exclusive with IcebergSchemaV2.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "MinSnapshotsToKeep": { - "description": "The minimum number of snapshots to keep.", + "IcebergSortOrder": { + "$ref": "#/definitions/IcebergSortOrder" + }, + "IcebergSchemaV2": { + "description": "Schema definition that supports Apache Iceberg nested types (struct, list, map) and primitive types. Mutually exclusive with IcebergSchema.", + "$ref": "#/definitions/IcebergSchemaV2", + "markdownDescription": "Schema definition that supports Apache Iceberg nested types (struct, list, map) and primitive types. Mutually exclusive with IcebergSchema.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "IcebergPartitionSpec": { + "$ref": "#/definitions/IcebergPartitionSpec" + }, + "TableProperties": { + "$ref": "#/definitions/TableProperties" + } + }, + "markdownDescription": "Contains details about the metadata for an Iceberg table. Specify either IcebergSchema (for simple flat schemas with primitive types only) or IcebergSchemaV2 (for schemas with nested types like struct, list, map), but not both.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IcebergPartitionField": { + "description": "A partition field specification for an Iceberg table", + "additionalProperties": false, + "type": "object", + "properties": { + "SourceId": { + "description": "The source column ID to partition on", "type": "integer", - "minimum": 1, - "markdownDescription": "The minimum number of snapshots to keep.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The source column ID to partition on\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, - "MaxSnapshotAgeHours": { - "description": "The maximum age of a snapshot before it can be expired.", + "FieldId": { + "description": "The partition field ID (auto-assigned starting from 1000 if not specified)", "type": "integer", - "minimum": 1, - "markdownDescription": "The maximum age of a snapshot before it can be expired.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The partition field ID (auto-assigned starting from 1000 if not specified)\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Transform": { + "description": "The partition transform function (identity, bucket[N], truncate[N], year, month, day, hour)", + "type": "string", + "markdownDescription": "The partition transform function (identity, bucket[N], truncate[N], year, month, day, hour)\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Name": { + "description": "The name of the partition field", + "type": "string", + "markdownDescription": "The name of the partition field\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Contains details about the snapshot management settings for an Iceberg table. A snapshot is expired when it exceeds MinSnapshotsToKeep and MaxSnapshotAgeHours.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "SourceId", + "Transform", + "Name" + ], + "markdownDescription": "A partition field specification for an Iceberg table\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "type": "string", + "maxLength": 256, + "markdownDescription": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "description": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "type": "string", + "maxLength": 128, + "markdownDescription": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TableProperties": { + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "description": "Iceberg table properties (e.g., format-version, write.parquet.compression-codec)", + "additionalProperties": false, + "type": "object", + "markdownDescription": "Iceberg table properties (e.g., format-version, write.parquet.compression-codec)\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ @@ -262,6 +581,9 @@ "WithoutMetadata": { "$ref": "#/definitions/WithoutMetadata" }, + "StorageClassConfiguration": { + "$ref": "#/definitions/StorageClassConfiguration" + }, "Compaction": { "$ref": "#/definitions/Compaction" }, @@ -291,6 +613,16 @@ }, "SnapshotManagement": { "$ref": "#/definitions/SnapshotManagement" + }, + "Tags": { + "uniqueItems": true, + "description": "User tags (key-value pairs) to associate with the table.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "User tags (key-value pairs) to associate with the table.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "attributes": { diff --git a/server/schema/resources/aws-s3tables-tablebucket.json b/server/schema/resources/aws-s3tables-tablebucket.json index f166ac62..eeceb411 100644 --- a/server/schema/resources/aws-s3tables-tablebucket.json +++ b/server/schema/resources/aws-s3tables-tablebucket.json @@ -13,6 +13,25 @@ }, "EncryptionConfiguration": { "$ref": "#/definitions/EncryptionConfiguration" + }, + "MetricsConfiguration": { + "$ref": "#/definitions/MetricsConfiguration" + }, + "StorageClassConfiguration": { + "$ref": "#/definitions/StorageClassConfiguration" + }, + "ReplicationConfiguration": { + "$ref": "#/definitions/ReplicationConfiguration" + }, + "Tags": { + "description": "User tags (key-value pairs) to associate with the table bucket.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "User tags (key-value pairs) to associate with the table bucket.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "definitions": { @@ -81,6 +100,129 @@ }, "additionalProperties": false, "markdownDescription": "Specifies encryption settings for the table bucket\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MetricsConfiguration": { + "type": "object", + "description": "Settings governing the Metric configuration for the table bucket.", + "properties": { + "Status": { + "description": "Indicates whether Metrics are enabled.", + "type": "string", + "default": "Disabled", + "enum": [ + "Enabled", + "Disabled" + ], + "markdownDescription": "Indicates whether Metrics are enabled.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Enabled | Disabled \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Settings governing the Metric configuration for the table bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "StorageClassConfiguration": { + "type": "object", + "description": "Specifies storage class settings for the table bucket", + "properties": { + "StorageClass": { + "type": "string", + "description": "The storage class for the table bucket", + "enum": [ + "STANDARD", + "INTELLIGENT_TIERING" + ], + "markdownDescription": "The storage class for the table bucket\n\n---\n\nRequired: No \nType: String \nAllowed Values: STANDARD | INTELLIGENT_TIERING \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Specifies storage class settings for the table bucket\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ReplicationConfiguration": { + "type": "object", + "description": "Specifies replication configuration for the table bucket", + "properties": { + "Role": { + "type": "string", + "description": "The ARN of the IAM role to use for replication", + "markdownDescription": "The ARN of the IAM role to use for replication\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Rules": { + "type": "array", + "description": "List of replication rules", + "items": { + "$ref": "#/definitions/ReplicationRule" + }, + "minItems": 1, + "maxItems": 1, + "markdownDescription": "List of replication rules\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Role", + "Rules" + ], + "additionalProperties": false, + "markdownDescription": "Specifies replication configuration for the table bucket\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ReplicationRule": { + "type": "object", + "description": "A replication rule for the table bucket", + "properties": { + "Destinations": { + "type": "array", + "description": "List of replication destinations", + "items": { + "$ref": "#/definitions/ReplicationDestination" + }, + "minItems": 1, + "maxItems": 5, + "markdownDescription": "List of replication destinations\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Destinations" + ], + "additionalProperties": false, + "markdownDescription": "A replication rule for the table bucket\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ReplicationDestination": { + "type": "object", + "description": "A replication destination", + "properties": { + "DestinationTableBucketARN": { + "type": "string", + "description": "The ARN of the destination table bucket", + "markdownDescription": "The ARN of the destination table bucket\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DestinationTableBucketARN" + ], + "additionalProperties": false, + "markdownDescription": "A replication destination\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "description": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "type": "string", + "maxLength": 256, + "markdownDescription": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -97,39 +239,70 @@ "/properties/TableBucketARN" ], "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "s3tables:TagResource", + "s3tables:UntagResource", + "s3tables:ListTagsForResource" + ] }, "handlers": { "create": { "permissions": [ "s3tables:CreateTableBucket", "s3tables:PutTableBucketMaintenanceConfiguration", + "s3tables:PutTableBucketMetricsConfiguration", "s3tables:PutTableBucketEncryption", + "s3tables:PutTableBucketStorageClass", + "s3tables:PutTableBucketReplication", "s3tables:GetTableBucket", "s3tables:GetTableBucketMaintenanceConfiguration", + "s3tables:GetTableBucketMetricsConfiguration", "s3tables:GetTableBucketEncryption", - "kms:DescribeKey" + "s3tables:GetTableBucketStorageClass", + "s3tables:GetTableBucketReplication", + "kms:DescribeKey", + "s3tables:TagResource", + "s3tables:ListTagsForResource", + "iam:PassRole" ] }, "read": { "permissions": [ "s3tables:GetTableBucket", "s3tables:GetTableBucketMaintenanceConfiguration", - "s3tables:GetTableBucketEncryption" + "s3tables:GetTableBucketMetricsConfiguration", + "s3tables:GetTableBucketEncryption", + "s3tables:GetTableBucketStorageClass", + "s3tables:GetTableBucketReplication", + "s3tables:ListTagsForResource" ] }, "update": { "permissions": [ + "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:PutTableBucketMaintenanceConfiguration", + "s3tables:PutTableBucketMetricsConfiguration", "s3tables:PutTableBucketEncryption", + "s3tables:PutTableBucketStorageClass", + "s3tables:PutTableBucketReplication", + "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketMaintenanceConfiguration", + "s3tables:GetTableBucketMetricsConfiguration", "s3tables:GetTableBucketEncryption", + "s3tables:GetTableBucketStorageClass", + "s3tables:GetTableBucketReplication", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucket", - "kms:DescribeKey" + "kms:DescribeKey", + "s3tables:TagResource", + "s3tables:UntagResource", + "s3tables:ListTagsForResource", + "iam:PassRole" ] }, "delete": { diff --git a/server/schema/resources/aws-s3vectors-index.json b/server/schema/resources/aws-s3vectors-index.json new file mode 100644 index 00000000..1c883387 --- /dev/null +++ b/server/schema/resources/aws-s3vectors-index.json @@ -0,0 +1,287 @@ +{ + "typeName": "AWS::S3Vectors::Index", + "description": "Resource Type definition for AWS::S3Vectors::Index", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "CreationTime": { + "description": "Date and time when the vector index was created.", + "type": "string", + "format": "date-time", + "markdownDescription": "Date and time when the vector index was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DataType": { + "description": "The data type of the vectors to be inserted into the vector index.", + "type": "string", + "enum": [ + "float32" + ], + "markdownDescription": "The data type of the vectors to be inserted into the vector index.\n\n---\n\nRequired: No \nType: String \nAllowed Values: float32 \nUpdate requires: No interruption\n" + }, + "Dimension": { + "description": "The dimensions of the vectors to be inserted into the vector index.", + "type": "integer", + "minimum": 1, + "maximum": 4096, + "markdownDescription": "The dimensions of the vectors to be inserted into the vector index.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DistanceMetric": { + "description": "The distance metric to be used for similarity search.", + "type": "string", + "enum": [ + "cosine", + "euclidean" + ], + "markdownDescription": "The distance metric to be used for similarity search.\n\n---\n\nRequired: No \nType: String \nAllowed Values: cosine | euclidean \nUpdate requires: No interruption\n" + }, + "EncryptionConfiguration": { + "type": "object", + "description": "The encryption configuration for the index.", + "properties": { + "SseType": { + "type": "string", + "description": "Defines the server-side encryption type for index encryption configuration. Defaults to the parent vector bucket's encryption settings when unspecified.", + "enum": [ + "AES256", + "aws:kms" + ], + "markdownDescription": "Defines the server-side encryption type for index encryption configuration. Defaults to the parent vector bucket's encryption settings when unspecified.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AES256 | aws:kms \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "type": "string", + "description": "AWS Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if sseType is set to aws:kms", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "AWS Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if sseType is set to aws:kms\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^(arn:aws[-a-z0-9]*:kms:[-a-z0-9]*:[0-9]{12}:key/.+)$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The encryption configuration for the index.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IndexArn": { + "description": "The Amazon Resource Name (ARN) of the index", + "type": "string", + "examples": [ + "arn:aws:s3vectors:us-east-1:123456789012:bucket/myvectorbucket/index/myindex" + ], + "markdownDescription": "The Amazon Resource Name (ARN) of the index\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IndexName": { + "description": "The name of the vector index to create.", + "type": "string", + "minLength": 3, + "maxLength": 63, + "markdownDescription": "The name of the vector index to create.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + }, + "MetadataConfiguration": { + "description": "The metadata configuration for the vector index.", + "type": "object", + "properties": { + "NonFilterableMetadataKeys": { + "description": "Non-filterable metadata keys allow you to enrich vectors with additional context during storage and retrieval. Unlike default metadata keys, these keys cannot be used as query filters. Non-filterable metadata keys can be retrieved but cannot be searched, queried, or filtered. You can access non-filterable metadata keys of your vectors after finding the vectors.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 63, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 10, + "insertionOrder": false, + "uniqueItems": true, + "markdownDescription": "Non-filterable metadata keys allow you to enrich vectors with additional context during storage and retrieval. Unlike default metadata keys, these keys cannot be used as query filters. Non-filterable metadata keys can be retrieved but cannot be searched, queried, or filtered. You can access non-filterable metadata keys of your vectors after finding the vectors.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The metadata configuration for the vector index.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VectorBucketArn": { + "description": "The Amazon Resource Name (ARN) of the vector bucket.", + "type": "string", + "examples": [ + "arn:aws:s3vectors:us-east-1:123456789012:bucket/myvectorbucket" + ], + "markdownDescription": "The Amazon Resource Name (ARN) of the vector bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VectorBucketName": { + "description": "The name of the vector bucket that contains the vector index.", + "type": "string", + "minLength": 3, + "maxLength": 63, + "markdownDescription": "The name of the vector bucket that contains the vector index.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "maxLength": 256, + "markdownDescription": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "CreationTime": { + "$ref": "#/definitions/CreationTime" + }, + "DataType": { + "$ref": "#/definitions/DataType" + }, + "Dimension": { + "$ref": "#/definitions/Dimension" + }, + "DistanceMetric": { + "$ref": "#/definitions/DistanceMetric" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "IndexArn": { + "$ref": "#/definitions/IndexArn" + }, + "IndexName": { + "$ref": "#/definitions/IndexName" + }, + "MetadataConfiguration": { + "$ref": "#/definitions/MetadataConfiguration" + }, + "VectorBucketArn": { + "$ref": "#/definitions/VectorBucketArn" + }, + "VectorBucketName": { + "$ref": "#/definitions/VectorBucketName" + }, + "Tags": { + "description": "User tags (key-value pairs) to associate with the index.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "User tags (key-value pairs) to associate with the index.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "DataType", + "Dimension", + "DistanceMetric" + ], + "readOnlyProperties": [ + "/properties/CreationTime", + "/properties/IndexArn" + ], + "createOnlyProperties": [ + "/properties/DataType", + "/properties/Dimension", + "/properties/DistanceMetric", + "/properties/EncryptionConfiguration", + "/properties/IndexName", + "/properties/MetadataConfiguration", + "/properties/VectorBucketArn", + "/properties/VectorBucketName" + ], + "primaryIdentifier": [ + "/properties/IndexArn" + ], + "additionalIdentifiers": [ + [ + "/properties/IndexName", + "/properties/VectorBucketName" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "s3vectors:TagResource", + "s3vectors:UntagResource", + "s3vectors:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "s3vectors:GetIndex", + "s3vectors:CreateIndex", + "s3vectors:TagResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "s3vectors:GetIndex", + "s3vectors:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "s3vectors:GetIndex", + "s3vectors:TagResource", + "s3vectors:UntagResource", + "s3vectors:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "s3vectors:GetIndex", + "s3vectors:DeleteIndex" + ] + }, + "list": { + "permissions": [ + "s3vectors:ListIndexes" + ], + "handlerSchema": { + "properties": { + "VectorBucketArn": { + "$ref": "resource-schema.json#/properties/VectorBucketArn" + }, + "VectorBucketName": { + "$ref": "resource-schema.json#/properties/VectorBucketName" + } + }, + "oneOf": [ + { + "required": [ + "VectorBucketName" + ] + }, + { + "required": [ + "VectorBucketArn" + ] + } + ] + } + } + }, + "attributes": { + "CreationTime": { + "$ref": "#/definitions/CreationTime" + }, + "IndexArn": { + "$ref": "#/definitions/IndexArn" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3vectors-vectorbucket.json b/server/schema/resources/aws-s3vectors-vectorbucket.json new file mode 100644 index 00000000..fcc10e8f --- /dev/null +++ b/server/schema/resources/aws-s3vectors-vectorbucket.json @@ -0,0 +1,172 @@ +{ + "typeName": "AWS::S3Vectors::VectorBucket", + "description": "Resource Type definition for AWS::S3Vectors::VectorBucket", + "definitions": { + "VectorBucketName": { + "description": "The name of the vector bucket.", + "type": "string", + "minLength": 3, + "maxLength": 63, + "markdownDescription": "The name of the vector bucket.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + }, + "VectorBucketArn": { + "description": "The Amazon Resource Name (ARN) of the vector bucket.", + "type": "string", + "examples": [ + "arn:aws:s3vectors:us-east-1:123456789012:bucket/myvectorbucket" + ], + "markdownDescription": "The Amazon Resource Name (ARN) of the vector bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CreationTime": { + "description": "Date and time when the vector bucket was created.", + "type": "string", + "format": "date-time", + "markdownDescription": "Date and time when the vector bucket was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "EncryptionConfiguration": { + "type": "object", + "description": "The encryption configuration for the vector bucket.", + "properties": { + "SseType": { + "type": "string", + "description": "The server-side encryption type to use for the encryption configuration of the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), specifically AES256.", + "enum": [ + "AES256", + "aws:kms" + ], + "default": "AES256", + "markdownDescription": "The server-side encryption type to use for the encryption configuration of the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), specifically AES256.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AES256 | aws:kms \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "type": "string", + "description": "AWS Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if sseType is set to aws:kms", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "AWS Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if sseType is set to aws:kms\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^(arn:aws[-a-z0-9]*:kms:[-a-z0-9]*:[0-9]{12}:key/.+)$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The encryption configuration for the vector bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "description": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "Tag key must be between 1 to 128 characters in length. Tag key cannot start with 'aws:' and can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.", + "type": "string", + "maxLength": 256, + "markdownDescription": "Tag value must be between 0 to 256 characters in length. Tag value can only contain alphanumeric characters, spaces, _, ., /, =, +, -, and @.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "VectorBucketName": { + "$ref": "#/definitions/VectorBucketName" + }, + "VectorBucketArn": { + "$ref": "#/definitions/VectorBucketArn" + }, + "CreationTime": { + "$ref": "#/definitions/CreationTime" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "Tags": { + "description": "User tags (key-value pairs) to associate with the vector bucket.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "User tags (key-value pairs) to associate with the vector bucket.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "readOnlyProperties": [ + "/properties/VectorBucketArn", + "/properties/CreationTime" + ], + "createOnlyProperties": [ + "/properties/VectorBucketName", + "/properties/EncryptionConfiguration" + ], + "primaryIdentifier": [ + "/properties/VectorBucketArn" + ], + "additionalIdentifiers": [ + [ + "/properties/VectorBucketName" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "s3vectors:TagResource", + "s3vectors:UntagResource", + "s3vectors:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "s3vectors:GetVectorBucket", + "s3vectors:CreateVectorBucket", + "s3vectors:TagResource", + "kms:GenerateDataKey" + ] + }, + "read": { + "permissions": [ + "s3vectors:GetVectorBucket", + "s3vectors:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "s3vectors:GetVectorBucket", + "s3vectors:DeleteVectorBucket" + ] + }, + "update": { + "permissions": [ + "s3vectors:GetVectorBucket", + "s3vectors:TagResource", + "s3vectors:UntagResource", + "s3vectors:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "s3vectors:ListVectorBuckets" + ] + } + }, + "attributes": { + "VectorBucketArn": { + "$ref": "#/definitions/VectorBucketArn" + }, + "CreationTime": { + "$ref": "#/definitions/CreationTime" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3vectors-vectorbucketpolicy.json b/server/schema/resources/aws-s3vectors-vectorbucketpolicy.json new file mode 100644 index 00000000..ecbed7e0 --- /dev/null +++ b/server/schema/resources/aws-s3vectors-vectorbucketpolicy.json @@ -0,0 +1,109 @@ +{ + "typeName": "AWS::S3Vectors::VectorBucketPolicy", + "description": "Resource Type definition for AWS::S3Vectors::VectorBucketPolicy", + "definitions": { + "Policy": { + "description": "A policy document containing permissions to add to the specified vector bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.", + "type": [ + "object", + "string" + ], + "markdownDescription": "A policy document containing permissions to add to the specified vector bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" + }, + "VectorBucketArn": { + "description": "The Amazon Resource Name (ARN) of the vector bucket.", + "type": "string", + "examples": [ + "arn:aws:s3vectors:us-east-1:123456789012:bucket/myvectorbucket" + ], + "markdownDescription": "The Amazon Resource Name (ARN) of the vector bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VectorBucketName": { + "description": "The name of the vector bucket", + "type": "string", + "minLength": 3, + "maxLength": 63, + "markdownDescription": "The name of the vector bucket\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Policy": { + "$ref": "#/definitions/Policy" + }, + "VectorBucketArn": { + "$ref": "#/definitions/VectorBucketArn" + }, + "VectorBucketName": { + "$ref": "#/definitions/VectorBucketName" + } + }, + "additionalProperties": false, + "required": [ + "Policy" + ], + "oneOf": [ + { + "required": [ + "VectorBucketName" + ] + }, + { + "required": [ + "VectorBucketArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/VectorBucketArn" + ], + "additionalIdentifiers": [ + [ + "/properties/VectorBucketName" + ] + ], + "writeOnlyProperties": [ + "/properties/VectorBucketName" + ], + "createOnlyProperties": [ + "/properties/VectorBucketArn", + "/properties/VectorBucketName" + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "s3vectors:GetVectorBucketPolicy", + "s3vectors:PutVectorBucketPolicy" + ] + }, + "read": { + "permissions": [ + "s3vectors:GetVectorBucketPolicy" + ] + }, + "update": { + "permissions": [ + "s3vectors:GetVectorBucketPolicy", + "s3vectors:PutVectorBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "s3vectors:GetVectorBucketPolicy", + "s3vectors:DeleteVectorBucketPolicy" + ] + }, + "list": { + "permissions": [ + "s3vectors:GetVectorBucketPolicy", + "s3vectors:ListVectorBuckets" + ] + } + }, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-sagemaker-app.json b/server/schema/resources/aws-sagemaker-app.json index a9e48e25..89be7bc3 100644 --- a/server/schema/resources/aws-sagemaker-app.json +++ b/server/schema/resources/aws-sagemaker-app.json @@ -95,6 +95,14 @@ "ml.m5.12xlarge", "ml.m5.16xlarge", "ml.m5.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.c5.large", "ml.c5.xlarge", "ml.c5.2xlarge", @@ -106,6 +114,7 @@ "ml.p3.2xlarge", "ml.p3.8xlarge", "ml.p3.16xlarge", + "ml.p3dn.24xlarge", "ml.g4dn.xlarge", "ml.g4dn.2xlarge", "ml.g4dn.4xlarge", @@ -120,15 +129,6 @@ "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", @@ -137,14 +137,114 @@ "ml.g5.16xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", + "ml.g6.xlarge", + "ml.g6.2xlarge", + "ml.g6.4xlarge", + "ml.g6.8xlarge", + "ml.g6.12xlarge", + "ml.g6.16xlarge", + "ml.g6.24xlarge", + "ml.g6.48xlarge", + "ml.g6e.xlarge", + "ml.g6e.2xlarge", + "ml.g6e.4xlarge", + "ml.g6e.8xlarge", + "ml.g6e.12xlarge", + "ml.g6e.16xlarge", + "ml.g6e.24xlarge", + "ml.g6e.48xlarge", + "ml.geospatial.interactive", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive", "ml.trn1.2xlarge", "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" + "ml.trn1n.32xlarge", + "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", + "ml.m6i.large", + "ml.m6i.xlarge", + "ml.m6i.2xlarge", + "ml.m6i.4xlarge", + "ml.m6i.8xlarge", + "ml.m6i.12xlarge", + "ml.m6i.16xlarge", + "ml.m6i.24xlarge", + "ml.m6i.32xlarge", + "ml.m7i.large", + "ml.m7i.xlarge", + "ml.m7i.2xlarge", + "ml.m7i.4xlarge", + "ml.m7i.8xlarge", + "ml.m7i.12xlarge", + "ml.m7i.16xlarge", + "ml.m7i.24xlarge", + "ml.m7i.48xlarge", + "ml.c6i.large", + "ml.c6i.xlarge", + "ml.c6i.2xlarge", + "ml.c6i.4xlarge", + "ml.c6i.8xlarge", + "ml.c6i.12xlarge", + "ml.c6i.16xlarge", + "ml.c6i.24xlarge", + "ml.c6i.32xlarge", + "ml.c7i.large", + "ml.c7i.xlarge", + "ml.c7i.2xlarge", + "ml.c7i.4xlarge", + "ml.c7i.8xlarge", + "ml.c7i.12xlarge", + "ml.c7i.16xlarge", + "ml.c7i.24xlarge", + "ml.c7i.48xlarge", + "ml.r6i.large", + "ml.r6i.xlarge", + "ml.r6i.2xlarge", + "ml.r6i.4xlarge", + "ml.r6i.8xlarge", + "ml.r6i.12xlarge", + "ml.r6i.16xlarge", + "ml.r6i.24xlarge", + "ml.r6i.32xlarge", + "ml.r7i.large", + "ml.r7i.xlarge", + "ml.r7i.2xlarge", + "ml.r7i.4xlarge", + "ml.r7i.8xlarge", + "ml.r7i.12xlarge", + "ml.r7i.16xlarge", + "ml.r7i.24xlarge", + "ml.r7i.48xlarge", + "ml.m6id.large", + "ml.m6id.xlarge", + "ml.m6id.2xlarge", + "ml.m6id.4xlarge", + "ml.m6id.8xlarge", + "ml.m6id.12xlarge", + "ml.m6id.16xlarge", + "ml.m6id.24xlarge", + "ml.m6id.32xlarge", + "ml.c6id.large", + "ml.c6id.xlarge", + "ml.c6id.2xlarge", + "ml.c6id.4xlarge", + "ml.c6id.8xlarge", + "ml.c6id.12xlarge", + "ml.c6id.16xlarge", + "ml.c6id.24xlarge", + "ml.c6id.32xlarge", + "ml.r6id.large", + "ml.r6id.xlarge", + "ml.r6id.2xlarge", + "ml.r6id.4xlarge", + "ml.r6id.8xlarge", + "ml.r6id.12xlarge", + "ml.r6id.16xlarge", + "ml.r6id.24xlarge", + "ml.r6id.32xlarge" ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p3dn.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.geospatial.interactive | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge \nUpdate requires: No interruption\n" + "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.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.p3dn.24xlarge | 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.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" }, "SageMakerImageArn": { "type": "string", diff --git a/server/schema/resources/aws-sagemaker-cluster.json b/server/schema/resources/aws-sagemaker-cluster.json index 75e07f54..25e54bc8 100644 --- a/server/schema/resources/aws-sagemaker-cluster.json +++ b/server/schema/resources/aws-sagemaker-cluster.json @@ -103,7 +103,7 @@ "createOnlyProperties": [ "/properties/ClusterName", "/properties/VpcConfig", - "/properties/Orchestrator", + "/properties/Orchestrator/Eks", "/properties/InstanceGroups/*/OverrideVpcConfig", "/properties/InstanceGroups/*/ExecutionRole", "/properties/InstanceGroups/*/InstanceGroupName", @@ -181,12 +181,42 @@ "$ref": "#/definitions/ClusterEbsVolumeConfig" } } + }, + { + "additionalProperties": false, + "type": "object", + "properties": { + "FsxLustreConfig": { + "$ref": "#/definitions/ClusterFsxLustreConfig" + } + } + }, + { + "additionalProperties": false, + "type": "object", + "properties": { + "FsxOpenZfsConfig": { + "$ref": "#/definitions/ClusterFsxOpenZfsConfig" + } + } } ], "description": "Defines the configuration for attaching additional storage to the instances in the SageMaker HyperPod cluster instance group.", "type": "object", "markdownDescription": "Defines the configuration for attaching additional storage to the instances in the SageMaker HyperPod cluster instance group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ClusterKubernetesLabels": { + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "description": "A map of Kubernetes labels to apply to cluster nodes.", + "additionalProperties": false, + "type": "object", + "markdownDescription": "A map of Kubernetes labels to apply to cluster nodes.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "VpcConfig": { "description": "Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC.", "additionalProperties": false, @@ -225,6 +255,38 @@ ], "markdownDescription": "Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ClusterKubernetesTaint": { + "description": "A Kubernetes taint to apply to cluster nodes.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The value of the taint.", + "type": "string", + "markdownDescription": "The value of the taint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Effect": { + "description": "The effect of the taint.", + "type": "string", + "enum": [ + "NoSchedule", + "PreferNoSchedule", + "NoExecute" + ], + "markdownDescription": "The effect of the taint.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NoSchedule | PreferNoSchedule | NoExecute \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "The key of the taint.", + "type": "string", + "markdownDescription": "The key of the taint.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Effect" + ], + "markdownDescription": "A Kubernetes taint to apply to cluster nodes.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ClusterRestrictedInstanceGroup": { "description": "Details of a restricted instance group in a SageMaker HyperPod cluster.", "additionalProperties": false, @@ -296,6 +358,20 @@ }, "markdownDescription": "An array that contains the alarms that SageMaker monitors to know whether to roll back the AMI update.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "ClusterCapacityRequirements": { + "description": "Specifies the capacity requirements configuration for an instance group", + "additionalProperties": false, + "type": "object", + "properties": { + "Spot": { + "$ref": "#/definitions/ClusterSpotOptions" + }, + "OnDemand": { + "$ref": "#/definitions/ClusterOnDemandOptions" + } + }, + "markdownDescription": "Specifies the capacity requirements configuration for an instance group\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ImageId": { "minLength": 7, "description": "AMI Id to be used for launching EC2 instances - HyperPodPublicAmiId or CustomAmiId", @@ -303,6 +379,12 @@ "maxLength": 21, "markdownDescription": "AMI Id to be used for launching EC2 instances - HyperPodPublicAmiId or CustomAmiId\n\n---\n\nRequired: No \nType: String \nMinimum Length: 7 \nMaximum Length: 21 \nPattern: ^ami-[0-9a-fA-F]{8,17}|default$ \nUpdate requires: No interruption\n" }, + "ClusterSpotOptions": { + "description": "Options for Spot capacity", + "additionalProperties": false, + "type": "object", + "markdownDescription": "Options for Spot capacity\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CapacitySizeConfig": { "description": "The configuration of the size measurements of the AMI update. Using this configuration, you can specify whether SageMaker should update your instance group by an amount or percentage of instances.", "additionalProperties": false, @@ -326,11 +408,62 @@ ], "markdownDescription": "The configuration of the size measurements of the AMI update. Using this configuration, you can specify whether SageMaker should update your instance group by an amount or percentage of instances.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ClusterFsxLustreConfig": { + "description": "Configuration for mounting an Amazon FSx Lustre file system to the instances in the SageMaker HyperPod cluster instance group.", + "additionalProperties": false, + "type": "object", + "properties": { + "MountPath": { + "minLength": 1, + "description": "The mount path for the FSx for Lustre file system.", + "type": "string", + "maxLength": 1024, + "markdownDescription": "The mount path for the FSx for Lustre file system.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^/(?!/)(?!.*/$)[a-zA-Z0-9._-]+(/[a-zA-Z0-9._-]+)*$ \nUpdate requires: No interruption\n" + }, + "DnsName": { + "minLength": 16, + "description": "The DNS name of the FSx for Lustre file system.", + "type": "string", + "maxLength": 275, + "markdownDescription": "The DNS name of the FSx for Lustre file system.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 16 \nMaximum Length: 275 \nPattern: ^((fs|fc)i?-[0-9a-f]{8,}\\..{4,253})$ \nUpdate requires: No interruption\n" + }, + "MountName": { + "minLength": 1, + "description": "The mount name of the FSx for Lustre file system.", + "type": "string", + "maxLength": 8, + "markdownDescription": "The mount name of the FSx for Lustre file system.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 8 \nPattern: ^([A-Za-z0-9_-]{1,8})$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DnsName", + "MountName" + ], + "markdownDescription": "Configuration for mounting an Amazon FSx Lustre file system to the instances in the SageMaker HyperPod cluster instance group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "InstanceType": { "description": "The instance type of the instance group of a SageMaker HyperPod cluster.", "type": "string", "markdownDescription": "The instance type of the instance group of a SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "ClusterOrchestratorSlurmConfig": { + "description": "Specifies parameter(s) related to Slurm as orchestrator.", + "additionalProperties": false, + "type": "object", + "properties": { + "SlurmConfigStrategy": { + "description": "The strategy for managing Slurm configuration on the cluster.", + "type": "string", + "enum": [ + "Overwrite", + "Managed", + "Merge" + ], + "markdownDescription": "The strategy for managing Slurm configuration on the cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Overwrite | Managed | Merge \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Specifies parameter(s) related to Slurm as orchestrator.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ExecutionRole": { "minLength": 20, "description": "The execution role for the instance group to assume.", @@ -347,6 +480,42 @@ ], "markdownDescription": "The type of deep health check(s) to be performed on the instances in the SageMaker HyperPod cluster instance group.\n\n---\n\nRequired: No \nType: String \nAllowed Values: InstanceStress | InstanceConnectivity \nUpdate requires: No interruption\n" }, + "ClusterSlurmConfig": { + "description": "Slurm configuration for the instance group.", + "additionalProperties": false, + "type": "object", + "properties": { + "PartitionNames": { + "minItems": 0, + "maxItems": 1, + "description": "The Slurm partitions that this instance group belongs to. Maximum of 1 partition.", + "insertionOrder": false, + "type": "array", + "items": { + "minLength": 0, + "description": "The name of a Slurm partition.", + "type": "string", + "maxLength": 1024, + "markdownDescription": "The name of a Slurm partition.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9])*$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The Slurm partitions that this instance group belongs to. Maximum of 1 partition.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NodeType": { + "description": "The type of Slurm node for this instance group.", + "type": "string", + "enum": [ + "Controller", + "Login", + "Compute" + ], + "markdownDescription": "The type of Slurm node for this instance group.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Controller | Login | Compute \nUpdate requires: No interruption\n" + } + }, + "required": [ + "NodeType" + ], + "markdownDescription": "Slurm configuration for the instance group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "EnvironmentConfig": { "description": "The configuration for the restricted instance groups (RIG) environment.", "additionalProperties": false, @@ -365,6 +534,12 @@ "maxLength": 63, "markdownDescription": "The name of the instance group of a SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 63 \nPattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9])*$ \nUpdate requires: No interruption\n" }, + "ClusterOnDemandOptions": { + "description": "Options for OnDemand capacity", + "additionalProperties": false, + "type": "object", + "markdownDescription": "Options for OnDemand capacity\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ClusterInstanceGroupsList": { "minItems": 1, "description": "The instance groups of the SageMaker HyperPod cluster.", @@ -385,19 +560,44 @@ }, "markdownDescription": "The restricted instance groups of the SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\nRead only property: Yes" }, - "Orchestrator": { - "description": "Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.", + "ClusterKubernetesConfig": { + "description": "Kubernetes configuration for cluster nodes including labels and taints.", "additionalProperties": false, "type": "object", "properties": { - "Eks": { - "$ref": "#/definitions/ClusterOrchestratorEksConfig" + "Labels": { + "$ref": "#/definitions/ClusterKubernetesLabels" + }, + "Taints": { + "$ref": "#/definitions/ClusterKubernetesTaints" } }, - "required": [ - "Eks" + "markdownDescription": "Kubernetes configuration for cluster nodes including labels and taints.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Orchestrator": { + "oneOf": [ + { + "additionalProperties": false, + "type": "object", + "properties": { + "Eks": { + "$ref": "#/definitions/ClusterOrchestratorEksConfig" + } + } + }, + { + "additionalProperties": false, + "type": "object", + "properties": { + "Slurm": { + "$ref": "#/definitions/ClusterOrchestratorSlurmConfig" + } + } + } ], - "markdownDescription": "Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster or Slurm configuration.", + "type": "object", + "markdownDescription": "Specifies parameter(s) specific to the orchestrator, e.g. specify the EKS cluster or Slurm configuration.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" }, "ClusterEbsVolumeConfig": { "description": "Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group. The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.", @@ -425,29 +625,32 @@ "markdownDescription": "Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group. The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ClusterLifeCycleConfig": { - "description": "The lifecycle configuration for a SageMaker HyperPod cluster.", + "description": "The lifecycle configuration for a SageMaker HyperPod cluster. When omitted, the instance group uses Bootstrap mode. When provided with SourceS3Uri and OnCreate, uses Customer Managed mode. When provided with SourceS3Uri and OnInitComplete, uses Extended mode.", "additionalProperties": false, "type": "object", "properties": { + "OnInitComplete": { + "minLength": 1, + "description": "The file name of the extension script under SourceS3Uri. This script runs after HyperPod configures the default software on the instance. Mutually exclusive with OnCreate.", + "type": "string", + "maxLength": 128, + "markdownDescription": "The file name of the extension script under SourceS3Uri. This script runs after HyperPod configures the default software on the instance. Mutually exclusive with OnCreate.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\S\\s]+$ \nUpdate requires: No interruption\n" + }, "SourceS3Uri": { "description": "An Amazon S3 bucket path where your lifecycle scripts are stored.", "type": "string", "maxLength": 1024, - "markdownDescription": "An Amazon S3 bucket path where your lifecycle scripts are stored.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1024 \nPattern: ^(https|s3)://([^/]+)/?(.*)$ \nUpdate requires: No interruption\n" + "markdownDescription": "An Amazon S3 bucket path where your lifecycle scripts are stored.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nPattern: ^(https|s3)://([^/]+)/?(.*)$ \nUpdate requires: No interruption\n" }, "OnCreate": { "minLength": 1, - "description": "The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation.", + "description": "The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation. Mutually exclusive with OnInitComplete.", "type": "string", "maxLength": 128, - "markdownDescription": "The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\S\\s]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation. Mutually exclusive with OnInitComplete.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^[\\S\\s]+$ \nUpdate requires: No interruption\n" } }, - "required": [ - "OnCreate", - "SourceS3Uri" - ], - "markdownDescription": "The lifecycle configuration for a SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The lifecycle configuration for a SageMaker HyperPod cluster. When omitted, the instance group uses Bootstrap mode. When provided with SourceS3Uri and OnCreate, uses Customer Managed mode. When provided with SourceS3Uri and OnInitComplete, uses Extended mode.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "OnStartDeepHealthChecks": { "description": "Nodes will undergo advanced stress test to detect and replace faulty instances, based on the type of deep health check(s) passed in.", @@ -458,17 +661,61 @@ }, "markdownDescription": "Nodes will undergo advanced stress test to detect and replace faulty instances, based on the type of deep health check(s) passed in.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "ClusterFsxOpenZfsConfig": { + "description": "Configuration for mounting an Amazon FSx OpenZFS file system to the instances in the SageMaker HyperPod cluster instance group.", + "additionalProperties": false, + "type": "object", + "properties": { + "MountPath": { + "minLength": 1, + "description": "The mount path for the FSx for OpenZFS file system.", + "type": "string", + "maxLength": 1024, + "markdownDescription": "The mount path for the FSx for OpenZFS file system.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^/(?!/)(?!.*/$)[a-zA-Z0-9._-]+(/[a-zA-Z0-9._-]+)*$ \nUpdate requires: No interruption\n" + }, + "DnsName": { + "minLength": 16, + "description": "The DNS name of the FSx for OpenZFS file system.", + "type": "string", + "maxLength": 275, + "markdownDescription": "The DNS name of the FSx for OpenZFS file system.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 16 \nMaximum Length: 275 \nPattern: ^((fs|fc)i?-[0-9a-f]{8,}\\..{4,253})$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DnsName" + ], + "markdownDescription": "Configuration for mounting an Amazon FSx OpenZFS file system to the instances in the SageMaker HyperPod cluster instance group.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ClusterKubernetesTaints": { + "maxItems": 50, + "description": "A list of Kubernetes taints to apply to cluster nodes. Maximum of 50 taints.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ClusterKubernetesTaint" + }, + "markdownDescription": "A list of Kubernetes taints to apply to cluster nodes. Maximum of 50 taints.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "ClusterInstanceGroup": { "description": "Details of an instance group in a SageMaker HyperPod cluster.", "additionalProperties": false, "type": "object", "properties": { + "SlurmConfig": { + "$ref": "#/definitions/ClusterSlurmConfig" + }, + "CapacityRequirements": { + "$ref": "#/definitions/ClusterCapacityRequirements" + }, "InstanceGroupName": { "$ref": "#/definitions/InstanceGroupName" }, "InstanceStorageConfigs": { "$ref": "#/definitions/ClusterInstanceStorageConfigs" }, + "KubernetesConfig": { + "$ref": "#/definitions/ClusterKubernetesConfig" + }, "LifeCycleConfig": { "$ref": "#/definitions/ClusterLifeCycleConfig" }, @@ -515,14 +762,19 @@ }, "ExecutionRole": { "$ref": "#/definitions/ExecutionRole" + }, + "MinInstanceCount": { + "description": "The minimum number of instances required for the instance group to be InService. MinInstanceCount must be less than or equal to InstanceCount.", + "type": "integer", + "minimum": 0, + "markdownDescription": "The minimum number of instances required for the instance group to be InService. MinInstanceCount must be less than or equal to InstanceCount.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "required": [ "ExecutionRole", "InstanceCount", "InstanceGroupName", - "InstanceType", - "LifeCycleConfig" + "InstanceType" ], "markdownDescription": "Details of an instance group in a SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, @@ -577,7 +829,7 @@ "markdownDescription": "The configuration object of the schedule that SageMaker follows when updating the AMI.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ClusterInstanceStorageConfigs": { - "maxItems": 1, + "maxItems": 4, "description": "The instance storage configuration for the instance group.", "insertionOrder": false, "type": "array", @@ -633,6 +885,31 @@ }, "markdownDescription": "The configuration to use when updating the AMI versions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TieredStorageConfig": { + "description": "Configuration for tiered storage in the SageMaker HyperPod cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "Mode": { + "description": "The mode of tiered storage.", + "type": "string", + "enum": [ + "Enable", + "Disable" + ], + "markdownDescription": "The mode of tiered storage.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Enable | Disable \nUpdate requires: No interruption\n" + }, + "InstanceMemoryAllocationPercentage": { + "description": "The percentage of instance memory to allocate for tiered storage.", + "type": "integer", + "markdownDescription": "The percentage of instance memory to allocate for tiered storage.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mode" + ], + "markdownDescription": "Configuration for tiered storage in the SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "FSxLustreConfig": { "description": "Configuration settings for an Amazon FSx for Lustre file system to be used with the cluster.", "additionalProperties": false, @@ -748,6 +1025,9 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "Custom tags for managing the SageMaker HyperPod cluster as an AWS resource. You can add tags to your cluster in the same way you add them in other AWS services that support tagging.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TieredStorageConfig": { + "$ref": "#/definitions/TieredStorageConfig" } }, "attributes": { diff --git a/server/schema/resources/aws-sagemaker-domain.json b/server/schema/resources/aws-sagemaker-domain.json index 11f56f38..b838f0d1 100644 --- a/server/schema/resources/aws-sagemaker-domain.json +++ b/server/schema/resources/aws-sagemaker-domain.json @@ -79,13 +79,13 @@ "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "A list of tags to apply to the user profile.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "A list of tags to apply to the user profile.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "VpcId": { "type": "string", "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", "maxLength": 32, - "markdownDescription": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 32 \nPattern: [-0-9a-zA-Z]+ \nUpdate requires: Replacement\n" + "markdownDescription": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 32 \nPattern: [-0-9a-zA-Z]+ \nUpdate requires: Some interruptions\n" }, "DomainId": { "type": "string", @@ -336,74 +336,7 @@ "additionalProperties": false, "properties": { "InstanceType": { - "type": "string", - "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", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p3dn.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.geospatial.interactive | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge \nUpdate requires: No interruption\n" + "$ref": "#/definitions/AppInstanceType" }, "SageMakerImageArn": { "type": "string", @@ -875,7 +808,7 @@ "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", "uniqueItems": false, "insertionOrder": false, - "minItems": 1, + "minItems": 0, "maxItems": 3, "items": { "type": "string", @@ -901,6 +834,9 @@ }, "UnifiedStudioSettings": { "$ref": "#/definitions/UnifiedStudioSettings" + }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType" } }, "markdownDescription": "A collection of Domain settings.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" @@ -992,6 +928,15 @@ }, "markdownDescription": "A collection of settings that apply to an Amazon SageMaker AI domain when you use it in Amazon SageMaker Unified Studio.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "IpAddressType": { + "type": "string", + "description": "A setting to indicate if IPv6 routing should be enabled along with IPv4 or not", + "enum": [ + "IPV4", + "DUALSTACK" + ], + "markdownDescription": "A setting to indicate if IPv6 routing should be enabled along with IPv4 or not\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUALSTACK \nUpdate requires: No interruption\n" + }, "RStudioServerProDomainSettings": { "type": "object", "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", @@ -1248,6 +1193,8 @@ "ml.trn1.32xlarge", "ml.trn1n.32xlarge", "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", "ml.m6i.large", "ml.m6i.xlarge", "ml.m6i.2xlarge", @@ -1330,7 +1277,7 @@ "ml.r6id.24xlarge", "ml.r6id.32xlarge" ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.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.p3dn.24xlarge | 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.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" + "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.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.p3dn.24xlarge | 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.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" }, "HiddenSageMakerImage": { "type": "object", @@ -1370,12 +1317,10 @@ "/properties/AuthMode", "/properties/DomainName", "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" + "/properties/KmsKeyId" ], - "writeOnlyProperties": [ - "/properties/Tags" + "conditionalCreateOnlyProperties": [ + "/properties/VpcId" ], "primaryIdentifier": [ "/properties/DomainId" @@ -1389,6 +1334,18 @@ "/properties/SingleSignOnManagedApplicationInstanceId", "/properties/SingleSignOnApplicationArn" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ] + }, "handlers": { "create": { "permissions": [ @@ -1403,12 +1360,20 @@ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlainText" + "kms:GenerateDataKeyWithoutPlainText", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "sagemaker:ListTags" ] }, "read": { "permissions": [ - "sagemaker:DescribeDomain" + "sagemaker:DescribeDomain", + "sagemaker:DescribeApp", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "sagemaker:ListTags" ] }, "update": { @@ -1418,19 +1383,29 @@ "sagemaker:DescribeDomain", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", - "iam:PassRole" + "iam:PassRole", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "sagemaker:ListTags" ] }, "delete": { "permissions": [ "sagemaker:DeleteApp", "sagemaker:DeleteDomain", - "sagemaker:DescribeDomain" + "sagemaker:DescribeDomain", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "sagemaker:ListTags", + "efs:DescribeMountTargets", + "efs:DeleteMountTarget", + "efs:DeleteFileSystem" ] }, "list": { "permissions": [ - "sagemaker:ListDomains" + "sagemaker:ListDomains", + "sagemaker:ListTags" ] } }, diff --git a/server/schema/resources/aws-sagemaker-image.json b/server/schema/resources/aws-sagemaker-image.json index 1ba52b72..f30783e6 100644 --- a/server/schema/resources/aws-sagemaker-image.json +++ b/server/schema/resources/aws-sagemaker-image.json @@ -150,7 +150,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagProperty": "/properties/Tags", "permissions": [ "sagemaker:AddTags", diff --git a/server/schema/resources/aws-sagemaker-inferencecomponent.json b/server/schema/resources/aws-sagemaker-inferencecomponent.json index 56717bb1..13819989 100644 --- a/server/schema/resources/aws-sagemaker-inferencecomponent.json +++ b/server/schema/resources/aws-sagemaker-inferencecomponent.json @@ -456,7 +456,8 @@ "sagemaker:AddTags", "sagemaker:ListTags", "sagemaker:DeleteTags" - ] + ], + "timeoutInMinutes": 490 }, "delete": { "permissions": [ diff --git a/server/schema/resources/aws-sagemaker-inferenceexperiment.json b/server/schema/resources/aws-sagemaker-inferenceexperiment.json index 7388e749..95febb50 100644 --- a/server/schema/resources/aws-sagemaker-inferenceexperiment.json +++ b/server/schema/resources/aws-sagemaker-inferenceexperiment.json @@ -407,7 +407,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "sagemaker:ListTags" + ] }, "handlers": { "create": { @@ -457,6 +462,11 @@ "/properties/EndpointMetadata", "/properties/Status" ], + "writeOnlyProperties": [ + "/properties/StatusReason", + "/properties/DesiredState", + "/properties/Schedule" + ], "createOnlyProperties": [ "/properties/Name", "/properties/Type", diff --git a/server/schema/resources/aws-sagemaker-model.json b/server/schema/resources/aws-sagemaker-model.json index 75ef9a55..642d28db 100644 --- a/server/schema/resources/aws-sagemaker-model.json +++ b/server/schema/resources/aws-sagemaker-model.json @@ -1,212 +1,227 @@ { "typeName": "AWS::SageMaker::Model", - "description": "Resource Type definition for AWS::SageMaker::Model", - "additionalProperties": false, - "properties": { - "ExecutionRoleArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "EnableNetworkIsolation": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" - }, - "PrimaryContainer": { - "$ref": "#/definitions/ContainerDefinition" - }, - "ModelName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "VpcConfig": { - "$ref": "#/definitions/VpcConfig" - }, - "Containers": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/ContainerDefinition" + "description": "Resource type definition for AWS::SageMaker::Model", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sagemaker", + "definitions": { + "ContainerDefinition": { + "type": "object", + "description": "Describes the container, as part of model definition.", + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string", + "description": "This parameter is ignored for models that contain only a PrimaryContainer.\n\nWhen a ContainerDefinition is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics. For information, see [Use Logs and Metrics to Monitor an Inference Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html). If you don't specify a value for this parameter for a ContainerDefinition that is part of an inference pipeline, a unique name is automatically assigned based on the position of the ContainerDefinition in the pipeline. If you specify a value for the ContainerHostName for any ContainerDefinition that is part of an inference pipeline, you must specify a value for the ContainerHostName parameter of every ContainerDefinition in that pipeline.", + "markdownDescription": "This parameter is ignored for models that contain only a PrimaryContainer.\n\nWhen a ContainerDefinition is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics. For information, see [Use Logs and Metrics to Monitor an Inference Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html). If you don't specify a value for this parameter for a ContainerDefinition that is part of an inference pipeline, a unique name is automatically assigned based on the position of the ContainerDefinition in the pipeline. If you specify a value for the ContainerHostName for any ContainerDefinition that is part of an inference pipeline, you must specify a value for the ContainerHostName parameter of every ContainerDefinition in that pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Environment": { + "type": "object", + "description": "The environment variables to set in the Docker container. Don't include any sensitive data in your environment variables.\n\nThe maximum length of each key and value in the Environment map is 1024 bytes. The maximum length of all keys and values in the map, combined, is 32 KB. If you pass multiple containers to a CreateModel request, then the maximum length of all of their maps, combined, is also 32 KB.", + "markdownDescription": "The environment variables to set in the Docker container. Don't include any sensitive data in your environment variables.\n\nThe maximum length of each key and value in the Environment map is 1024 bytes. The maximum length of all keys and values in the map, combined, is 32 KB. If you pass multiple containers to a CreateModel request, then the maximum length of all of their maps, combined, is also 32 KB.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Image": { + "type": "string", + "description": "The path where inference code is stored. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements. SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see [Using Your Own Algorithms with Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).", + "markdownDescription": "The path where inference code is stored. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements. SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see [Using Your Own Algorithms with Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string", + "description": "The inference specification name in the model package version.", + "markdownDescription": "The inference specification name in the model package version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Mode": { + "type": "string", + "description": "Whether the container hosts a single model or multiple models.", + "enum": [ + "SingleModel", + "MultiModel" + ], + "markdownDescription": "Whether the container hosts a single model or multiple models.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SingleModel | MultiModel \nUpdate requires: No interruption\n" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string", + "description": "The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see [Common Parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).\n\nIf you provide a value for this parameter, SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provide. AWS STS is activated in your AWS account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see [Activating and Deactivating AWS STS in an AWS Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) in the AWS Identity and Access Management User Guide", + "markdownDescription": "The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see [Common Parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).\n\nIf you provide a value for this parameter, SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provide. AWS STS is activated in your AWS account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see [Activating and Deactivating AWS STS in an AWS Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) in the AWS Identity and Access Management User Guide\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ModelPackageName": { + "type": "string", + "description": "The name or Amazon Resource Name (ARN) of the model package to use to create the model.", + "markdownDescription": "The name or Amazon Resource Name (ARN) of the model package to use to create the model.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" - }, - "InferenceExecutionConfig": { - "$ref": "#/definitions/InferenceExecutionConfig" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Describes the container, as part of model definition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" + "HubAccessConfig": { + "type": "object", + "description": "Configuration information specifying which hub contents have accessible deployment options.", + "additionalProperties": false, + "properties": { + "HubContentArn": { + "type": "string", + "description": "The ARN of the hub content for which deployment access is allowed.", + "markdownDescription": "The ARN of the hub content for which deployment access is allowed.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "definitions": { + "required": [ + "HubContentArn" + ], + "markdownDescription": "Configuration information specifying which hub contents have accessible deployment options.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ImageConfig": { "type": "object", + "description": "Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC).", "additionalProperties": false, "properties": { - "RepositoryAuthConfig": { - "$ref": "#/definitions/RepositoryAuthConfig" - }, "RepositoryAccessMode": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "Set this to one of the following values: Platform - The model image is hosted in Amazon ECR. Vpc - The model image is hosted in a private Docker registry in your VPC.", + "enum": [ + "Platform", + "Vpc" + ], + "markdownDescription": "Set this to one of the following values: Platform - The model image is hosted in Amazon ECR. Vpc - The model image is hosted in a private Docker registry in your VPC.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Platform | Vpc \nUpdate requires: No interruption\n" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" } }, "required": [ "RepositoryAccessMode" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InferenceExecutionConfig": { + "type": "object", + "description": "Specifies details about how containers in a multi-container endpoint are run.", + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string", + "description": "How containers in a multi-container are run.", + "enum": [ + "Serial", + "Direct" + ], + "markdownDescription": "How containers in a multi-container are run.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Serial | Direct \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mode" + ], + "markdownDescription": "Specifies details about how containers in a multi-container endpoint are run.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ModelAccessConfig": { "type": "object", + "description": "The access configuration file to control access to the ML model. You can explicitly accept the model end-user license agreement (EULA) within the `ModelAccessConfig`.", "additionalProperties": false, "properties": { "AcceptEula": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Specifies agreement to the model end-user license agreement (EULA). The `AcceptEula` value must be explicitly defined as `True` in order to accept the EULA that this model requires. You are responsible for reviewing and complying with any applicable license terms and making sure they are acceptable for your use case before downloading or using a model.", + "markdownDescription": "Specifies agreement to the model end-user license agreement (EULA). The `AcceptEula` value must be explicitly defined as `True` in order to accept the EULA that this model requires. You are responsible for reviewing and complying with any applicable license terms and making sure they are acceptable for your use case before downloading or using a model.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" } }, "required": [ "AcceptEula" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The access configuration file to control access to the ML model. You can explicitly accept the model end-user license agreement (EULA) within the `ModelAccessConfig`.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "VpcConfig": { + "ModelDataSource": { "type": "object", + "description": "Specifies the location of ML model data to deploy. If specified, you must specify one and only one of the available data sources.", "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - }, - "Subnets": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" } }, "required": [ - "Subnets", - "SecurityGroupIds" + "S3DataSource" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the location of ML model data to deploy. If specified, you must specify one and only one of the available data sources.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "RepositoryAuthConfig": { + "MultiModelConfig": { "type": "object", + "description": "Specifies additional configuration for multi-model endpoints.", "additionalProperties": false, "properties": { - "RepositoryCredentialsProviderArn": { + "ModelCacheSetting": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "Whether to cache models for a multi-model endpoint. By default, multi-model endpoints cache models so that a model does not have to be loaded into memory each time it is invoked. Some use cases do not benefit from model caching. For example, if an endpoint hosts a large number of models that are each invoked infrequently, the endpoint might perform better if you disable model caching. To disable model caching, set the value of this parameter to `Disabled`.", + "enum": [ + "Enabled", + "Disabled" + ], + "markdownDescription": "Whether to cache models for a multi-model endpoint. By default, multi-model endpoints cache models so that a model does not have to be loaded into memory each time it is invoked. Some use cases do not benefit from model caching. For example, if an endpoint hosts a large number of models that are each invoked infrequently, the endpoint might perform better if you disable model caching. To disable model caching, set the value of this parameter to `Disabled`.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Enabled | Disabled \nUpdate requires: No interruption\n" } }, - "required": [ - "RepositoryCredentialsProviderArn" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies additional configuration for multi-model endpoints.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "S3DataSource": { + "RepositoryAuthConfig": { "type": "object", + "description": "Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified `Vpc` as the value for the `RepositoryAccessMode` field of the `ImageConfig` object that you passed to a call to `CreateModel` and the private Docker registry where the model image is hosted requires authentication.", "additionalProperties": false, "properties": { - "ModelAccessConfig": { - "$ref": "#/definitions/ModelAccessConfig" - }, - "S3DataType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "CompressionType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "HubAccessConfig": { - "$ref": "#/definitions/HubAccessConfig" - }, - "S3Uri": { + "RepositoryCredentialsProviderArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) of an AWS Lambda function that provides credentials to authenticate to the private Docker registry where your model image is hosted. For information about how to create an AWS Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the AWS Lambda Developer Guide", + "markdownDescription": "The Amazon Resource Name (ARN) of an AWS Lambda function that provides credentials to authenticate to the private Docker registry where your model image is hosted. For information about how to create an AWS Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the AWS Lambda Developer Guide\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "S3Uri", - "S3DataType", - "CompressionType" + "RepositoryCredentialsProviderArn" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified `Vpc` as the value for the `RepositoryAccessMode` field of the `ImageConfig` object that you passed to a call to `CreateModel` and the private Docker registry where the model image is hosted requires authentication.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ContainerDefinition": { + "S3DataSource": { "type": "object", + "description": "Specifies the S3 location of ML model data to deploy.", "additionalProperties": false, "properties": { - "ImageConfig": { - "$ref": "#/definitions/ImageConfig" - }, - "InferenceSpecificationName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ContainerHostname": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ModelPackageName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Mode": { + "CompressionType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "Specifies how the ML model data is prepared.", + "enum": [ + "None", + "Gzip" + ], + "markdownDescription": "Specifies how the ML model data is prepared.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: None | Gzip \nUpdate requires: No interruption\n" }, - "Environment": { - "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "HubAccessConfig": { + "$ref": "#/definitions/HubAccessConfig" }, - "ModelDataUrl": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" }, - "Image": { + "S3DataType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ModelDataSource": { - "$ref": "#/definitions/ModelDataSource" + "description": "Specifies the type of ML model data to deploy.", + "enum": [ + "S3Prefix", + "S3Object" + ], + "markdownDescription": "Specifies the type of ML model data to deploy.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: S3Prefix | S3Object \nUpdate requires: No interruption\n" }, - "MultiModelConfig": { - "$ref": "#/definitions/MultiModelConfig" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "InferenceExecutionConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "Mode": { + "S3Uri": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "Specifies the S3 path of ML model data to deploy.", + "markdownDescription": "Specifies the S3 path of ML model data to deploy.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "Mode" + "CompressionType", + "S3DataType", + "S3Uri" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the S3 location of ML model data to deploy.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Tag": { "type": "object", @@ -214,11 +229,13 @@ "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The tag key. Tag keys must be unique per resource.", + "markdownDescription": "The tag key. Tag keys must be unique per resource.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The tag value.", + "markdownDescription": "The tag value.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -227,45 +244,93 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ModelDataSource": { + "VpcConfig": { "type": "object", + "description": "Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC. For more information, see [Give SageMaker Access to Resources in your Amazon VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).", "additionalProperties": false, "properties": { - "S3DataSource": { - "$ref": "#/definitions/S3DataSource" + "SecurityGroupIds": { + "type": "array", + "description": "The VPC security group IDs, in the form `sg-xxxxxxxx`. Specify the security groups for the VPC that is specified in the `Subnets` field.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The VPC security group IDs, in the form `sg-xxxxxxxx`. Specify the security groups for the VPC that is specified in the `Subnets` field.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see [Supported Instance Types and Availability Zones](https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html).", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see [Supported Instance Types and Availability Zones](https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html).\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ - "S3DataSource" + "Subnets", + "SecurityGroupIds" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "HubAccessConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "HubContentArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } + "markdownDescription": "Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC. For more information, see [Give SageMaker Access to Resources in your Amazon VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Containers": { + "type": "array", + "description": "Specifies the containers in the inference pipeline.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ContainerDefinition" }, - "required": [ - "HubContentArn" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the containers in the inference pipeline.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, - "MultiModelConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "ModelCacheSetting": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } + "EnableNetworkIsolation": { + "type": "boolean", + "description": "Isolates the model container. No inbound or outbound network calls can be made to or from the model container.", + "markdownDescription": "Isolates the model container. No inbound or outbound network calls can be made to or from the model container.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "ExecutionRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the IAM role that you specified for the model.", + "markdownDescription": "The Amazon Resource Name (ARN) of the IAM role that you specified for the model.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the model.", + "markdownDescription": "The Amazon Resource Name (ARN) of the model.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ModelName": { + "description": "The name of the new model.", + "type": "string", + "markdownDescription": "The name of the new model.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "type": "array", + "description": "An array of key-value pairs. You can use tags to categorize your AWS resources in different ways, for example, by purpose, owner, or environment. For more information, see [Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "An array of key-value pairs. You can use tags to categorize your AWS resources in different ways, for example, by purpose, owner, or environment. For more information, see [Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" } }, + "additionalProperties": false, "createOnlyProperties": [ "/properties/ExecutionRoleArn", "/properties/EnableNetworkIsolation", @@ -276,15 +341,59 @@ "/properties/Containers" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/ModelArn" ], "readOnlyProperties": [ - "/properties/Id" + "/properties/ModelArn" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "sagemaker:AddTags", + "sagemaker:CreateModel" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeModel", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:AddTags", + "sagemaker:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteModel" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListModels" + ] + } + }, "attributes": { - "Id": { + "ModelArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The Amazon Resource Name (ARN) of the model.", + "markdownDescription": "The Amazon Resource Name (ARN) of the model.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-sagemaker-modelpackage.json b/server/schema/resources/aws-sagemaker-modelpackage.json index 20514259..903167cd 100644 --- a/server/schema/resources/aws-sagemaker-modelpackage.json +++ b/server/schema/resources/aws-sagemaker-modelpackage.json @@ -1240,6 +1240,7 @@ "readOnlyProperties": [ "/properties/ModelPackageArn", "/properties/CreationTime", + "/properties/LastModifiedTime", "/properties/ModelPackageStatus" ], "createOnlyProperties": [ @@ -1345,6 +1346,9 @@ "CreationTime": { "$ref": "#/definitions/CreationTime" }, + "LastModifiedTime": { + "$ref": "#/definitions/LastModifiedTime" + }, "ModelPackageStatus": { "$ref": "#/definitions/ModelPackageStatus" } diff --git a/server/schema/resources/aws-sagemaker-partnerapp.json b/server/schema/resources/aws-sagemaker-partnerapp.json index c1b6e633..ac045f36 100644 --- a/server/schema/resources/aws-sagemaker-partnerapp.json +++ b/server/schema/resources/aws-sagemaker-partnerapp.json @@ -53,6 +53,18 @@ "description": "Enables IAM Session based Identity for PartnerApp.", "markdownDescription": "Enables IAM Session based Identity for PartnerApp.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, + "EnableAutoMinorVersionUpgrade": { + "type": "boolean", + "description": "Enables automatic minor version upgrades for the PartnerApp.", + "markdownDescription": "Enables automatic minor version upgrades for the PartnerApp.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AppVersion": { + "type": "string", + "description": "The version of the PartnerApp.", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The version of the PartnerApp.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, "ApplicationConfig": { "$ref": "#/definitions/PartnerAppConfig", "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", @@ -72,6 +84,11 @@ "maxLength": 2048, "markdownDescription": "The AppServerUrl based on app and account-info.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" }, + "CurrentVersionEolDate": { + "type": "string", + "description": "The end-of-life date for the current version of the PartnerApp.", + "markdownDescription": "The end-of-life date for the current version of the PartnerApp.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "MaintenanceConfig": { "$ref": "#/definitions/PartnerAppMaintenanceConfig", "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", @@ -197,7 +214,8 @@ ], "readOnlyProperties": [ "/properties/Arn", - "/properties/BaseUrl" + "/properties/BaseUrl", + "/properties/CurrentVersionEolDate" ], "writeOnlyProperties": [ "/properties/ClientToken" @@ -208,7 +226,7 @@ "primaryIdentifier": [ "/properties/Arn" ], - "replacementStrategy": "delete_then_create", + "replacementStrategy": "create_then_delete", "handlers": { "create": { "permissions": [ @@ -280,6 +298,11 @@ "description": "The AppServerUrl based on app and account-info.", "maxLength": 2048, "markdownDescription": "The AppServerUrl based on app and account-info.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CurrentVersionEolDate": { + "type": "string", + "description": "The end-of-life date for the current version of the PartnerApp.", + "markdownDescription": "The end-of-life date for the current version of the PartnerApp.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-sagemaker-processingjob.json b/server/schema/resources/aws-sagemaker-processingjob.json index ea4dcc52..62f8adde 100644 --- a/server/schema/resources/aws-sagemaker-processingjob.json +++ b/server/schema/resources/aws-sagemaker-processingjob.json @@ -986,6 +986,7 @@ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "sagemaker:StopProcessingJob", + "sagemaker:DeleteProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:ListTags", "sagemaker:DeleteTags" diff --git a/server/schema/resources/aws-sagemaker-userprofile.json b/server/schema/resources/aws-sagemaker-userprofile.json index 5f5b267f..47737b72 100644 --- a/server/schema/resources/aws-sagemaker-userprofile.json +++ b/server/schema/resources/aws-sagemaker-userprofile.json @@ -179,74 +179,7 @@ "additionalProperties": false, "properties": { "InstanceType": { - "type": "string", - "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", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p3dn.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.geospatial.interactive | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge \nUpdate requires: No interruption\n" + "$ref": "#/definitions/AppInstanceType" }, "SageMakerImageArn": { "type": "string", @@ -909,6 +842,8 @@ "ml.trn1.32xlarge", "ml.trn1n.32xlarge", "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", "ml.m6i.large", "ml.m6i.xlarge", "ml.m6i.2xlarge", @@ -991,7 +926,7 @@ "ml.r6id.24xlarge", "ml.r6id.32xlarge" ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.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.p3dn.24xlarge | 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.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" + "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: 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.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.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.p3dn.24xlarge | 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.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" }, "HiddenSageMakerImage": { "type": "object", diff --git a/server/schema/resources/aws-secretsmanager-rotationschedule.json b/server/schema/resources/aws-secretsmanager-rotationschedule.json index 9865e923..0a1de375 100644 --- a/server/schema/resources/aws-secretsmanager-rotationschedule.json +++ b/server/schema/resources/aws-secretsmanager-rotationschedule.json @@ -27,14 +27,16 @@ "permissions": [ "secretsmanager:RotateSecret", "secretsmanager:DescribeSecret", - "lambda:InvokeFunction" + "lambda:InvokeFunction", + "iam:PassRole" ] }, "update": { "permissions": [ "secretsmanager:RotateSecret", "secretsmanager:DescribeSecret", - "lambda:InvokeFunction" + "lambda:InvokeFunction", + "iam:PassRole" ] }, "list": { @@ -132,6 +134,28 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ExternalSecretRotationMetadataItem": { + "description": "The metadata needed to successfully rotate a managed external secret. Each metadata item is a key and value pair of strings in a JSON text string.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The value for the metadata item. You can specify a value that's 1 to 2048 characters in length.", + "type": "string", + "markdownDescription": "The value for the metadata item. You can specify a value that's 1 to 2048 characters in length.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "The key name of the metadata item. You can specify a value that's 1 to 256 characters in length.", + "type": "string", + "markdownDescription": "The key name of the metadata item. You can specify a value that's 1 to 256 characters in length.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "The metadata needed to successfully rotate a managed external secret. Each metadata item is a key and value pair of strings in a JSON text string.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RotationRules": { "additionalProperties": false, "type": "object", @@ -166,11 +190,26 @@ "type": "string", "markdownDescription": "The ARN or name of the secret to rotate.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, + "ExternalSecretRotationMetadata": { + "uniqueItems": false, + "description": "The list of metadata needed to successfully rotate a managed external secret.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ExternalSecretRotationMetadataItem" + }, + "markdownDescription": "The list of metadata needed to successfully rotate a managed external secret.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Id": { "description": "The ARN of the secret.", "type": "string", "markdownDescription": "The ARN of the secret.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "ExternalSecretRotationRoleArn": { + "description": "The ARN of the IAM role that is used by Secrets Manager to rotate a managed external secret.", + "type": "string", + "markdownDescription": "The ARN of the IAM role that is used by Secrets Manager to rotate a managed external secret.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "RotateImmediatelyOnUpdate": { "description": "Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window.", "type": "boolean", diff --git a/server/schema/resources/aws-secretsmanager-secret.json b/server/schema/resources/aws-secretsmanager-secret.json index c7a2291e..c9b59a75 100644 --- a/server/schema/resources/aws-secretsmanager-secret.json +++ b/server/schema/resources/aws-secretsmanager-secret.json @@ -55,6 +55,11 @@ "type": "string", "description": "The name of the new secret.\n The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@-\n Do not end your secret name with a hyphen followed by six characters. If you do so, you risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager automatically adds a hyphen and six random characters after the secret name at the end of the ARN.", "markdownDescription": "The name of the new secret.\n The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@-\n Do not end your secret name with a hyphen followed by six characters. If you do so, you risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager automatically adds a hyphen and six random characters after the secret name at the end of the ARN.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "type": "string", + "description": "The exact string that identifies the third-party partner that holds the external secret. For more information, see [Managed external secret partners](https://docs.aws.amazon.com/secretsmanager/latest/userguide/mes-partners.html).", + "markdownDescription": "The exact string that identifies the third-party partner that holds the external secret. For more information, see [Managed external secret partners](https://docs.aws.amazon.com/secretsmanager/latest/userguide/mes-partners.html).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "definitions": { diff --git a/server/schema/resources/aws-securityagent-agentspace.json b/server/schema/resources/aws-securityagent-agentspace.json new file mode 100644 index 00000000..011ab948 --- /dev/null +++ b/server/schema/resources/aws-securityagent-agentspace.json @@ -0,0 +1,429 @@ +{ + "typeName": "AWS::SecurityAgent::AgentSpace", + "description": "Resource Type definition for AWS::SecurityAgent::AgentSpace", + "additionalProperties": false, + "properties": { + "AgentSpaceId": { + "type": "string", + "description": "Unique identifier of the agent space", + "markdownDescription": "Unique identifier of the agent space\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "description": "Name of the agent space", + "markdownDescription": "Name of the agent space\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "description": "Description of the agent space", + "markdownDescription": "Description of the agent space\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AwsResources": { + "$ref": "#/definitions/AWSResources" + }, + "CodeReviewSettings": { + "$ref": "#/definitions/CodeReviewSettings" + }, + "KmsKeyId": { + "type": "string", + "description": "Identifier of the KMS key used to encrypt data. Can be a key ID, key ARN, alias name, or alias ARN. If not specified, an AWS managed key is used.", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "Identifier of the KMS key used to encrypt data. Can be a key ID, key ARN, alias name, or alias ARN. If not specified, an AWS managed key is used.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: Replacement\n" + }, + "IntegratedResources": { + "$ref": "#/definitions/IntegratedResources" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the agent space was created", + "format": "date-time", + "markdownDescription": "Timestamp when the agent space was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "Timestamp when the agent space was last updated", + "format": "date-time", + "markdownDescription": "Timestamp when the agent space was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetDomainIds": { + "type": "array", + "description": "List of target domain identifiers registered with the agent space", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of target domain identifiers registered with the agent space\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "description": "Tags for the agent space", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags for the agent space\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "type": "object", + "description": "A key-value pair to associate with a resource", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AWSResources": { + "type": "object", + "description": "AWS resource configuration", + "additionalProperties": false, + "properties": { + "Vpcs": { + "type": "array", + "description": "VPC configurations", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpcConfig" + }, + "markdownDescription": "VPC configurations\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LogGroups": { + "type": "array", + "description": "CloudWatch log group ARNs", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "CloudWatch log group ARNs\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "S3Buckets": { + "type": "array", + "description": "S3 bucket ARNs", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "S3 bucket ARNs\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecretArns": { + "type": "array", + "description": "SecretsManager secret ARNs used to store tester credentials for pentests", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "SecretsManager secret ARNs used to store tester credentials for pentests\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LambdaFunctionArns": { + "type": "array", + "description": "Lambda function ARNs used to retrieve tester credentials for pentests", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Lambda function ARNs used to retrieve tester credentials for pentests\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IamRoles": { + "type": "array", + "description": "IAM role ARNs", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "IAM role ARNs\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "AWS resource configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "type": "object", + "description": "Customer VPC configuration that the security testing environment accesses", + "additionalProperties": false, + "properties": { + "VpcArn": { + "type": "string", + "description": "ARN of the customer VPC", + "markdownDescription": "ARN of the customer VPC\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SecurityGroupArns": { + "type": "array", + "description": "List of security group ARNs in the customer VPC", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of security group ARNs in the customer VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetArns": { + "type": "array", + "description": "List of subnet ARNs in the customer VPC", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "List of subnet ARNs in the customer VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Customer VPC configuration that the security testing environment accesses\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CodeReviewSettings": { + "type": "object", + "description": "Details of code review settings", + "additionalProperties": false, + "properties": { + "ControlsScanning": { + "type": "boolean", + "description": "Whether Controls are utilized for code review analysis", + "markdownDescription": "Whether Controls are utilized for code review analysis\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "GeneralPurposeScanning": { + "type": "boolean", + "description": "Whether general purpose analysis is performed for code review", + "markdownDescription": "Whether general purpose analysis is performed for code review\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ControlsScanning", + "GeneralPurposeScanning" + ], + "markdownDescription": "Details of code review settings\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IntegratedResources": { + "type": "array", + "description": "Integrated Resources configuration", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IntegratedResource" + }, + "markdownDescription": "Integrated Resources configuration\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IntegratedResource": { + "type": "object", + "description": "Integrated Resource details", + "additionalProperties": false, + "properties": { + "Integration": { + "type": "string", + "description": "Unique identifier of the Provider Integration", + "markdownDescription": "Unique identifier of the Provider Integration\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ProviderResources": { + "type": "array", + "description": "List of selected Resources from the Integration", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ProviderResource" + }, + "markdownDescription": "List of selected Resources from the Integration\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Integration", + "ProviderResources" + ], + "markdownDescription": "Integrated Resource details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ProviderResource": { + "type": "object", + "description": "Selected Resource (eg: Code Repository) from an Integration", + "additionalProperties": false, + "properties": { + "GitHubRepository": { + "$ref": "#/definitions/GitHubRepositoryResource" + }, + "GitHubCapabilities": { + "$ref": "#/definitions/GitHubCapabilitiesResource" + } + }, + "allOf": [ + { + "oneOf": [ + { + "required": [ + "GitHubRepository" + ] + } + ] + }, + { + "oneOf": [ + { + "required": [ + "GitHubCapabilities" + ] + } + ] + } + ], + "markdownDescription": "Selected Resource (eg: Code Repository) from an Integration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GitHubRepositoryResource": { + "type": "object", + "description": "GitHub repository details", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string", + "description": "GitHub repository name", + "markdownDescription": "GitHub repository name\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Owner": { + "type": "string", + "description": "GitHub repository owner (user or organization)", + "markdownDescription": "GitHub repository owner (user or organization)\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Owner" + ], + "markdownDescription": "GitHub repository details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GitHubCapabilitiesResource": { + "type": "object", + "description": "GitHub repository capabilities", + "additionalProperties": false, + "properties": { + "LeaveComments": { + "type": "boolean", + "description": "Enables Code Review in the repository", + "markdownDescription": "Enables Code Review in the repository\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + }, + "RemediateCode": { + "type": "boolean", + "description": "Enables creation of pull requests with automated fixes", + "markdownDescription": "Enables creation of pull requests with automated fixes\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LeaveComments", + "RemediateCode" + ], + "markdownDescription": "GitHub repository capabilities\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "securityagent:TagResource", + "securityagent:UntagResource", + "securityagent:ListTagsForResource" + ] + }, + "primaryIdentifier": [ + "/properties/AgentSpaceId" + ], + "createOnlyProperties": [ + "/properties/KmsKeyId" + ], + "readOnlyProperties": [ + "/properties/AgentSpaceId", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "handlers": { + "create": { + "permissions": [ + "securityagent:CreateAgentSpace", + "securityagent:BatchGetAgentSpaces", + "securityagent:TagResource", + "securityagent:ListTagsForResource", + "securityagent:UpdateIntegratedResources", + "securityagent:ListIntegratedResources", + "iam:PassRole", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:Decrypt", + "kms:ReEncryptFrom", + "kms:ReEncryptTo" + ] + }, + "read": { + "permissions": [ + "securityagent:BatchGetAgentSpaces", + "securityagent:ListTagsForResource", + "kms:Decrypt", + "securityagent:ListIntegratedResources" + ] + }, + "update": { + "permissions": [ + "securityagent:UpdateAgentSpace", + "securityagent:BatchGetAgentSpaces", + "securityagent:TagResource", + "securityagent:UntagResource", + "securityagent:ListTagsForResource", + "securityagent:UpdateIntegratedResources", + "securityagent:ListIntegratedResources", + "iam:PassRole", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "securityagent:DeleteAgentSpace", + "securityagent:BatchGetAgentSpaces", + "kms:Decrypt" + ] + }, + "list": { + "permissions": [ + "securityagent:ListAgentSpaces" + ] + } + }, + "attributes": { + "AgentSpaceId": { + "type": "string", + "description": "Unique identifier of the agent space", + "markdownDescription": "Unique identifier of the agent space\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the agent space was created", + "format": "date-time", + "markdownDescription": "Timestamp when the agent space was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "Timestamp when the agent space was last updated", + "format": "date-time", + "markdownDescription": "Timestamp when the agent space was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-securityagent-application.json b/server/schema/resources/aws-securityagent-application.json new file mode 100644 index 00000000..d0f4874c --- /dev/null +++ b/server/schema/resources/aws-securityagent-application.json @@ -0,0 +1,172 @@ +{ + "typeName": "AWS::SecurityAgent::Application", + "description": "Resource Type definition for AWS::SecurityAgent::Application", + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Domain": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ApplicationName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IdCConfiguration": { + "$ref": "#/definitions/IdCConfiguration" + }, + "RoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DefaultKmsKeyId": { + "type": "string", + "description": "Identifier of a KMS key. Can be a key ID, key ARN, alias name, or alias ARN.", + "minLength": 0, + "maxLength": 2048, + "markdownDescription": "Identifier of a KMS key. Can be a key ID, key ARN, alias name, or alias ARN.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "description": "Tags for the application", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags for the application\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "type": "object", + "description": "A key-value pair to associate with a resource", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IdCConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "IdCApplicationArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "IdCInstanceArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" + } + }, + "required": [], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "securityagent:TagResource", + "securityagent:UntagResource", + "securityagent:ListTagsForResource" + ] + }, + "createOnlyProperties": [ + "/properties/IdCConfiguration/IdCInstanceArn", + "/properties/IdCConfiguration" + ], + "primaryIdentifier": [ + "/properties/ApplicationId" + ], + "readOnlyProperties": [ + "/properties/ApplicationName", + "/properties/ApplicationId", + "/properties/Domain", + "/properties/IdCConfiguration/IdCApplicationArn" + ], + "handlers": { + "create": { + "permissions": [ + "securityagent:CreateApplication", + "securityagent:GetApplication", + "securityagent:TagResource", + "securityagent:ListTagsForResource", + "iam:PassRole", + "sso:DescribeInstance", + "sso:CreateApplication", + "sso:PutApplicationGrant", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationAccessScope", + "kms:DescribeKey" + ] + }, + "read": { + "permissions": [ + "securityagent:GetApplication", + "securityagent:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityagent:UpdateApplication", + "securityagent:GetApplication", + "securityagent:TagResource", + "securityagent:ListTagsForResource", + "securityagent:UntagResource", + "iam:PassRole", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "securityagent:GetApplication", + "securityagent:DeleteApplication", + "sso:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "securityagent:ListApplications" + ] + } + }, + "attributes": { + "ApplicationId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Domain": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ApplicationName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-securityagent-pentest.json b/server/schema/resources/aws-securityagent-pentest.json new file mode 100644 index 00000000..6b2ab6d2 --- /dev/null +++ b/server/schema/resources/aws-securityagent-pentest.json @@ -0,0 +1,504 @@ +{ + "typeName": "AWS::SecurityAgent::Pentest", + "description": "Resource Type definition for AWS::SecurityAgent::Pentest", + "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-securityagent-pentest.html", + "additionalProperties": false, + "properties": { + "PentestId": { + "type": "string", + "description": "Unique identifier of the pentest", + "markdownDescription": "Unique identifier of the pentest\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AgentSpaceId": { + "type": "string", + "description": "Identifier of agent space where the pentest should be created", + "markdownDescription": "Identifier of agent space where the pentest should be created\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Title": { + "type": "string", + "description": "Title of the penetration test", + "markdownDescription": "Title of the penetration test\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Assets": { + "$ref": "#/definitions/Assets", + "description": "Collection of assets to be tested or used during the penetration test", + "markdownDescription": "Collection of assets to be tested or used during the penetration test\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "ExcludeRiskTypes": { + "type": "array", + "description": "A list of risk types excluded from the pentest execution", + "items": { + "$ref": "#/definitions/RiskType" + }, + "insertionOrder": false, + "markdownDescription": "A list of risk types excluded from the pentest execution\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ServiceRole": { + "type": "string", + "description": "Service role for accessing resources", + "markdownDescription": "Service role for accessing resources\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "LogConfig": { + "$ref": "#/definitions/CloudWatchLog", + "description": "CloudWatch logs config", + "markdownDescription": "CloudWatch logs config\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig", + "description": "VPC configuration that the security testing environment accesses", + "markdownDescription": "VPC configuration that the security testing environment accesses\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "NetworkTrafficConfig": { + "$ref": "#/definitions/NetworkTrafficConfig", + "description": "Configuration for network traffic filtering", + "markdownDescription": "Configuration for network traffic filtering\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "CodeRemediationStrategy": { + "$ref": "#/definitions/CodeRemediationStrategy", + "description": "Strategy for code remediation on findings", + "markdownDescription": "Strategy for code remediation on findings\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the pentest was created", + "format": "date-time", + "markdownDescription": "Timestamp when the pentest was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "Timestamp when the pentest was last updated", + "format": "date-time", + "markdownDescription": "Timestamp when the pentest was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "RiskType": { + "type": "string", + "description": "Type of security risk to test for", + "enum": [ + "CROSS_SITE_SCRIPTING", + "DEFAULT_CREDENTIALS", + "INSECURE_DIRECT_OBJECT_REFERENCE", + "PRIVILEGE_ESCALATION", + "SERVER_SIDE_TEMPLATE_INJECTION", + "COMMAND_INJECTION", + "CODE_INJECTION", + "SQL_INJECTION", + "ARBITRARY_FILE_UPLOAD", + "INSECURE_DESERIALIZATION", + "LOCAL_FILE_INCLUSION", + "INFORMATION_DISCLOSURE", + "PATH_TRAVERSAL", + "SERVER_SIDE_REQUEST_FORGERY", + "JSON_WEB_TOKEN_VULNERABILITIES", + "XML_EXTERNAL_ENTITY", + "FILE_DELETION", + "OTHER", + "GRAPHQL_VULNERABILITIES", + "BUSINESS_LOGIC_VULNERABILITIES", + "CRYPTOGRAPHIC_VULNERABILITIES", + "DENIAL_OF_SERVICE", + "FILE_ACCESS", + "FILE_CREATION", + "DATABASE_MODIFICATION", + "DATABASE_ACCESS", + "OUTBOUND_SERVICE_REQUEST", + "UNKNOWN" + ], + "markdownDescription": "Type of security risk to test for\n\n---\n\nRequired: No \nType: String \nAllowed Values: CROSS_SITE_SCRIPTING | DEFAULT_CREDENTIALS | INSECURE_DIRECT_OBJECT_REFERENCE | PRIVILEGE_ESCALATION | SERVER_SIDE_TEMPLATE_INJECTION | COMMAND_INJECTION | CODE_INJECTION | SQL_INJECTION | ARBITRARY_FILE_UPLOAD | INSECURE_DESERIALIZATION | LOCAL_FILE_INCLUSION | INFORMATION_DISCLOSURE | PATH_TRAVERSAL | SERVER_SIDE_REQUEST_FORGERY | JSON_WEB_TOKEN_VULNERABILITIES | XML_EXTERNAL_ENTITY | FILE_DELETION | OTHER | GRAPHQL_VULNERABILITIES | BUSINESS_LOGIC_VULNERABILITIES | CRYPTOGRAPHIC_VULNERABILITIES | DENIAL_OF_SERVICE | FILE_ACCESS | FILE_CREATION | DATABASE_MODIFICATION | DATABASE_ACCESS | OUTBOUND_SERVICE_REQUEST | UNKNOWN \nUpdate requires: No interruption\n" + }, + "Assets": { + "type": "object", + "description": "Collection of assets to be tested during the pentest", + "additionalProperties": false, + "properties": { + "Endpoints": { + "type": "array", + "description": "List of endpoints to test", + "items": { + "$ref": "#/definitions/Endpoint" + }, + "insertionOrder": false, + "markdownDescription": "List of endpoints to test\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Actors": { + "type": "array", + "description": "List of actors used during testing", + "items": { + "$ref": "#/definitions/Actor" + }, + "insertionOrder": false, + "markdownDescription": "List of actors used during testing\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Documents": { + "type": "array", + "description": "List of documents providing additional context for the pentest", + "items": { + "$ref": "#/definitions/DocumentInfo" + }, + "insertionOrder": false, + "markdownDescription": "List of documents providing additional context for the pentest\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SourceCode": { + "type": "array", + "description": "List of source code repositories to analyze", + "items": { + "$ref": "#/definitions/SourceCodeRepository" + }, + "insertionOrder": false, + "markdownDescription": "List of source code repositories to analyze\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "IntegratedRepositories": { + "type": "array", + "description": "List of repositories connected via provider integrations", + "items": { + "$ref": "#/definitions/IntegratedRepository" + }, + "insertionOrder": false, + "markdownDescription": "List of repositories connected via provider integrations\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Collection of assets to be tested during the pentest\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Endpoint": { + "type": "object", + "description": "An endpoint to be tested during the pentest", + "additionalProperties": false, + "properties": { + "Uri": { + "type": "string", + "description": "URI of the endpoint to test", + "markdownDescription": "URI of the endpoint to test\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An endpoint to be tested during the pentest\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Actor": { + "type": "object", + "description": "An authenticated actor to be used during pentest execution", + "additionalProperties": false, + "properties": { + "Identifier": { + "type": "string", + "description": "Identifier for the actor", + "markdownDescription": "Identifier for the actor\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Uris": { + "type": "array", + "description": "List of URIs this actor is authorized to access", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "List of URIs this actor is authorized to access\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Authentication": { + "$ref": "#/definitions/Authentication", + "description": "Authentication credentials for this actor", + "markdownDescription": "Authentication credentials for this actor\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "description": "Description of the actor", + "markdownDescription": "Description of the actor\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An authenticated actor to be used during pentest execution\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Authentication": { + "type": "object", + "description": "Authentication configuration for a pentest actor", + "additionalProperties": false, + "properties": { + "ProviderType": { + "type": "string", + "description": "Type of authentication provider", + "enum": [ + "SECRETS_MANAGER", + "AWS_LAMBDA", + "AWS_IAM_ROLE", + "AWS_INTERNAL" + ], + "markdownDescription": "Type of authentication provider\n\n---\n\nRequired: No \nType: String \nAllowed Values: SECRETS_MANAGER | AWS_LAMBDA | AWS_IAM_ROLE | AWS_INTERNAL \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "Reference value for the authentication provider, such as a secret ARN or Lambda ARN", + "markdownDescription": "Reference value for the authentication provider, such as a secret ARN or Lambda ARN\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Authentication configuration for a pentest actor\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DocumentInfo": { + "type": "object", + "description": "A document stored in S3 that provides context for the pentest", + "additionalProperties": false, + "properties": { + "S3Location": { + "type": "string", + "description": "S3 document location", + "markdownDescription": "S3 document location\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ArtifactId": { + "type": "string", + "description": "Artifact identifier", + "markdownDescription": "Artifact identifier\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A document stored in S3 that provides context for the pentest\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceCodeRepository": { + "type": "object", + "description": "A source code archive stored in S3 for analysis during the pentest", + "additionalProperties": false, + "properties": { + "S3Location": { + "type": "string", + "description": "S3 source code location", + "markdownDescription": "S3 source code location\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A source code archive stored in S3 for analysis during the pentest\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IntegratedRepository": { + "type": "object", + "description": "A repository connected via a provider integration", + "additionalProperties": false, + "properties": { + "IntegrationId": { + "type": "string", + "description": "Unique identifier of the provider integration", + "markdownDescription": "Unique identifier of the provider integration\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ProviderResourceId": { + "type": "string", + "description": "Identifier of the resource within the provider integration", + "markdownDescription": "Identifier of the resource within the provider integration\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "IntegrationId", + "ProviderResourceId" + ], + "markdownDescription": "A repository connected via a provider integration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CloudWatchLog": { + "type": "object", + "description": "CloudWatch Logs configuration for pentest output", + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string", + "description": "CloudWatch log group", + "markdownDescription": "CloudWatch log group\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LogStream": { + "type": "string", + "description": "CloudWatch log stream", + "markdownDescription": "CloudWatch log stream\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "CloudWatch Logs configuration for pentest output\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "type": "object", + "description": "VPC configuration that the pentest agent accesses", + "additionalProperties": false, + "properties": { + "VpcArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SecurityGroupArns": { + "type": "array", + "description": "List of security groups in the VPC", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "List of security groups in the VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetArns": { + "type": "array", + "description": "List of subnets in the VPC", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "insertionOrder": false, + "markdownDescription": "List of subnets in the VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "VPC configuration that the pentest agent accesses\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkTrafficConfig": { + "type": "object", + "description": "Network traffic configuration for the pentest", + "additionalProperties": false, + "properties": { + "Rules": { + "type": "array", + "description": "Ordered list of network traffic rules", + "items": { + "$ref": "#/definitions/NetworkTrafficRule" + }, + "insertionOrder": true, + "markdownDescription": "Ordered list of network traffic rules\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomHeaders": { + "type": "array", + "description": "Custom headers to include in outbound requests", + "items": { + "$ref": "#/definitions/CustomHeader" + }, + "insertionOrder": true, + "markdownDescription": "Custom headers to include in outbound requests\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Network traffic configuration for the pentest\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkTrafficRule": { + "type": "object", + "description": "Network traffic rule", + "additionalProperties": false, + "properties": { + "Effect": { + "type": "string", + "description": "Whether to allow or deny traffic matching this rule", + "enum": [ + "ALLOW", + "DENY" + ], + "markdownDescription": "Whether to allow or deny traffic matching this rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOW | DENY \nUpdate requires: No interruption\n" + }, + "Pattern": { + "type": "string", + "description": "URL pattern this rule applies to", + "markdownDescription": "URL pattern this rule applies to\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NetworkTrafficRuleType": { + "type": "string", + "description": "Type of pattern matching for this rule", + "enum": [ + "URL" + ], + "markdownDescription": "Type of pattern matching for this rule\n\n---\n\nRequired: No \nType: String \nAllowed Values: URL \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Network traffic rule\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomHeader": { + "type": "object", + "description": "A custom header to include in outbound requests", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string", + "description": "Name of the header", + "markdownDescription": "Name of the header\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "Value of the header", + "markdownDescription": "Value of the header\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A custom header to include in outbound requests\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CodeRemediationStrategy": { + "type": "string", + "description": "Strategy for remediating code vulnerabilities discovered during the pentest", + "enum": [ + "AUTOMATIC", + "DISABLED" + ], + "markdownDescription": "Strategy for remediating code vulnerabilities discovered during the pentest\n\n---\n\nRequired: No \nType: String \nAllowed Values: AUTOMATIC | DISABLED \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AgentSpaceId", + "ServiceRole", + "Assets" + ], + "tagging": { + "taggable": false + }, + "createOnlyProperties": [ + "/properties/AgentSpaceId" + ], + "primaryIdentifier": [ + "/properties/PentestId", + "/properties/AgentSpaceId" + ], + "readOnlyProperties": [ + "/properties/PentestId", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "handlers": { + "create": { + "permissions": [ + "securityagent:CreatePentest", + "securityagent:BatchGetPentests", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "securityagent:BatchGetPentests", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "securityagent:UpdatePentest", + "securityagent:BatchGetPentests", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "securityagent:BatchGetPentests", + "securityagent:BatchDeletePentests", + "kms:Decrypt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AgentSpaceId": { + "$ref": "resource-schema.json#/properties/AgentSpaceId" + } + }, + "required": [ + "AgentSpaceId" + ] + }, + "permissions": [ + "securityagent:ListPentests", + "kms:Decrypt" + ] + } + }, + "attributes": { + "PentestId": { + "type": "string", + "description": "Unique identifier of the pentest", + "markdownDescription": "Unique identifier of the pentest\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the pentest was created", + "format": "date-time", + "markdownDescription": "Timestamp when the pentest was created\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "description": "Timestamp when the pentest was last updated", + "format": "date-time", + "markdownDescription": "Timestamp when the pentest was last updated\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-securityagent-targetdomain.json b/server/schema/resources/aws-securityagent-targetdomain.json new file mode 100644 index 00000000..46595b8a --- /dev/null +++ b/server/schema/resources/aws-securityagent-targetdomain.json @@ -0,0 +1,255 @@ +{ + "typeName": "AWS::SecurityAgent::TargetDomain", + "description": "Resource Type definition for AWS::SecurityAgent::TargetDomain", + "additionalProperties": false, + "properties": { + "TargetDomainId": { + "type": "string", + "description": "Unique identifier of the target domain", + "markdownDescription": "Unique identifier of the target domain\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetDomainName": { + "type": "string", + "description": "Domain name of the target domain", + "markdownDescription": "Domain name of the target domain\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "VerificationMethod": { + "type": "string", + "description": "Verification method for the target domain", + "enum": [ + "DNS_TXT", + "HTTP_ROUTE" + ], + "markdownDescription": "Verification method for the target domain\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DNS_TXT | HTTP_ROUTE \nUpdate requires: No interruption\n" + }, + "VerificationStatus": { + "type": "string", + "description": "Current verification status of the registered target domain", + "enum": [ + "PENDING", + "VERIFIED", + "FAILED", + "UNREACHABLE" + ], + "markdownDescription": "Current verification status of the registered target domain\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | VERIFIED | FAILED | UNREACHABLE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VerificationDetails": { + "$ref": "#/definitions/VerificationDetails" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the target domain was registered", + "format": "date-time", + "markdownDescription": "Timestamp when the target domain was registered\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VerifiedAt": { + "type": "string", + "description": "Timestamp when the target domain was last successfully verified", + "format": "date-time", + "markdownDescription": "Timestamp when the target domain was last successfully verified\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "description": "Tags for the target domain", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags for the target domain\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "definitions": { + "Tag": { + "type": "object", + "description": "A key-value pair to associate with a resource", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key name of the tag\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The value for the tag", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value for the tag\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VerificationDetails": { + "type": "object", + "description": "Verification details to verify registered target domain", + "additionalProperties": false, + "properties": { + "Method": { + "type": "string", + "description": "Type of domain ownership verification method", + "enum": [ + "DNS_TXT", + "HTTP_ROUTE" + ], + "markdownDescription": "Type of domain ownership verification method\n\n---\n\nRequired: No \nType: String \nAllowed Values: DNS_TXT | HTTP_ROUTE \nUpdate requires: No interruption\n" + }, + "DnsTxt": { + "$ref": "#/definitions/DnsVerification" + }, + "HttpRoute": { + "$ref": "#/definitions/HttpVerification" + } + }, + "markdownDescription": "Verification details to verify registered target domain\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DnsVerification": { + "type": "object", + "description": "Represents DNS TXT verification details", + "additionalProperties": false, + "properties": { + "Token": { + "type": "string", + "description": "Token used to verify domain ownership", + "markdownDescription": "Token used to verify domain ownership\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DnsRecordName": { + "type": "string", + "description": "Record name to be added in DNS for target domain", + "markdownDescription": "Record name to be added in DNS for target domain\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DnsRecordType": { + "type": "string", + "description": "Type of record to be added in DNS for target domain", + "enum": [ + "TXT" + ], + "markdownDescription": "Type of record to be added in DNS for target domain\n\n---\n\nRequired: No \nType: String \nAllowed Values: TXT \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Represents DNS TXT verification details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HttpVerification": { + "type": "object", + "description": "Represents HTTP route verification details", + "additionalProperties": false, + "properties": { + "Token": { + "type": "string", + "description": "Token used to verify domain ownership", + "markdownDescription": "Token used to verify domain ownership\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RoutePath": { + "type": "string", + "description": "Route path where verification token should be placed", + "markdownDescription": "Route path where verification token should be placed\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Represents HTTP route verification details\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TargetDomainName", + "VerificationMethod" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "securityagent:TagResource", + "securityagent:UntagResource", + "securityagent:ListTagsForResource" + ] + }, + "primaryIdentifier": [ + "/properties/TargetDomainId" + ], + "readOnlyProperties": [ + "/properties/TargetDomainId", + "/properties/VerificationStatus", + "/properties/VerificationDetails", + "/properties/CreatedAt", + "/properties/VerifiedAt" + ], + "createOnlyProperties": [ + "/properties/TargetDomainName" + ], + "handlers": { + "create": { + "permissions": [ + "securityagent:CreateTargetDomain", + "securityagent:BatchGetTargetDomains", + "securityagent:TagResource", + "securityagent:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityagent:BatchGetTargetDomains", + "securityagent:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityagent:UpdateTargetDomain", + "securityagent:BatchGetTargetDomains", + "securityagent:TagResource", + "securityagent:UntagResource", + "securityagent:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityagent:DeleteTargetDomain", + "securityagent:BatchGetTargetDomains" + ] + }, + "list": { + "permissions": [ + "securityagent:ListTargetDomains" + ] + } + }, + "attributes": { + "TargetDomainId": { + "type": "string", + "description": "Unique identifier of the target domain", + "markdownDescription": "Unique identifier of the target domain\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VerificationStatus": { + "type": "string", + "description": "Current verification status of the registered target domain", + "enum": [ + "PENDING", + "VERIFIED", + "FAILED", + "UNREACHABLE" + ], + "markdownDescription": "Current verification status of the registered target domain\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING | VERIFIED | FAILED | UNREACHABLE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VerificationDetails": { + "$ref": "#/definitions/VerificationDetails" + }, + "CreatedAt": { + "type": "string", + "description": "Timestamp when the target domain was registered", + "format": "date-time", + "markdownDescription": "Timestamp when the target domain was registered\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VerifiedAt": { + "type": "string", + "description": "Timestamp when the target domain was last successfully verified", + "format": "date-time", + "markdownDescription": "Timestamp when the target domain was last successfully verified\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-securityhub-automationrule.json b/server/schema/resources/aws-securityhub-automationrule.json index 862a69d1..00471ed2 100644 --- a/server/schema/resources/aws-securityhub-automationrule.json +++ b/server/schema/resources/aws-securityhub-automationrule.json @@ -112,7 +112,7 @@ "description": "A map filter for filtering ASHlong findings. Each map filter provides the field to check for, the value to check for, and the comparison operator.", "properties": { "Comparison": { - "description": "The condition to apply to the key value when filtering Security Hub findings with a map filter.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department CONTAINS Security`` matches findings that include the value ``Security`` for the ``Department`` tag. In the same example, a finding with a value of ``Security team`` for the ``Department`` tag is a match.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department EQUALS Security`` matches findings that have the value ``Security`` for the ``Department`` tag.\n \n ``CONTAINS`` and ``EQUALS`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Department CONTAINS Security OR Department CONTAINS Finance`` match a finding that includes either ``Security``, ``Finance``, or both values.\n To search for values that don't have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_CONTAINS Finance`` matches findings that exclude the value ``Finance`` for the ``Department`` tag.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_EQUALS Finance`` matches findings that don\u2019t have the value ``Finance`` for the ``Department`` tag.\n \n ``NOT_CONTAINS`` and ``NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance`` match a finding that excludes both the ``Security`` and ``Finance`` values.\n ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can\u2019t have both an ``EQUALS`` filter and a ``NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.", + "description": "The condition to apply to the key value when filtering Security Hub CSPM findings with a map filter.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department CONTAINS Security`` matches findings that include the value ``Security`` for the ``Department`` tag. In the same example, a finding with a value of ``Security team`` for the ``Department`` tag is a match.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department EQUALS Security`` matches findings that have the value ``Security`` for the ``Department`` tag.\n \n ``CONTAINS`` and ``EQUALS`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Department CONTAINS Security OR Department CONTAINS Finance`` match a finding that includes either ``Security``, ``Finance``, or both values.\n To search for values that don't have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_CONTAINS Finance`` matches findings that exclude the value ``Finance`` for the ``Department`` tag.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_EQUALS Finance`` matches findings that don\u2019t have the value ``Finance`` for the ``Department`` tag.\n \n ``NOT_CONTAINS`` and ``NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance`` match a finding that excludes both the ``Security`` and ``Finance`` values.\n ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can\u2019t have both an ``EQUALS`` filter and a ``NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.", "enum": [ "EQUALS", "NOT_EQUALS", @@ -120,7 +120,7 @@ "NOT_CONTAINS" ], "type": "string", - "markdownDescription": "The condition to apply to the key value when filtering Security Hub findings with a map filter.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department CONTAINS Security`` matches findings that include the value ``Security`` for the ``Department`` tag. In the same example, a finding with a value of ``Security team`` for the ``Department`` tag is a match.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department EQUALS Security`` matches findings that have the value ``Security`` for the ``Department`` tag.\n \n ``CONTAINS`` and ``EQUALS`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Department CONTAINS Security OR Department CONTAINS Finance`` match a finding that includes either ``Security``, ``Finance``, or both values.\n To search for values that don't have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_CONTAINS Finance`` matches findings that exclude the value ``Finance`` for the ``Department`` tag.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_EQUALS Finance`` matches findings that don\u2019t have the value ``Finance`` for the ``Department`` tag.\n \n ``NOT_CONTAINS`` and ``NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance`` match a finding that excludes both the ``Security`` and ``Finance`` values.\n ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can\u2019t have both an ``EQUALS`` filter and a ``NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: EQUALS | NOT_EQUALS | CONTAINS | NOT_CONTAINS \nUpdate requires: No interruption\n" + "markdownDescription": "The condition to apply to the key value when filtering Security Hub CSPM findings with a map filter.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department CONTAINS Security`` matches findings that include the value ``Security`` for the ``Department`` tag. In the same example, a finding with a value of ``Security team`` for the ``Department`` tag is a match.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department EQUALS Security`` matches findings that have the value ``Security`` for the ``Department`` tag.\n \n ``CONTAINS`` and ``EQUALS`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Department CONTAINS Security OR Department CONTAINS Finance`` match a finding that includes either ``Security``, ``Finance``, or both values.\n To search for values that don't have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_CONTAINS Finance`` matches findings that exclude the value ``Finance`` for the ``Department`` tag.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, for the ``ResourceTags`` field, the filter ``Department NOT_EQUALS Finance`` matches findings that don\u2019t have the value ``Finance`` for the ``Department`` tag.\n \n ``NOT_CONTAINS`` and ``NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance`` match a finding that excludes both the ``Security`` and ``Finance`` values.\n ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can\u2019t have both an ``EQUALS`` filter and a ``NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: EQUALS | NOT_EQUALS | CONTAINS | NOT_CONTAINS \nUpdate requires: No interruption\n" }, "Key": { "description": "The key of the map filter. For example, for ``ResourceTags``, ``Key`` identifies the name of the tag. For ``UserDefinedFields``, ``Key`` is the name of the field.", @@ -191,13 +191,13 @@ "properties": { "Comparison": { "$ref": "#/definitions/StringFilterComparison", - "description": "The condition to apply to a string value when filtering Security Hub findings.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012``.\n + To search for values that start with the filter value, use ``PREFIX``. For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us``. A ``ResourceRegion`` that starts with a different value, such as ``af``, ``ap``, or ``ca``, doesn't match.\n \n ``CONTAINS``, ``EQUALS``, and ``PREFIX`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront``, ``CloudWatch``, or both strings in the title.\n To search for values that don\u2019t have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012``.\n + To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS``. For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us``.\n \n ``NOT_CONTAINS``, ``NOT_EQUALS``, and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. \n You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters.\n For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2``. It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface``.\n + ``ResourceType PREFIX AwsIam`` \n + ``ResourceType PREFIX AwsEc2`` \n + ``ResourceType NOT_EQUALS AwsIamPolicy`` \n + ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` \n \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2``, ``GetFindingStatisticsV2``, ``GetResourcesV2``, and ``GetResourceStatisticsV2`` APIs. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.", - "markdownDescription": "The condition to apply to a string value when filtering Security Hub findings.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012``.\n + To search for values that start with the filter value, use ``PREFIX``. For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us``. A ``ResourceRegion`` that starts with a different value, such as ``af``, ``ap``, or ``ca``, doesn't match.\n \n ``CONTAINS``, ``EQUALS``, and ``PREFIX`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront``, ``CloudWatch``, or both strings in the title.\n To search for values that don\u2019t have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012``.\n + To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS``. For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us``.\n \n ``NOT_CONTAINS``, ``NOT_EQUALS``, and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. \n You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters.\n For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2``. It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface``.\n + ``ResourceType PREFIX AwsIam`` \n + ``ResourceType PREFIX AwsEc2`` \n + ``ResourceType NOT_EQUALS AwsIamPolicy`` \n + ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` \n \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2``, ``GetFindingStatisticsV2``, ``GetResourcesV2``, and ``GetResourceStatisticsV2`` APIs. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "description": "The condition to apply to a string value when filtering Security Hub CSPM findings.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012``.\n + To search for values that start with the filter value, use ``PREFIX``. For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us``. A ``ResourceRegion`` that starts with a different value, such as ``af``, ``ap``, or ``ca``, doesn't match.\n \n ``CONTAINS``, ``EQUALS``, and ``PREFIX`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront``, ``CloudWatch``, or both strings in the title.\n To search for values that don\u2019t have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012``.\n + To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS``. For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us``.\n \n ``NOT_CONTAINS``, ``NOT_EQUALS``, and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. \n You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub CSPM first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters.\n For example, for the following filters, Security Hub CSPM first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2``. It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface``.\n + ``ResourceType PREFIX AwsIam`` \n + ``ResourceType PREFIX AwsEc2`` \n + ``ResourceType NOT_EQUALS AwsIamPolicy`` \n + ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` \n \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2``, ``GetFindingStatisticsV2``, ``GetResourcesV2``, and ``GetResourceStatisticsV2`` APIs. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.", + "markdownDescription": "The condition to apply to a string value when filtering Security Hub CSPM findings.\n To search for values that have the filter value, use one of the following comparison operators:\n + To search for values that include the filter value, use ``CONTAINS``. For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront.\n + To search for values that exactly match the filter value, use ``EQUALS``. For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012``.\n + To search for values that start with the filter value, use ``PREFIX``. For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us``. A ``ResourceRegion`` that starts with a different value, such as ``af``, ``ap``, or ``ca``, doesn't match.\n \n ``CONTAINS``, ``EQUALS``, and ``PREFIX`` filters on the same field are joined by ``OR``. A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront``, ``CloudWatch``, or both strings in the title.\n To search for values that don\u2019t have the filter value, use one of the following comparison operators:\n + To search for values that exclude the filter value, use ``NOT_CONTAINS``. For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront.\n + To search for values other than the filter value, use ``NOT_EQUALS``. For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012``.\n + To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS``. For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us``.\n \n ``NOT_CONTAINS``, ``NOT_EQUALS``, and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND``. A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title.\n You can\u2019t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. \n You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub CSPM first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters.\n For example, for the following filters, Security Hub CSPM first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2``. It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface``.\n + ``ResourceType PREFIX AwsIam`` \n + ``ResourceType PREFIX AwsEc2`` \n + ``ResourceType NOT_EQUALS AwsIamPolicy`` \n + ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` \n \n ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2``, ``GetFindingStatisticsV2``, ``GetResourcesV2``, and ``GetResourceStatisticsV2`` APIs. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, "Value": { - "description": "The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub``. If you provide ``security hub`` as the filter value, there's no match.", + "description": "The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub CSPM``. If you provide ``security hub`` as the filter value, there's no match.", "type": "string", - "markdownDescription": "The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub``. If you provide ``security hub`` as the filter value, there's no match.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub CSPM``. If you provide ``security hub`` as the filter value, there's no match.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -327,7 +327,7 @@ "type": "object", "properties": { "Status": { - "description": "The status of the investigation into the finding. The workflow status is specific to an individual finding. It does not affect the generation of new findings. For example, setting the workflow status to ``SUPPRESSED`` or ``RESOLVED`` does not prevent a new finding for the same issue.\n The allowed values are the following.\n + ``NEW`` - The initial state of a finding, before it is reviewed.\n Security Hub also resets ``WorkFlowStatus`` from ``NOTIFIED`` or ``RESOLVED`` to ``NEW`` in the following cases:\n + The record state changes from ``ARCHIVED`` to ``ACTIVE``.\n + The compliance status changes from ``PASSED`` to either ``WARNING``, ``FAILED``, or ``NOT_AVAILABLE``.\n \n + ``NOTIFIED`` - Indicates that you notified the resource owner about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner.\n + ``RESOLVED`` - The finding was reviewed and remediated and is now considered resolved.\n + ``SUPPRESSED`` - Indicates that you reviewed the finding and don't believe that any action is needed. The finding is no longer updated.", + "description": "The status of the investigation into the finding. The workflow status is specific to an individual finding. It does not affect the generation of new findings. For example, setting the workflow status to ``SUPPRESSED`` or ``RESOLVED`` does not prevent a new finding for the same issue.\n The allowed values are the following.\n + ``NEW`` - The initial state of a finding, before it is reviewed.\n Security Hub CSPM also resets ``WorkFlowStatus`` from ``NOTIFIED`` or ``RESOLVED`` to ``NEW`` in the following cases:\n + The record state changes from ``ARCHIVED`` to ``ACTIVE``.\n + The compliance status changes from ``PASSED`` to either ``WARNING``, ``FAILED``, or ``NOT_AVAILABLE``.\n \n + ``NOTIFIED`` - Indicates that you notified the resource owner about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner.\n + ``RESOLVED`` - The finding was reviewed and remediated and is now considered resolved.\n + ``SUPPRESSED`` - Indicates that you reviewed the finding and don't believe that any action is needed. The finding is no longer updated.", "type": "string", "enum": [ "NEW", @@ -335,7 +335,7 @@ "RESOLVED", "SUPPRESSED" ], - "markdownDescription": "The status of the investigation into the finding. The workflow status is specific to an individual finding. It does not affect the generation of new findings. For example, setting the workflow status to ``SUPPRESSED`` or ``RESOLVED`` does not prevent a new finding for the same issue.\n The allowed values are the following.\n + ``NEW`` - The initial state of a finding, before it is reviewed.\n Security Hub also resets ``WorkFlowStatus`` from ``NOTIFIED`` or ``RESOLVED`` to ``NEW`` in the following cases:\n + The record state changes from ``ARCHIVED`` to ``ACTIVE``.\n + The compliance status changes from ``PASSED`` to either ``WARNING``, ``FAILED``, or ``NOT_AVAILABLE``.\n \n + ``NOTIFIED`` - Indicates that you notified the resource owner about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner.\n + ``RESOLVED`` - The finding was reviewed and remediated and is now considered resolved.\n + ``SUPPRESSED`` - Indicates that you reviewed the finding and don't believe that any action is needed. The finding is no longer updated.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NEW | NOTIFIED | RESOLVED | SUPPRESSED \nUpdate requires: No interruption\n" + "markdownDescription": "The status of the investigation into the finding. The workflow status is specific to an individual finding. It does not affect the generation of new findings. For example, setting the workflow status to ``SUPPRESSED`` or ``RESOLVED`` does not prevent a new finding for the same issue.\n The allowed values are the following.\n + ``NEW`` - The initial state of a finding, before it is reviewed.\n Security Hub CSPM also resets ``WorkFlowStatus`` from ``NOTIFIED`` or ``RESOLVED`` to ``NEW`` in the following cases:\n + The record state changes from ``ARCHIVED`` to ``ACTIVE``.\n + The compliance status changes from ``PASSED`` to either ``WARNING``, ``FAILED``, or ``NOT_AVAILABLE``.\n \n + ``NOTIFIED`` - Indicates that you notified the resource owner about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner.\n + ``RESOLVED`` - The finding was reviewed and remediated and is now considered resolved.\n + ``SUPPRESSED`` - Indicates that you reviewed the finding and don't believe that any action is needed. The finding is no longer updated.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NEW | NOTIFIED | RESOLVED | SUPPRESSED \nUpdate requires: No interruption\n" } }, "required": [ @@ -451,12 +451,12 @@ "type": "object", "properties": { "Type": { - "description": "Specifies the type of action that Security Hub takes when a finding matches the defined criteria of a rule.", + "description": "Specifies the type of action that Security Hub CSPM takes when a finding matches the defined criteria of a rule.", "type": "string", "enum": [ "FINDING_FIELDS_UPDATE" ], - "markdownDescription": "Specifies the type of action that Security Hub takes when a finding matches the defined criteria of a rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: FINDING_FIELDS_UPDATE \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the type of action that Security Hub CSPM takes when a finding matches the defined criteria of a rule.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: FINDING_FIELDS_UPDATE \nUpdate requires: No interruption\n" }, "FindingFieldsUpdate": { "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate", @@ -476,13 +476,13 @@ "additionalProperties": false, "properties": { "ProductArn": { - "description": "The Amazon Resource Name (ARN) for a third-party product that generated a finding in Security Hub. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.", + "description": "The Amazon Resource Name (ARN) for a third-party product that generated a finding in Security Hub CSPM. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.", "items": { "$ref": "#/definitions/StringFilter" }, "type": "array", "maxItems": 20, - "markdownDescription": "The Amazon Resource Name (ARN) for a third-party product that generated a finding in Security Hub. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) for a third-party product that generated a finding in Security Hub CSPM. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "AwsAccountId": { "description": "The AWS-account ID in which a finding was generated.\n Array Members: Minimum number of 1 item. Maximum number of 100 items.", @@ -602,13 +602,13 @@ "markdownDescription": "Provides a URL that links to a page about the current finding in the finding product. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "ProductName": { - "description": "Provides the name of the product that generated the finding. For control-based findings, the product name is Security Hub. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.", + "description": "Provides the name of the product that generated the finding. For control-based findings, the product name is Security Hub CSPM. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.", "items": { "$ref": "#/definitions/StringFilter" }, "type": "array", "maxItems": 20, - "markdownDescription": "Provides the name of the product that generated the finding. For control-based findings, the product name is Security Hub. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Provides the name of the product that generated the finding. For control-based findings, the product name is Security Hub CSPM. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "CompanyName": { "description": "The name of the company for the product that generated the finding. For control-based findings, the company is AWS. \n Array Members: Minimum number of 1 item. Maximum number of 20 items.", @@ -810,11 +810,11 @@ "markdownDescription": "Whether the rule is active after it is created. If this parameter is equal to ``ENABLED``, ASH applies the rule to findings and finding updates after the rule is created.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" }, "RuleOrder": { - "description": "An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first.", + "description": "An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub CSPM applies rules with lower values for this parameter first.", "type": "integer", "minimum": 1, "maximum": 1000, - "markdownDescription": "An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub CSPM applies rules with lower values for this parameter first.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, "Description": { "description": "A description of the rule.", @@ -848,9 +848,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\nRead only property: Yes" }, "IsTerminal": { - "description": "Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.", + "description": "Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub CSPM applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.", "type": "boolean", - "markdownDescription": "Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub CSPM applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "Actions": { "type": "array", diff --git a/server/schema/resources/aws-securityhub-automationrulev2.json b/server/schema/resources/aws-securityhub-automationrulev2.json index 9c9d7b2f..70d8cc33 100644 --- a/server/schema/resources/aws-securityhub-automationrulev2.json +++ b/server/schema/resources/aws-securityhub-automationrulev2.json @@ -189,11 +189,10 @@ "activity_id", "compliance.status_id", "confidence_score", - "severity_id", - "status_id", - "finding_info.related_events_count" + "finding_info.related_events_count", + "vendor_attributes.severity_id" ], - "markdownDescription": "The name of the field\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: activity_id | compliance.status_id | confidence_score | severity_id | status_id | finding_info.related_events_count \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the field\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: activity_id | compliance.status_id | confidence_score | finding_info.related_events_count | vendor_attributes.severity_id \nUpdate requires: No interruption\n" }, "Filter": { "$ref": "#/definitions/NumberFilter" @@ -380,7 +379,6 @@ "description": "The name of the field", "type": "string", "enum": [ - "metadata.uid", "activity_name", "cloud.account.name", "cloud.account.uid", @@ -410,13 +408,11 @@ "resources.region", "resources.type", "resources.uid", - "severity", - "status", - "comment", "vulnerabilities.fix_coverage", - "class_name" + "class_name", + "vendor_attributes.severity" ], - "markdownDescription": "The name of the field\n\n---\n\nRequired: No \nType: String \nAllowed Values: metadata.uid | activity_name | cloud.account.name | cloud.account.uid | cloud.provider | cloud.region | compliance.assessments.category | compliance.assessments.name | compliance.control | compliance.status | compliance.standards | finding_info.desc | finding_info.src_url | finding_info.title | finding_info.types | finding_info.uid | finding_info.related_events.uid | finding_info.related_events.product.uid | finding_info.related_events.title | metadata.product.feature.uid | metadata.product.name | metadata.product.uid | metadata.product.vendor_name | remediation.desc | remediation.references | resources.cloud_partition | resources.name | resources.region | resources.type | resources.uid | severity | status | comment | vulnerabilities.fix_coverage | class_name \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the field\n\n---\n\nRequired: No \nType: String \nAllowed Values: activity_name | cloud.account.name | cloud.account.uid | cloud.provider | cloud.region | compliance.assessments.category | compliance.assessments.name | compliance.control | compliance.status | compliance.standards | finding_info.desc | finding_info.src_url | finding_info.title | finding_info.types | finding_info.uid | finding_info.related_events.uid | finding_info.related_events.product.uid | finding_info.related_events.title | metadata.product.feature.uid | metadata.product.name | metadata.product.uid | metadata.product.vendor_name | remediation.desc | remediation.references | resources.cloud_partition | resources.name | resources.region | resources.type | resources.uid | vulnerabilities.fix_coverage | class_name | vendor_attributes.severity \nUpdate requires: No interruption\n" }, "AllowedOperators": { "description": "The logical operator used to combine multiple conditions", diff --git a/server/schema/resources/aws-securityhub-connectorv2.json b/server/schema/resources/aws-securityhub-connectorv2.json new file mode 100644 index 00000000..d6d60f4b --- /dev/null +++ b/server/schema/resources/aws-securityhub-connectorv2.json @@ -0,0 +1,286 @@ +{ + "typeName": "AWS::SecurityHub::ConnectorV2", + "description": "Resource schema for AWS::SecurityHub::ConnectorV2", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "definitions": { + "Tags": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^(?!aws:)[a-zA-Z+-=._:/]{1,128}$": { + "type": "string", + "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 -.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ISO8601DateString": { + "description": "The timestamp formatted in ISO8601", + "type": "string", + "markdownDescription": "The timestamp formatted in ISO8601\n\n---\n\nRequired: No \nType: String \nPattern: ^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$ \nUpdate requires: No interruption\n" + }, + "AuthStatus": { + "description": "The authorization status of the connector", + "type": "string", + "enum": [ + "ACTIVE", + "FAILED" + ], + "markdownDescription": "The authorization status of the connector\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | FAILED \nUpdate requires: No interruption\n" + }, + "JiraCloudProviderConfiguration": { + "type": "object", + "description": "The initial configuration settings required to establish an integration between Security Hub and Jira Cloud", + "properties": { + "ProjectKey": { + "description": "The project key for a Jira Cloud instance", + "type": "string", + "minLength": 2, + "maxLength": 10, + "markdownDescription": "The project key for a Jira Cloud instance\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 2 \nMaximum Length: 10 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ProjectKey" + ], + "additionalProperties": false, + "markdownDescription": "The initial configuration settings required to establish an integration between Security Hub and Jira Cloud\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ServiceNowProviderConfiguration": { + "type": "object", + "description": "The initial configuration settings required to establish an integration between Security Hub and ServiceNow ITSM", + "properties": { + "InstanceName": { + "description": "The instance name of ServiceNow ITSM", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The instance name of ServiceNow ITSM\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the ServiceNow credentials", + "type": "string", + "minLength": 20, + "maxLength": 2048, + "markdownDescription": "The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the ServiceNow credentials\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: .*\\S.* \nUpdate requires: No interruption\n" + } + }, + "required": [ + "InstanceName", + "SecretArn" + ], + "additionalProperties": false, + "markdownDescription": "The initial configuration settings required to establish an integration between Security Hub and ServiceNow ITSM\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Provider": { + "type": "object", + "description": "The third-party provider configuration for the connector", + "oneOf": [ + { + "type": "object", + "properties": { + "JiraCloud": { + "$ref": "#/definitions/JiraCloudProviderConfiguration" + } + }, + "required": [ + "JiraCloud" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ServiceNow": { + "$ref": "#/definitions/ServiceNowProviderConfiguration" + } + }, + "required": [ + "ServiceNow" + ], + "additionalProperties": false + } + ], + "markdownDescription": "The third-party provider configuration for the connector\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + } + }, + "properties": { + "Name": { + "description": "The name of the connector", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the connector\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: .*\\S.* \nUpdate requires: Replacement\n" + }, + "Description": { + "description": "A description of the connector", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "A description of the connector\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: .*\\S.* \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "description": "The ARN of KMS key used for the connector", + "type": "string", + "minLength": 20, + "maxLength": 2048, + "markdownDescription": "The ARN of KMS key used for the connector\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: .*\\S.* \nUpdate requires: Replacement\n" + }, + "Provider": { + "$ref": "#/definitions/Provider" + }, + "Message": { + "description": "The message of the connector status change", + "type": "string", + "markdownDescription": "The message of the connector status change\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectorStatus": { + "description": "The status of the connector", + "type": "string", + "enum": [ + "CONNECTED", + "FAILED_TO_CONNECT", + "PENDING_AUTHORIZATION", + "PENDING_CONFIGURATION" + ], + "markdownDescription": "The status of the connector\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONNECTED | FAILED_TO_CONNECT | PENDING_AUTHORIZATION | PENDING_CONFIGURATION \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "ConnectorArn": { + "description": "The ARN of the connector", + "type": "string", + "markdownDescription": "The ARN of the connector\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws\\S*:securityhub:[a-z0-9-]+:[0-9]{12}:connectorv2/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectorId": { + "description": "The ID of the connector", + "type": "string", + "markdownDescription": "The ID of the connector\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "LastCheckedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "required": [ + "Name", + "Provider" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/KmsKeyArn", + "/properties/Provider/ServiceNow/InstanceName" + ], + "readOnlyProperties": [ + "/properties/ConnectorArn", + "/properties/ConnectorId", + "/properties/Message", + "/properties/ConnectorStatus", + "/properties/LastUpdatedAt", + "/properties/LastCheckedAt", + "/properties/CreatedAt" + ], + "primaryIdentifier": [ + "/properties/ConnectorArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "securityhub:ListTagsForResource", + "securityhub:TagResource", + "securityhub:UntagResource" + ] + }, + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateConnectorV2", + "securityhub:GetConnectorV2", + "securityhub:TagResource", + "securityhub:ListTagsForResource", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "securityhub:GetConnectorV2", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:UpdateConnectorV2", + "securityhub:GetConnectorV2", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:GetConnectorV2", + "securityhub:DeleteConnectorV2" + ] + }, + "list": { + "permissions": [ + "securityhub:ListConnectorsV2", + "securityhub:ListTagsForResource" + ] + } + }, + "attributes": { + "Message": { + "description": "The message of the connector status change", + "type": "string", + "markdownDescription": "The message of the connector status change\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectorStatus": { + "description": "The status of the connector", + "type": "string", + "enum": [ + "CONNECTED", + "FAILED_TO_CONNECT", + "PENDING_AUTHORIZATION", + "PENDING_CONFIGURATION" + ], + "markdownDescription": "The status of the connector\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONNECTED | FAILED_TO_CONNECT | PENDING_AUTHORIZATION | PENDING_CONFIGURATION \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectorArn": { + "description": "The ARN of the connector", + "type": "string", + "markdownDescription": "The ARN of the connector\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws\\S*:securityhub:[a-z0-9-]+:[0-9]{12}:connectorv2/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ConnectorId": { + "description": "The ID of the connector", + "type": "string", + "markdownDescription": "The ID of the connector\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LastUpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "LastCheckedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-securityhub-delegatedadmin.json b/server/schema/resources/aws-securityhub-delegatedadmin.json index b4395efb..f298af77 100644 --- a/server/schema/resources/aws-securityhub-delegatedadmin.json +++ b/server/schema/resources/aws-securityhub-delegatedadmin.json @@ -9,9 +9,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}/[a-zA-Z0-9-]{1,32}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "AdminAccountId": { - "description": "The AWS-account identifier of the account to designate as the Security Hub administrator account.", + "description": "The AWS-account identifier of the account to designate as the Security Hub CSPM administrator account.", "type": "string", - "markdownDescription": "The AWS-account identifier of the account to designate as the Security Hub administrator account.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: Replacement\n" + "markdownDescription": "The AWS-account identifier of the account to designate as the Security Hub CSPM administrator account.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: Replacement\n" }, "Status": { "description": "", diff --git a/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json b/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json index 35a83282..fe67dc5b 100644 --- a/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json +++ b/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json @@ -1,11 +1,13 @@ { "typeName": "AWS::ServiceCatalog::LaunchNotificationConstraint", "description": "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/main/aws-servicecatalog-launchnotificationconstraint", "additionalProperties": false, "properties": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Description": { "type": "string", @@ -48,10 +50,58 @@ "readOnlyProperties": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "servicecatalog:DescribeConstraint" + ] + }, + "create": { + "permissions": [ + "servicecatalog:CreateConstraint", + "servicecatalog:DescribeConstraint", + "sns:GetTopicAttributes" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListConstraintsForPortfolio" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdateConstraint", + "servicecatalog:DescribeConstraint", + "sns:GetTopicAttributes" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteConstraint" + ] + } + }, "attributes": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-launchroleconstraint.json b/server/schema/resources/aws-servicecatalog-launchroleconstraint.json index 4a3ad611..6476d38e 100644 --- a/server/schema/resources/aws-servicecatalog-launchroleconstraint.json +++ b/server/schema/resources/aws-servicecatalog-launchroleconstraint.json @@ -1,41 +1,61 @@ { "typeName": "AWS::ServiceCatalog::LaunchRoleConstraint", "description": "Resource Type definition for AWS::ServiceCatalog::LaunchRoleConstraint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-launchroleconstraint.git", "additionalProperties": false, "properties": { "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "LocalRoleName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The description of the launch role constraint.", + "markdownDescription": "The description of the launch role constraint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The language code for the constraint.", + "markdownDescription": "The language code for the constraint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The ID of the portfolio to which this launch role constraint applies.", + "markdownDescription": "The ID of the portfolio to which this launch role constraint applies.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" }, "ProductId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The ID of the product to which this launch role constraint applies.", + "markdownDescription": "The ID of the product to which this launch role constraint applies.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" }, "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The unique identifier for the launch role constraint.", + "markdownDescription": "The unique identifier for the launch role constraint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LocalRoleName": { + "type": "string", + "description": "The local IAM role name to use in the launch constraint.", + "markdownDescription": "The local IAM role name to use in the launch constraint.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" }, "RoleArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The ARN of the IAM role used for the launch constraint.", + "markdownDescription": "The ARN of the IAM role used for the launch constraint.\n\n---\n\nRequired: Conditional \nType: String \nPattern: arn:(aws|aws-cn|aws-us-gov):iam::[0-9]*:(role)\\/.* \nUpdate requires: No interruption\n" } }, "required": [ "PortfolioId", "ProductId" ], + "oneOf": [ + { + "required": [ + "LocalRoleName" + ] + }, + { + "required": [ + "RoleArn" + ] + } + ], "createOnlyProperties": [ "/properties/PortfolioId", "/properties/ProductId" @@ -46,10 +66,60 @@ "readOnlyProperties": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateConstraint", + "servicecatalog:DescribeConstraint", + "iam:GetRole", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "servicecatalog:DescribeConstraint" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdateConstraint", + "servicecatalog:DescribeConstraint", + "iam:GetRole", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteConstraint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListConstraintsForPortfolio" + ] + } + }, "attributes": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The unique identifier for the launch role constraint.", + "markdownDescription": "The unique identifier for the launch role constraint.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-portfolio.json b/server/schema/resources/aws-servicecatalog-portfolio.json index ebb59348..2f9c009f 100644 --- a/server/schema/resources/aws-servicecatalog-portfolio.json +++ b/server/schema/resources/aws-servicecatalog-portfolio.json @@ -1,6 +1,6 @@ { "typeName": "AWS::ServiceCatalog::Portfolio", - "description": "Resource Type definition for AWS::ServiceCatalog::Portfolio", + "description": "Resource type definition for AWS::ServiceCatalog::Portfolio", "additionalProperties": false, "properties": { "Id": { @@ -65,9 +65,55 @@ "/properties/PortfolioName", "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], "primaryIdentifier": [ "/properties/Id" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreatePortfolio", + "servicecatalog:DescribePortfolio", + "servicecatalog:TagResource", + "servicecatalog:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "servicecatalog:DescribePortfolio", + "servicecatalog:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdatePortfolio", + "servicecatalog:DescribePortfolio", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeletePortfolio", + "servicecatalog:DescribePortfolio" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListPortfolios" + ] + } + }, "attributes": { "Id": { "type": "string", diff --git a/server/schema/resources/aws-servicecatalog-portfolioprincipalassociation.json b/server/schema/resources/aws-servicecatalog-portfolioprincipalassociation.json index dea13f5d..d7271c59 100644 --- a/server/schema/resources/aws-servicecatalog-portfolioprincipalassociation.json +++ b/server/schema/resources/aws-servicecatalog-portfolioprincipalassociation.json @@ -1,32 +1,31 @@ { "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation", "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-portfolioprincipalassociation.git", "additionalProperties": false, "properties": { - "AcceptLanguage": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "PortfolioId": { + "PrincipalARN": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The ARN of the principal (user, role, or group).", + "markdownDescription": "The ARN of the principal (user, role, or group).\n\n---\n\nRequired: No \nType: String \nPattern: arn:(aws|aws-cn|aws-us-gov):iam::[0-9]*:(role|user|group)\\/.* \nUpdate requires: Replacement\n" }, - "PrincipalARN": { + "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The language code.", + "markdownDescription": "The language code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "Id": { + "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The portfolio identifier.", + "markdownDescription": "The portfolio identifier.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "PrincipalType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The principal type. The supported value is IAM if you use a fully defined Amazon Resource Name (ARN), or IAM_PATTERN if you use an ARN with no accountID, with or without wildcard characters.", + "markdownDescription": "The principal type. The supported value is IAM if you use a fully defined Amazon Resource Name (ARN), or IAM_PATTERN if you use an ARN with no accountID, with or without wildcard characters.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" } }, "required": [ - "PrincipalARN", - "PortfolioId", "PrincipalType" ], "createOnlyProperties": [ @@ -35,16 +34,55 @@ "/properties/PrincipalARN", "/properties/PrincipalType" ], - "primaryIdentifier": [ - "/properties/Id" + "writeOnlyProperties": [ + "/properties/AcceptLanguage" ], - "readOnlyProperties": [ - "/properties/Id" + "primaryIdentifier": [ + "/properties/PortfolioId", + "/properties/PrincipalARN" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "servicecatalog:ListPrincipalsForPortfolio" + ] + }, + "create": { + "permissions": [ + "servicecatalog:AssociatePrincipalWithPortfolio", + "servicecatalog:ListPrincipalsForPortfolio", + "iam:GetUser", + "iam:GetRole", + "iam:GetGroup" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListPrincipalsForPortfolio" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DisassociatePrincipalFromPortfolio", + "servicecatalog:ListPrincipalsForPortfolio", + "iam:GetUser", + "iam:GetRole", + "iam:GetGroup" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-portfolioshare.json b/server/schema/resources/aws-servicecatalog-portfolioshare.json index 8d162233..2fae121e 100644 --- a/server/schema/resources/aws-servicecatalog-portfolioshare.json +++ b/server/schema/resources/aws-servicecatalog-portfolioshare.json @@ -1,48 +1,87 @@ { "typeName": "AWS::ServiceCatalog::PortfolioShare", "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioShare", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "additionalProperties": false, "properties": { "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "description": "The language code.", + "markdownDescription": "The language code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The portfolio identifier.", + "markdownDescription": "The portfolio identifier.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "AccountId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The AWS account ID.", + "markdownDescription": "The AWS account ID.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: Replacement\n" }, "ShareTagOptions": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Enables or disables TagOptions sharing when creating the portfolio share.", + "markdownDescription": "Enables or disables TagOptions sharing when creating the portfolio share.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, + "tagging": { + "taggable": false + }, "required": [ "AccountId", "PortfolioId" ], "createOnlyProperties": [ - "/properties/AcceptLanguage", "/properties/AccountId", "/properties/PortfolioId" ], - "primaryIdentifier": [ - "/properties/Id" + "writeOnlyProperties": [ + "/properties/AcceptLanguage" ], - "readOnlyProperties": [ - "/properties/Id" + "primaryIdentifier": [ + "/properties/PortfolioId", + "/properties/AccountId" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "handlers": { + "read": { + "permissions": [ + "servicecatalog:DescribePortfolioShares" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:DescribePortfolioShares" + ] + }, + "create": { + "permissions": [ + "servicecatalog:DescribePortfolioShares", + "servicecatalog:CreatePortfolioShare" + ] + }, + "update": { + "permissions": [ + "servicecatalog:DescribePortfolioShares", + "servicecatalog:UpdatePortfolioShare" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DescribePortfolioShares", + "servicecatalog:DeletePortfolioShare" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json b/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json index ed3d92a9..4cd2e96a 100644 --- a/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json +++ b/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json @@ -1,31 +1,38 @@ { "typeName": "AWS::ServiceCatalog::ResourceUpdateConstraint", - "description": "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint", + "description": "Resource type definition for AWS::ServiceCatalog::ResourceUpdateConstraint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-resourceupdateconstraint.git", "additionalProperties": false, "properties": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The description of the constraint", + "markdownDescription": "The description of the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The language code", + "markdownDescription": "The language code\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TagUpdateOnProvisionedProduct": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "ALLOWED or NOT_ALLOWED, to permit or prevent changes to the tags on provisioned instances of the specified portfolio / product combination", + "markdownDescription": "ALLOWED or NOT_ALLOWED, to permit or prevent changes to the tags on provisioned instances of the specified portfolio / product combination\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The portfolio identifier", + "markdownDescription": "The portfolio identifier\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "ProductId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The product identifier", + "markdownDescription": "The product identifier\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" } }, "required": [ @@ -43,10 +50,56 @@ "readOnlyProperties": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateConstraint", + "servicecatalog:DescribeConstraint" + ] + }, + "read": { + "permissions": [ + "servicecatalog:DescribeConstraint" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdateConstraint", + "servicecatalog:DescribeConstraint" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteConstraint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListConstraintsForPortfolio" + ] + } + }, + "tagging": { + "taggable": false + }, "attributes": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-stacksetconstraint.json b/server/schema/resources/aws-servicecatalog-stacksetconstraint.json index 8fd099cf..260631f4 100644 --- a/server/schema/resources/aws-servicecatalog-stacksetconstraint.json +++ b/server/schema/resources/aws-servicecatalog-stacksetconstraint.json @@ -1,57 +1,68 @@ { "typeName": "AWS::ServiceCatalog::StackSetConstraint", "description": "Resource Type definition for AWS::ServiceCatalog::StackSetConstraint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-stacksetconstraint.git", "additionalProperties": false, "properties": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The description of the constraint.", + "markdownDescription": "The description of the constraint.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "StackInstanceControl": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "Permission to create, update, and delete stack instances. Choose from ALLOWED and NOT_ALLOWED.", + "markdownDescription": "Permission to create, update, and delete stack instances. Choose from ALLOWED and NOT_ALLOWED.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The language code.", + "markdownDescription": "The language code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The portfolio identifier.", + "markdownDescription": "The portfolio identifier.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "ProductId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The product identifier.", + "markdownDescription": "The product identifier.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "RegionList": { "type": "array", + "description": "One or more AWS Regions where the provisioned product will be available.", "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "One or more AWS Regions where the provisioned product will be available.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "AdminRole": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "AdminRole ARN.", + "markdownDescription": "AdminRole ARN.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "AccountList": { "type": "array", + "description": "One or more AWS accounts that will have access to the provisioned product.", "uniqueItems": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "One or more AWS accounts that will have access to the provisioned product.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "ExecutionRole": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "ExecutionRole name.", + "markdownDescription": "ExecutionRole name.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -68,16 +79,64 @@ "/properties/PortfolioId", "/properties/ProductId" ], - "primaryIdentifier": [ + "readOnlyProperties": [ "/properties/Id" ], - "readOnlyProperties": [ + "primaryIdentifier": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "servicecatalog:DescribeConstraint" + ] + }, + "create": { + "permissions": [ + "servicecatalog:CreateConstraint", + "servicecatalog:DescribeConstraint", + "iam:GetRole" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListConstraintsForPortfolio" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdateConstraint", + "servicecatalog:DescribeConstraint", + "iam:GetRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteConstraint" + ] + } + }, "attributes": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-tagoptionassociation.json b/server/schema/resources/aws-servicecatalog-tagoptionassociation.json index 8c440347..21e4c4ce 100644 --- a/server/schema/resources/aws-servicecatalog-tagoptionassociation.json +++ b/server/schema/resources/aws-servicecatalog-tagoptionassociation.json @@ -1,39 +1,64 @@ { "typeName": "AWS::ServiceCatalog::TagOptionAssociation", "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-tagoptionassociation.git", "additionalProperties": false, "properties": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "TagOptionId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The TagOption identifier.", + "markdownDescription": "The TagOption identifier.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "ResourceId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The CloudformationProduct or Portfolio identifier.", + "markdownDescription": "The CloudformationProduct or Portfolio identifier.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" } }, - "required": [ - "TagOptionId", - "ResourceId" - ], "createOnlyProperties": [ "/properties/TagOptionId", "/properties/ResourceId" ], "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" + "/properties/TagOptionId", + "/properties/ResourceId" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "servicecatalog:ListResourcesForTagOption" + ] + }, + "create": { + "permissions": [ + "servicecatalog:AssociateTagOptionWithResource", + "servicecatalog:ListResourcesForTagOption" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TagOptionId": { + "$ref": "resource-schema.json#/properties/TagOptionId" + } + }, + "required": [ + "TagOptionId" + ] + }, + "permissions": [ + "servicecatalog:ListResourcesForTagOption" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DisassociateTagOptionFromResource", + "servicecatalog:ListResourcesForTagOption" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-ses-configurationset.json b/server/schema/resources/aws-ses-configurationset.json index ef7482c2..6bf7020e 100644 --- a/server/schema/resources/aws-ses-configurationset.json +++ b/server/schema/resources/aws-ses-configurationset.json @@ -69,6 +69,19 @@ }, "markdownDescription": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ArchivingOptions": { + "description": "An object that defines a MailManager archive that is used to preserve emails that you send using the configuration set.", + "type": "object", + "additionalProperties": false, + "properties": { + "ArchiveArn": { + "type": "string", + "description": "The ARN of the MailManager archive to associate with the configuration set.", + "markdownDescription": "The ARN of the MailManager archive to associate with the configuration set.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An object that defines a MailManager archive that is used to preserve emails that you send using the configuration set.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ReputationOptions": { "description": "An object that defines whether or not Amazon SES collects reputation metrics for the emails that you send that use the configuration set.", "type": "object", @@ -110,6 +123,49 @@ "markdownDescription": "The reason that the address was added to the suppression list for your account\n\n---\n\nRequired: No \nType: String \nPattern: BOUNCE|COMPLAINT \nUpdate requires: No interruption\n" }, "markdownDescription": "A list that contains the reasons that email addresses are automatically added to the suppression list for your account.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ValidationOptions": { + "type": "object", + "description": "An object that contains information about the validation options for your account.", + "additionalProperties": false, + "properties": { + "ConditionThreshold": { + "type": "object", + "description": "The condition threshold settings for suppression validation.", + "additionalProperties": false, + "properties": { + "ConditionThresholdEnabled": { + "type": "string", + "description": "Whether the condition threshold is enabled or disabled.", + "markdownDescription": "Whether the condition threshold is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nPattern: ENABLED|DISABLED \nUpdate requires: No interruption\n" + }, + "OverallConfidenceThreshold": { + "type": "object", + "description": "The overall confidence threshold settings.", + "additionalProperties": false, + "properties": { + "ConfidenceVerdictThreshold": { + "type": "string", + "description": "The confidence verdict threshold level.", + "markdownDescription": "The confidence verdict threshold level.\n\n---\n\nRequired: Yes \nType: String \nPattern: MEDIUM|HIGH|MANAGED \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ConfidenceVerdictThreshold" + ], + "markdownDescription": "The overall confidence threshold settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ConditionThresholdEnabled" + ], + "markdownDescription": "The condition threshold settings for suppression validation.\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ConditionThreshold" + ], + "markdownDescription": "An object that contains information about the validation options for your account.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "markdownDescription": "An object that contains information about the suppression list preferences for your account.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -185,6 +241,9 @@ "VdmOptions": { "$ref": "#/definitions/VdmOptions" }, + "ArchivingOptions": { + "$ref": "#/definitions/ArchivingOptions" + }, "Tags": { "description": "The tags (keys and values) associated with the contact list.", "type": "array", @@ -240,6 +299,7 @@ "ses:PutConfigurationSetSendingOptions", "ses:PutConfigurationSetSuppressionOptions", "ses:PutConfigurationSetVdmOptions", + "ses:PutConfigurationSetArchivingOptions", "ses:DescribeConfigurationSet", "ses:UntagResource", "ses:TagResource" diff --git a/server/schema/resources/aws-ses-customverificationemailtemplate.json b/server/schema/resources/aws-ses-customverificationemailtemplate.json new file mode 100644 index 00000000..8b1e31d2 --- /dev/null +++ b/server/schema/resources/aws-ses-customverificationemailtemplate.json @@ -0,0 +1,139 @@ +{ + "typeName": "AWS::SES::CustomVerificationEmailTemplate", + "description": "Resource Type definition for AWS::SES::CustomVerificationEmailTemplate.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ses.git", + "definitions": { + "Tag": { + "description": "An object that defines the tags (keys and values) that you want to associate with the tenant.", + "type": "object", + "properties": { + "Key": { + "description": "The key of the key-value tag.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key of the key-value tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The value of the key-value tag.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value of the key-value tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "An object that defines the tags (keys and values) that you want to associate with the tenant.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "TemplateName": { + "description": "The name of the custom verification email template.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the custom verification email template.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "FromEmailAddress": { + "description": "The email address that the custom verification email is sent from.", + "type": "string", + "markdownDescription": "The email address that the custom verification email is sent from.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "TemplateSubject": { + "description": "The subject line of the custom verification email.", + "type": "string", + "markdownDescription": "The subject line of the custom verification email.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "TemplateContent": { + "description": "The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations.", + "type": "string", + "markdownDescription": "The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "SuccessRedirectionURL": { + "description": "The URL that the recipient of the verification email is sent to if his or her address is successfully verified.", + "type": "string", + "markdownDescription": "The URL that the recipient of the verification email is sent to if his or her address is successfully verified.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "FailureRedirectionURL": { + "description": "The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.", + "type": "string", + "markdownDescription": "The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "The tags (keys and values) associated with the tenant.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "markdownDescription": "The tags (keys and values) associated with the tenant.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "TemplateName", + "FromEmailAddress", + "TemplateSubject", + "TemplateContent", + "SuccessRedirectionURL", + "FailureRedirectionURL" + ], + "createOnlyProperties": [ + "/properties/TemplateName" + ], + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ses:TagResource", + "ses:UntagResource", + "ses:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ses:CreateCustomVerificationEmailTemplate", + "ses:GetCustomVerificationEmailTemplate", + "ses:TagResource" + ] + }, + "read": { + "permissions": [ + "ses:GetCustomVerificationEmailTemplate" + ] + }, + "update": { + "permissions": [ + "ses:UpdateCustomVerificationEmailTemplate", + "ses:GetCustomVerificationEmailTemplate", + "ses:TagResource", + "ses:UntagResource" + ] + }, + "delete": { + "permissions": [ + "ses:DeleteCustomVerificationEmailTemplate", + "ses:GetCustomVerificationEmailTemplate" + ] + }, + "list": { + "permissions": [ + "ses:ListCustomVerificationEmailTemplates" + ] + } + }, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-ses-mailmanagerarchive.json b/server/schema/resources/aws-ses-mailmanagerarchive.json index d42e0761..7d77f50f 100644 --- a/server/schema/resources/aws-ses-mailmanagerarchive.json +++ b/server/schema/resources/aws-ses-mailmanagerarchive.json @@ -96,7 +96,7 @@ }, "KmsKeyArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):kms:[a-z0-9-]{1,20}:[0-9]{12}:(key|alias)/.+$ \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov|-eusc):kms:[a-z0-9-]{1,20}:[0-9]{12}:(key|alias)/.+$ \nUpdate requires: Replacement\n" }, "Retention": { "$ref": "#/definitions/ArchiveRetention" @@ -140,6 +140,7 @@ "ses:ListTagsForResource", "ses:GetArchive", "ses:CreateArchive", + "iam:CreateServiceLinkedRole", "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" diff --git a/server/schema/resources/aws-ses-mailmanageringresspoint.json b/server/schema/resources/aws-ses-mailmanageringresspoint.json index 7aa629a0..15dbef0e 100644 --- a/server/schema/resources/aws-ses-mailmanageringresspoint.json +++ b/server/schema/resources/aws-ses-mailmanageringresspoint.json @@ -27,16 +27,77 @@ "properties": { "SecretArn": { "type": "string", - "pattern": "^arn:(aws|aws-cn|aws-us-gov):secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=,.@-]+$" + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-eusc):secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=,.@-]+$" } }, "required": [ "SecretArn" ], "additionalProperties": false + }, + { + "type": "object", + "title": "TlsAuthConfiguration", + "properties": { + "TlsAuthConfiguration": { + "$ref": "#/definitions/TlsAuthConfiguration" + } + }, + "required": [ + "TlsAuthConfiguration" + ], + "additionalProperties": false } ] }, + "TlsAuthConfiguration": { + "type": "object", + "properties": { + "TrustStore": { + "$ref": "#/definitions/TrustStore" + } + }, + "required": [ + "TrustStore" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TrustStore": { + "type": "object", + "properties": { + "CAContent": { + "type": "string", + "minLength": 1, + "maxLength": 500000, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500000 \nPattern: ^[\\P{C}\\s]*$ \nUpdate requires: No interruption\n" + }, + "CrlContent": { + "type": "string", + "minLength": 1, + "maxLength": 500000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500000 \nPattern: ^[\\P{C}\\s]*$ \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc):kms:[a-z0-9-]+:\\d{12}:(key|alias)/[a-zA-Z0-9/_-]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "CAContent" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TlsPolicy": { + "type": "string", + "enum": [ + "REQUIRED", + "OPTIONAL", + "FIPS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: REQUIRED | OPTIONAL | FIPS \nUpdate requires: No interruption\n" + }, "IngressPointStatus": { "type": "string", "enum": [ @@ -61,9 +122,10 @@ "type": "string", "enum": [ "OPEN", - "AUTH" + "AUTH", + "MTLS" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPEN | AUTH \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPEN | AUTH | MTLS \nUpdate requires: No interruption\n" }, "IpType": { "type": "string", @@ -215,6 +277,9 @@ "minItems": 0, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "TlsPolicy": { + "$ref": "#/definitions/TlsPolicy" + }, "Type": { "$ref": "#/definitions/IngressPointType" } diff --git a/server/schema/resources/aws-ses-mailmanagerrelay.json b/server/schema/resources/aws-ses-mailmanagerrelay.json index e614b6f5..94bcd66d 100644 --- a/server/schema/resources/aws-ses-mailmanagerrelay.json +++ b/server/schema/resources/aws-ses-mailmanagerrelay.json @@ -16,7 +16,7 @@ "properties": { "SecretArn": { "type": "string", - "pattern": "^arn:(aws|aws-cn|aws-us-gov):secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=,.@-]+$" + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-eusc):secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=,.@-]+$" } }, "required": [ diff --git a/server/schema/resources/aws-ses-mailmanagerruleset.json b/server/schema/resources/aws-ses-mailmanagerruleset.json index 6a27aec6..7456c8bd 100644 --- a/server/schema/resources/aws-ses-mailmanagerruleset.json +++ b/server/schema/resources/aws-ses-mailmanagerruleset.json @@ -135,7 +135,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov):sns:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:[\\w\\-]{1,256}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws-cn|aws-us-gov|aws-eusc):sns:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:[\\w\\-]{1,256}$ \nUpdate requires: No interruption\n" }, "RoleArn": { "type": "string", @@ -211,6 +211,103 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "BounceAction": { + "type": "object", + "properties": { + "ActionFailurePolicy": { + "$ref": "#/definitions/ActionFailurePolicy" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^[a-zA-Z0-9:_/+=,@.#-]+$ \nUpdate requires: No interruption\n" + }, + "Sender": { + "type": "string", + "maxLength": 254, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 254 \nPattern: ^[0-9A-Za-z@+.-]+$ \nUpdate requires: No interruption\n" + }, + "StatusCode": { + "type": "string", + "minLength": 5, + "maxLength": 9, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 5 \nMaximum Length: 9 \nPattern: ^[45]\\.[0-9]{1,3}\\.[0-9]{1,3}$ \nUpdate requires: No interruption\n" + }, + "SmtpReplyCode": { + "type": "string", + "minLength": 3, + "maxLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 3 \nPattern: ^[45][0-9][0-9]$ \nUpdate requires: No interruption\n" + }, + "DiagnosticMessage": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[\\x20-\\x7e]+$ \nUpdate requires: No interruption\n" + }, + "Message": { + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^[\\r\\n\\x20-\\x7e]+$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RoleArn", + "Sender", + "StatusCode", + "SmtpReplyCode", + "DiagnosticMessage" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LambdaInvocationType": { + "type": "string", + "enum": [ + "EVENT", + "REQUEST_RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: EVENT | REQUEST_RESPONSE \nUpdate requires: No interruption\n" + }, + "InvokeLambdaAction": { + "type": "object", + "properties": { + "ActionFailurePolicy": { + "$ref": "#/definitions/ActionFailurePolicy" + }, + "FunctionArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^[a-zA-Z0-9:_/+=,@.#-]+$ \nUpdate requires: No interruption\n" + }, + "InvocationType": { + "$ref": "#/definitions/LambdaInvocationType" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^[a-zA-Z0-9:_/+=,@.#-]+$ \nUpdate requires: No interruption\n" + }, + "RetryTimeMinutes": { + "type": "integer", + "minimum": 0, + "maximum": 2160, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FunctionArn", + "InvocationType", + "RoleArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "MailFrom": { "type": "string", "enum": [ @@ -435,6 +532,32 @@ "PublishToSns" ], "additionalProperties": false + }, + { + "type": "object", + "title": "Bounce", + "properties": { + "Bounce": { + "$ref": "#/definitions/BounceAction" + } + }, + "required": [ + "Bounce" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "InvokeLambda", + "properties": { + "InvokeLambda": { + "$ref": "#/definitions/InvokeLambdaAction" + } + }, + "required": [ + "InvokeLambda" + ], + "additionalProperties": false } ] }, @@ -865,9 +988,36 @@ "Analysis" ], "additionalProperties": false + }, + { + "type": "object", + "title": "ClientCertificateAttribute", + "properties": { + "ClientCertificateAttribute": { + "$ref": "#/definitions/RuleClientCertificateAttribute" + } + }, + "required": [ + "ClientCertificateAttribute" + ], + "additionalProperties": false } ] }, + "RuleClientCertificateAttribute": { + "type": "string", + "enum": [ + "CN", + "SAN_RFC822_NAME", + "SAN_DNS_NAME", + "SAN_DIRECTORY_NAME", + "SAN_UNIFORM_RESOURCE_IDENTIFIER", + "SAN_IP_ADDRESS", + "SAN_REGISTERED_ID", + "SERIAL_NUMBER" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CN | SAN_RFC822_NAME | SAN_DNS_NAME | SAN_DIRECTORY_NAME | SAN_UNIFORM_RESOURCE_IDENTIFIER | SAN_IP_ADDRESS | SAN_REGISTERED_ID | SERIAL_NUMBER \nUpdate requires: No interruption\n" + }, "RuleVerdict": { "type": "string", "enum": [ diff --git a/server/schema/resources/aws-ses-multiregionendpoint.json b/server/schema/resources/aws-ses-multiregionendpoint.json new file mode 100644 index 00000000..35d9a26f --- /dev/null +++ b/server/schema/resources/aws-ses-multiregionendpoint.json @@ -0,0 +1,162 @@ +{ + "typeName": "AWS::SES::MultiRegionEndpoint", + "description": "Resource Type definition for AWS::SES::MultiRegionEndpoint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ses.git", + "additionalProperties": false, + "properties": { + "EndpointName": { + "type": "string", + "description": "The name of the multi-region endpoint (global-endpoint).", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the multi-region endpoint (global-endpoint).\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w\\-_]+$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "Details": { + "$ref": "#/definitions/Details" + } + }, + "definitions": { + "Details": { + "type": "object", + "description": "Contains details of a multi-region endpoint (global-endpoint) being created.", + "additionalProperties": false, + "required": [ + "RouteDetails" + ], + "properties": { + "RouteDetails": { + "$ref": "#/definitions/RouteDetails" + } + }, + "markdownDescription": "Contains details of a multi-region endpoint (global-endpoint) being created.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "RouteDetails": { + "type": "array", + "description": "A list of route configuration details. Must contain exactly one route configuration", + "minItems": 1, + "maxItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "Region" + ], + "properties": { + "Region": { + "$ref": "#/definitions/Region" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "markdownDescription": "A list of route configuration details. Must contain exactly one route configuration\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Region": { + "description": "The name of an AWS-Region to be a secondary region for the multi-region endpoint (global-endpoint)", + "type": "string", + "markdownDescription": "The name of an AWS-Region to be a secondary region for the multi-region endpoint (global-endpoint)\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "minItems": 0, + "maxItems": 50, + "insertionOrder": false, + "description": "An Array of objects that define the tags (keys and values) to associate with the multi-region endpoint (global-endpoint).", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An Array of objects that define the tags (keys and values) to associate with the multi-region endpoint (global-endpoint).\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "description": "An object that defines the tags that are associated with a resource.", + "additionalProperties": false, + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "One part of a key-value pair that defines a tag.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "One part of a key-value pair that defines a tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "description": "The optional part of a key-value pair that defines a tag.", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The optional part of a key-value pair that defines a tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "An object that defines the tags that are associated with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EndpointName", + "Details" + ], + "createOnlyProperties": [ + "/properties/EndpointName", + "/properties/Details" + ], + "primaryIdentifier": [ + "/properties/EndpointName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ses:TagResource", + "ses:UntagResource", + "ses:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ses:TagResource", + "ses:CreateMultiRegionEndpoint", + "ses:GetMultiRegionEndpoint", + "ses:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "ses:GetMultiRegionEndpoint", + "ses:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ses:GetMultiRegionEndpoint", + "ses:TagResource", + "ses:ListTagsForResource", + "ses:UntagResource" + ] + }, + "delete": { + "permissions": [ + "ses:DeleteMultiRegionEndpoint", + "ses:GetMultiRegionEndpoint" + ] + }, + "list": { + "permissions": [ + "ses:ListMultiRegionEndpoints" + ] + } + }, + "attributes": {} +} \ No newline at end of file diff --git a/server/schema/resources/aws-ses-template.json b/server/schema/resources/aws-ses-template.json index 5c0b660b..5bb44b28 100644 --- a/server/schema/resources/aws-ses-template.json +++ b/server/schema/resources/aws-ses-template.json @@ -35,6 +35,29 @@ "SubjectPart" ], "markdownDescription": "The content of the email, composed of a subject line, an HTML part, and a text-only part\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -44,6 +67,17 @@ }, "Template": { "$ref": "#/definitions/Template" + }, + "Tags": { + "description": "The tags (keys and values) associated with the email template.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "markdownDescription": "The tags (keys and values) associated with the email template.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -57,7 +91,16 @@ "/properties/Template/TemplateName" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ses:TagResource", + "ses:UntagResource", + "ses:ListTagsForResource" + ] }, "handlers": { "create": { @@ -65,13 +108,15 @@ "ses:CreateEmailTemplate", "ses:GetEmailTemplate", "ses:CreateTemplate", - "ses:GetTemplate" + "ses:GetTemplate", + "ses:TagResource" ] }, "read": { "permissions": [ "ses:GetEmailTemplate", - "ses:GetTemplate" + "ses:GetTemplate", + "ses:ListTagsForResource" ] }, "delete": { @@ -85,7 +130,9 @@ "ses:GetEmailTemplate", "ses:UpdateEmailTemplate", "ses:GetTemplate", - "ses:UpdateTemplate" + "ses:UpdateTemplate", + "ses:TagResource", + "ses:UntagResource" ] }, "list": { diff --git a/server/schema/resources/aws-ses-tenant.json b/server/schema/resources/aws-ses-tenant.json new file mode 100644 index 00000000..ddf2037c --- /dev/null +++ b/server/schema/resources/aws-ses-tenant.json @@ -0,0 +1,158 @@ +{ + "typeName": "AWS::SES::Tenant", + "description": "Resource Type definition for AWS::SES::Tenant", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ses.git", + "definitions": { + "Tag": { + "description": "An object that defines the tags (keys and values) that you want to associate with the tenant.", + "type": "object", + "properties": { + "Key": { + "description": "The key of the key-value tag.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The key of the key-value tag.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "The value of the key-value tag.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "The value of the key-value tag.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "An object that defines the tags (keys and values) that you want to associate with the tenant.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceAssociation": { + "description": "The resource to associate with the tenant", + "type": "object", + "properties": { + "ResourceArn": { + "description": "The ARN of the resource to associate with the tenant", + "type": "string", + "minLength": 1, + "markdownDescription": "The ARN of the resource to associate with the tenant\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ResourceArn" + ], + "additionalProperties": false, + "markdownDescription": "The resource to associate with the tenant\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Arn": { + "description": "Amazon Resource Name (ARN) of the tenant.", + "type": "string", + "minLength": 1, + "markdownDescription": "Amazon Resource Name (ARN) of the tenant.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TenantName": { + "description": "The name of the tenant.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The name of the tenant.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w\\-_]+$ \nUpdate requires: Replacement\n" + }, + "ResourceAssociations": { + "description": "The list of resources to associate with the tenant.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceAssociation" + }, + "minItems": 0, + "markdownDescription": "The list of resources to associate with the tenant.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "The tags (keys and values) associated with the tenant.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "markdownDescription": "The tags (keys and values) associated with the tenant.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TenantName" + ], + "createOnlyProperties": [ + "/properties/TenantName" + ], + "primaryIdentifier": [ + "/properties/TenantName" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ses:TagResource", + "ses:UntagResource", + "ses:ListTagsForResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ses:CreateTenant", + "ses:GetTenant", + "ses:CreateTenantResourceAssociation", + "ses:ListTenantResources", + "ses:UntagResource", + "ses:TagResource" + ] + }, + "read": { + "permissions": [ + "ses:GetTenant", + "ses:ListTenantResources" + ] + }, + "update": { + "permissions": [ + "ses:GetTenant", + "ses:CreateTenantResourceAssociation", + "ses:DeleteTenantResourceAssociation", + "ses:ListTenantResources", + "ses:TagResource", + "ses:UntagResource" + ] + }, + "delete": { + "permissions": [ + "ses:GetTenant", + "ses:DeleteTenant" + ] + }, + "list": { + "permissions": [ + "ses:ListTenants" + ] + } + }, + "attributes": { + "Arn": { + "description": "Amazon Resource Name (ARN) of the tenant.", + "type": "string", + "minLength": 1, + "markdownDescription": "Amazon Resource Name (ARN) of the tenant.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-shield-drtaccess.json b/server/schema/resources/aws-shield-drtaccess.json index 0382046f..aa347f12 100644 --- a/server/schema/resources/aws-shield-drtaccess.json +++ b/server/schema/resources/aws-shield-drtaccess.json @@ -9,7 +9,10 @@ "/properties/AccountId" ], "tagging": { - "taggable": false + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false }, "additionalProperties": false, "required": [ diff --git a/server/schema/resources/aws-shield-proactiveengagement.json b/server/schema/resources/aws-shield-proactiveengagement.json index f44c5e3f..128cfd4d 100644 --- a/server/schema/resources/aws-shield-proactiveengagement.json +++ b/server/schema/resources/aws-shield-proactiveengagement.json @@ -9,7 +9,10 @@ "/properties/AccountId" ], "tagging": { - "taggable": false + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false }, "additionalProperties": false, "required": [ diff --git a/server/schema/resources/aws-signer-signingprofile.json b/server/schema/resources/aws-signer-signingprofile.json index cf5e05c0..8d8b1a11 100644 --- a/server/schema/resources/aws-signer-signingprofile.json +++ b/server/schema/resources/aws-signer-signingprofile.json @@ -13,7 +13,7 @@ }, "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(-(cn|us-gov))?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(-[a-z]{1,4}){0,2}:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$ \nUpdate requires: No interruption\n" }, "ProfileName": { "type": "string", diff --git a/server/schema/resources/aws-smsvoice-phonenumber.json b/server/schema/resources/aws-smsvoice-phonenumber.json index 686bc8da..be39b6eb 100644 --- a/server/schema/resources/aws-smsvoice-phonenumber.json +++ b/server/schema/resources/aws-smsvoice-phonenumber.json @@ -26,7 +26,7 @@ "Keyword": { "type": "string", "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 30 \nPattern: ^(?!.*(?i)(stop|help))[ \\S]+ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 30 \nPattern: ^(?!(?i)(stop|help)$)[ \\S]+ \nUpdate requires: No interruption\n" }, "Message": { "type": "string", diff --git a/server/schema/resources/aws-smsvoice-pool.json b/server/schema/resources/aws-smsvoice-pool.json index bc192b5c..a26233f6 100644 --- a/server/schema/resources/aws-smsvoice-pool.json +++ b/server/schema/resources/aws-smsvoice-pool.json @@ -26,7 +26,7 @@ "Keyword": { "type": "string", "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 30 \nPattern: ^(?!.*(?i)(stop|help))[ \\S]+ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 30 \nPattern: ^(?!(?i)(stop|help)$)[ \\S]+ \nUpdate requires: No interruption\n" }, "Message": { "type": "string", diff --git a/server/schema/resources/aws-sns-topicpolicy.json b/server/schema/resources/aws-sns-topicpolicy.json index 758d5676..40ad646a 100644 --- a/server/schema/resources/aws-sns-topicpolicy.json +++ b/server/schema/resources/aws-sns-topicpolicy.json @@ -1,50 +1,11 @@ { - "typeName": "AWS::SNS::TopicPolicy", - "description": "The ``AWS::SNS::TopicPolicy`` resource associates SNS topics with a policy. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sns-policy) in the *User Guide*.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sns.git", - "additionalProperties": false, - "properties": { - "Id": { - "description": "", - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "PolicyDocument": { - "description": "A policy document that contains permissions to add to the specified SNS topics.", - "type": [ - "object", - "string" - ], - "markdownDescription": "A policy document that contains permissions to add to the specified SNS topics.\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nUpdate requires: No interruption\n" - }, - "Topics": { - "description": "The Amazon Resource Names (ARN) of the topics to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SNS::Topic`` resource.", - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "The Amazon Resource Names (ARN) of the topics to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SNS::Topic`` resource.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - } - }, "tagging": { "taggable": false, "tagOnCreate": false, "tagUpdatable": false, "cloudFormationSystemTags": false }, - "required": [ - "PolicyDocument", - "Topics" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" - ], "handlers": { "create": { "permissions": [ @@ -62,6 +23,45 @@ ] } }, + "typeName": "AWS::SNS::TopicPolicy", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "The ``AWS::SNS::TopicPolicy`` resource associates SNS topics with a policy. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sns-policy) in the *User Guide*.", + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Topics": { + "uniqueItems": false, + "description": "The Amazon Resource Names (ARN) of the topics to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SNS::Topic`` resource.", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The Amazon Resource Names (ARN) of the topics to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SNS::Topic`` resource.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "PolicyDocument": { + "description": "A policy document that contains permissions to add to the specified SNS topics.", + "type": [ + "object", + "string" + ], + "markdownDescription": "A policy document that contains permissions to add to the specified SNS topics.\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nUpdate requires: No interruption\n" + }, + "Id": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "required": [ + "PolicyDocument", + "Topics" + ], "attributes": { "Id": { "description": "", diff --git a/server/schema/resources/aws-sqs-queue.json b/server/schema/resources/aws-sqs-queue.json index 0b8026a6..75e5f618 100644 --- a/server/schema/resources/aws-sqs-queue.json +++ b/server/schema/resources/aws-sqs-queue.json @@ -1,6 +1,6 @@ { "typeName": "AWS::SQS::Queue", - "description": "The ``AWS::SQS::Queue`` resource creates an SQS standard or FIFO queue.\n Keep the following caveats in mind:\n + If you don't specify the ``FifoQueue`` property, SQS creates a standard queue.\n You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Developer Guide*. \n + If you don't provide a value for a property, the queue is created with the default value for the property.\n + If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.\n + To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.\n \n For more information about creating FIFO (first-in-first-out) queues, see [Creating an queue ()](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/create-queue-cloudformation.html) in the *Developer Guide*.", + "description": "The ``AWS::SQS::Queue`` resource creates an SQS standard or FIFO queue.\n Keep the following caveats in mind:\n + If you don't specify the ``FifoQueue`` property, SQS creates a standard queue.\n You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Developer Guide*. \n + If you don't provide a value for a property, the queue is created with the default value for the property.\n + If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.\n + To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.\n \n For more information about creating FIFO (first-in-first-out) queues, see [Creating an queue ()](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/screate-queue-cloudformation.html) in the *Developer Guide*.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sqs.git", "definitions": { "Tag": { @@ -54,8 +54,8 @@ }, "FifoQueue": { "type": "boolean", - "description": "If set to true, creates a FIFO queue. If you don't specify this property, SQS creates a standard queue. For more information, see [Amazon SQS FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) in the *Developer Guide*.", - "markdownDescription": "If set to true, creates a FIFO queue. If you don't specify this property, SQS creates a standard queue. For more information, see [Amazon SQS FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) in the *Developer Guide*.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "description": "If set to true, creates a FIFO queue. If you don't specify this property, SQS creates a standard queue. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Developer Guide*.", + "markdownDescription": "If set to true, creates a FIFO queue. If you don't specify this property, SQS creates a standard queue. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Developer Guide*.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "FifoThroughputLimit": { "description": "For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are ``perQueue`` and ``perMessageGroupId``.\n To enable high throughput for a FIFO queue, set this attribute to ``perMessageGroupId`` *and* set the ``DeduplicationScope`` attribute to ``messageGroup``. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Developer Guide*.", @@ -69,8 +69,8 @@ }, "KmsMasterKeyId": { "type": "string", - "description": "The ID of an AWS Key Management Service (KMS) for SQS, or a custom KMS. To use the AWS managed KMS for SQS, specify a (default) alias ARN, alias name (for example ``alias/aws/sqs``), key ARN, or key ID. For more information, see the following:\n + [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Developer Guide* \n + [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *API Reference* \n + [Request Parameters](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) in the *Key Management Service API Reference* \n + The Key Management Service (KMS) section of the [Security best practices for Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) in the *Key Management Service Developer Guide*", - "markdownDescription": "The ID of an AWS Key Management Service (KMS) for SQS, or a custom KMS. To use the AWS managed KMS for SQS, specify a (default) alias ARN, alias name (for example ``alias/aws/sqs``), key ARN, or key ID. For more information, see the following:\n + [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Developer Guide* \n + [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *API Reference* \n + [Request Parameters](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) in the *Key Management Service API Reference* \n + The Key Management Service (KMS) section of the [Security best practices for Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) in the *Key Management Service Developer Guide*\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The ID of an AWS Key Management Service (KMS) for SQS, or a custom KMS. To use the AWS managed KMS for SQS, specify a (default) alias ARN, alias name (e.g. ``alias/aws/sqs``), key ARN, or key ID. For more information, see the following:\n + [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Developer Guide* \n + [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *API Reference* \n + [Request Parameters](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) in the *Key Management Service API Reference* \n + The Key Management Service (KMS) section of the [Best Practices](https://docs.aws.amazon.com/https://d0.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) whitepaper", + "markdownDescription": "The ID of an AWS Key Management Service (KMS) for SQS, or a custom KMS. To use the AWS managed KMS for SQS, specify a (default) alias ARN, alias name (e.g. ``alias/aws/sqs``), key ARN, or key ID. For more information, see the following:\n + [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Developer Guide* \n + [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *API Reference* \n + [Request Parameters](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) in the *Key Management Service API Reference* \n + The Key Management Service (KMS) section of the [Best Practices](https://docs.aws.amazon.com/https://d0.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) whitepaper\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "SqsManagedSseEnabled": { "type": "boolean", @@ -89,8 +89,8 @@ }, "QueueName": { "type": "string", - "description": "A name for the queue. To create a FIFO queue, the name of your FIFO queue must end with the ``.fifo`` suffix. For more information, see [Amazon SQS FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) in the *Developer Guide*.\n If you don't specify a name, CFN generates a unique physical ID and uses that ID for the queue name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", - "markdownDescription": "A name for the queue. To create a FIFO queue, the name of your FIFO queue must end with the ``.fifo`` suffix. For more information, see [Amazon SQS FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) in the *Developer Guide*.\n If you don't specify a name, CFN generates a unique physical ID and uses that ID for the queue name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "description": "A name for the queue. To create a FIFO queue, the name of your FIFO queue must end with the ``.fifo`` suffix. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Developer Guide*.\n If you don't specify a name, CFN generates a unique physical ID and uses that ID for the queue name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", + "markdownDescription": "A name for the queue. To create a FIFO queue, the name of your FIFO queue must end with the ``.fifo`` suffix. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Developer Guide*.\n If you don't specify a name, CFN generates a unique physical ID and uses that ID for the queue name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "ReceiveMessageWaitTimeSeconds": { "type": "integer", @@ -102,16 +102,16 @@ "object", "string" ], - "description": "The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object. The parameters are as follows:\n + ``redrivePermission``: The permission type that defines which source queues can specify the current queue as the dead-letter queue. Valid values are:\n + ``allowAll``: (Default) Any source queues in this AWS account in the same Region can specify this queue as the dead-letter queue.\n + ``denyAll``: No source queues can specify this queue as the dead-letter queue.\n + ``byQueue``: Only queues specified by the ``sourceQueueArns`` parameter can specify this queue as the dead-letter queue.\n \n + ``sourceQueueArns``: The Amazon Resource Names (ARN)s of the source queues that can specify this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the ``redrivePermission`` parameter is set to ``byQueue``. You can specify up to 10 source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the ``redrivePermission`` parameter to ``allowAll``.", - "markdownDescription": "The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object. The parameters are as follows:\n + ``redrivePermission``: The permission type that defines which source queues can specify the current queue as the dead-letter queue. Valid values are:\n + ``allowAll``: (Default) Any source queues in this AWS account in the same Region can specify this queue as the dead-letter queue.\n + ``denyAll``: No source queues can specify this queue as the dead-letter queue.\n + ``byQueue``: Only queues specified by the ``sourceQueueArns`` parameter can specify this queue as the dead-letter queue.\n \n + ``sourceQueueArns``: The Amazon Resource Names (ARN)s of the source queues that can specify this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the ``redrivePermission`` parameter is set to ``byQueue``. You can specify up to 10 source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the ``redrivePermission`` parameter to ``allowAll``.\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" + "description": "The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object. The parameters are as follows:\n + ``redrivePermission``: The permission type that defines which source queues can specify the current queue as the dead-letter queue. Valid values are:\n + ``allowAll``: (Default) Any source queues in this AWS account in the same Region can specify this queue as the dead-letter queue.\n + ``denyAll``: No source queues can specify this queue as the dead-letter queue.\n + ``byQueue``: Only queues specified by the ``sourceQueueArns`` parameter can specify this queue as the dead-letter queue.\n \n + ``sourceQueueArns``: The Amazon Resource Names (ARN)s of the source queues that can specify this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the ``redrivePermission`` parameter is set to ``byQueue``. You can specify up to 10 source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the ``redrivePermission`` parameter to ``allowAll``.", + "markdownDescription": "The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object. The parameters are as follows:\n + ``redrivePermission``: The permission type that defines which source queues can specify the current queue as the dead-letter queue. Valid values are:\n + ``allowAll``: (Default) Any source queues in this AWS account in the same Region can specify this queue as the dead-letter queue.\n + ``denyAll``: No source queues can specify this queue as the dead-letter queue.\n + ``byQueue``: Only queues specified by the ``sourceQueueArns`` parameter can specify this queue as the dead-letter queue.\n \n + ``sourceQueueArns``: The Amazon Resource Names (ARN)s of the source queues that can specify this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the ``redrivePermission`` parameter is set to ``byQueue``. You can specify up to 10 source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the ``redrivePermission`` parameter to ``allowAll``.\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" }, "RedrivePolicy": { "type": [ "object", "string" ], - "description": "The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. The parameters are as follows:\n + ``deadLetterTargetArn``: The Amazon Resource Name (ARN) of the dead-letter queue to which SQS moves messages after the value of ``maxReceiveCount`` is exceeded.\n + ``maxReceiveCount``: The number of times a message is received by a consumer of the source queue before being moved to the dead-letter queue. When the ``ReceiveCount`` for a message exceeds the ``maxReceiveCount`` for a queue, SQS moves the message to the dead-letter-queue.\n \n The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.\n *JSON* \n ``{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }`` \n *YAML* \n ``deadLetterTargetArn : String`` \n ``maxReceiveCount : Integer``", - "markdownDescription": "The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. The parameters are as follows:\n + ``deadLetterTargetArn``: The Amazon Resource Name (ARN) of the dead-letter queue to which SQS moves messages after the value of ``maxReceiveCount`` is exceeded.\n + ``maxReceiveCount``: The number of times a message is received by a consumer of the source queue before being moved to the dead-letter queue. When the ``ReceiveCount`` for a message exceeds the ``maxReceiveCount`` for a queue, SQS moves the message to the dead-letter-queue.\n \n The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.\n *JSON* \n ``{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }`` \n *YAML* \n ``deadLetterTargetArn : String`` \n ``maxReceiveCount : Integer``\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" + "description": "The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. The parameters are as follows:\n + ``deadLetterTargetArn``: The Amazon Resource Name (ARN) of the dead-letter queue to which SQS moves messages after the value of ``maxReceiveCount`` is exceeded.\n + ``maxReceiveCount``: The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ``ReceiveCount`` for a message exceeds the ``maxReceiveCount`` for a queue, SQS moves the message to the dead-letter-queue.\n \n The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.\n *JSON* \n ``{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }`` \n *YAML* \n ``deadLetterTargetArn : String`` \n ``maxReceiveCount : Integer``", + "markdownDescription": "The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. The parameters are as follows:\n + ``deadLetterTargetArn``: The Amazon Resource Name (ARN) of the dead-letter queue to which SQS moves messages after the value of ``maxReceiveCount`` is exceeded.\n + ``maxReceiveCount``: The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ``ReceiveCount`` for a message exceeds the ``maxReceiveCount`` for a queue, SQS moves the message to the dead-letter-queue.\n \n The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.\n *JSON* \n ``{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }`` \n *YAML* \n ``deadLetterTargetArn : String`` \n ``maxReceiveCount : Integer``\n\n---\n\nRequired: No \nType: ['object', 'string'] \nUpdate requires: No interruption\n" }, "Tags": { "type": "array", @@ -145,7 +145,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "sqs:TagQueue", diff --git a/server/schema/resources/aws-sqs-queuepolicy.json b/server/schema/resources/aws-sqs-queuepolicy.json index 40757de1..ba199ea4 100644 --- a/server/schema/resources/aws-sqs-queuepolicy.json +++ b/server/schema/resources/aws-sqs-queuepolicy.json @@ -1,71 +1,71 @@ { + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sqs.git", + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + }, + "update": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + }, + "delete": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + } + }, "typeName": "AWS::SQS::QueuePolicy", + "readOnlyProperties": [ + "/properties/Id" + ], "description": "The ``AWS::SQS::QueuePolicy`` type applies a policy to SQS queues. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *User Guide*.", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sqs.git", "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], "properties": { - "Id": { - "type": "string", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "PolicyDocument": { + "description": "A policy document that contains the permissions for the specified SQS queues. For more information about SQS policies, see [Using custom policies with the access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Developer Guide*.", "type": [ "object", "string" ], - "description": "A policy document that contains the permissions for the specified SQS queues. For more information about SQS policies, see [Using custom policies with the access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Developer Guide*.", "markdownDescription": "A policy document that contains the permissions for the specified SQS queues. For more information about SQS policies, see [Using custom policies with the access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Developer Guide*.\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nUpdate requires: No interruption\n" }, "Queues": { - "type": "array", - "description": "The URLs of the queues to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SQS::Queue`` resource.", "uniqueItems": false, + "description": "The URLs of the queues to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SQS::Queue`` resource.", "insertionOrder": false, + "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "The URLs of the queues to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SQS::Queue`` resource.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Id": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ "PolicyDocument", "Queues" ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, - "handlers": { - "create": { - "permissions": [ - "sqs:SetQueueAttributes" - ] - }, - "update": { - "permissions": [ - "sqs:SetQueueAttributes" - ] - }, - "delete": { - "permissions": [ - "sqs:SetQueueAttributes" - ] - } - }, "attributes": { "Id": { - "type": "string", "description": "", + "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } diff --git a/server/schema/resources/aws-ssm-document.json b/server/schema/resources/aws-ssm-document.json index ed5add35..d0688516 100644 --- a/server/schema/resources/aws-ssm-document.json +++ b/server/schema/resources/aws-ssm-document.json @@ -1,88 +1,186 @@ { + "tagging": { + "permissions": [ + "ssm:AddTagsToResource", + "ssm:ListTagsForResource", + "ssm:RemoveTagsFromResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, "typeName": "AWS::SSM::Document", "description": "The AWS::SSM::Document resource is an SSM document in AWS Systems Manager that defines the actions that Systems Manager performs, which can be used to set up and run commands on your instances.", + "createOnlyProperties": [ + "/properties/Name", + "/properties/DocumentType" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "required": [ + "Content" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Content", + "/properties/Attachments", + "/properties/VersionName", + "/properties/DocumentFormat", + "/properties/TargetType", + "/properties/Requires" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ssm", + "handlers": { + "read": { + "permissions": [ + "ssm:DescribeDocument", + "ssm:GetDocument", + "ssm:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "ssm:CreateDocument", + "ssm:GetDocument", + "ssm:AddTagsToResource", + "ssm:ListTagsForResource", + "s3:GetObject", + "iam:PassRole" + ] + }, + "update": { + "permissions": [ + "ssm:UpdateDocument", + "s3:GetObject", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource", + "iam:PassRole", + "ssm:UpdateDocumentDefaultVersion", + "ssm:DescribeDocument" + ] + }, + "list": { + "permissions": [ + "ssm:ListDocuments" + ] + }, + "delete": { + "permissions": [ + "ssm:DeleteDocument", + "ssm:GetDocument" + ] + } + }, + "writeOnlyProperties": [ + "/properties/UpdateMethod", + "/properties/Attachments" + ], + "additionalProperties": false, "definitions": { "AttachmentsSource": { + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "description": "The key of a key-value pair that identifies the location of an attachment to a document.", - "type": "string", - "enum": [ - "SourceUrl", - "S3FileUrl", - "AttachmentReference" - ], - "markdownDescription": "The key of a key-value pair that identifies the location of an attachment to a document.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SourceUrl | S3FileUrl | AttachmentReference \nUpdate requires: No interruption\n" - }, "Values": { + "minItems": 1, + "maxItems": 1, "description": "The value of a key-value pair that identifies the location of an attachment to a document. The format for Value depends on the type of key you specify.", + "insertionOrder": false, "type": "array", "items": { - "type": "string", "minLength": 1, + "type": "string", "maxLength": 100000, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 100000 \nUpdate requires: No interruption\n" }, - "minItems": 1, - "maxItems": 1, - "insertionOrder": false, "markdownDescription": "The value of a key-value pair that identifies the location of an attachment to a document. The format for Value depends on the type of key you specify.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "Key": { + "description": "The key of a key-value pair that identifies the location of an attachment to a document.", + "type": "string", + "enum": [ + "SourceUrl", + "S3FileUrl", + "AttachmentReference" + ], + "markdownDescription": "The key of a key-value pair that identifies the location of an attachment to a document.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SourceUrl | S3FileUrl | AttachmentReference \nUpdate requires: No interruption\n" + }, "Name": { + "minLength": 1, "description": "The name of the document attachment file.", "type": "string", - "minLength": 1, "maxLength": 128, "markdownDescription": "The name of the document attachment file.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tag": { + "DocumentRequires": { + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "description": "The name of the tag.", + "Version": { + "description": "The document version required by the current document.", "type": "string", - "minLength": 1, - "maxLength": 128, - "markdownDescription": "The name of the tag.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + "maxLength": 8, + "markdownDescription": "The document version required by the current document.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 8 \nPattern: ([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$) \nUpdate requires: No interruption\n" }, - "Value": { - "description": "The value of the tag.", + "Name": { + "description": "The name of the required SSM document. The name can be an Amazon Resource Name (ARN).", "type": "string", - "minLength": 1, - "maxLength": 256, - "markdownDescription": "The value of the tag.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" + "maxLength": 200, + "markdownDescription": "The name of the required SSM document. The name can be an Amazon Resource Name (ARN).\n\n---\n\nRequired: No \nType: String \nMaximum Length: 200 \nPattern: ^[a-zA-Z0-9_\\-.:/]{3,200}$ \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "DocumentRequires": { + "Tag": { + "additionalProperties": false, "type": "object", "properties": { - "Name": { - "description": "The name of the required SSM document. The name can be an Amazon Resource Name (ARN).", + "Value": { + "minLength": 1, + "description": "The value of the tag.", "type": "string", - "maxLength": 200, - "markdownDescription": "The name of the required SSM document. The name can be an Amazon Resource Name (ARN).\n\n---\n\nRequired: No \nType: String \nMaximum Length: 200 \nPattern: ^[a-zA-Z0-9_\\-.:/]{3,200}$ \nUpdate requires: No interruption\n" + "maxLength": 256, + "markdownDescription": "The value of the tag.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" }, - "Version": { - "description": "The document version required by the current document.", + "Key": { + "minLength": 1, + "description": "The name of the tag.", "type": "string", - "maxLength": 8, - "markdownDescription": "The document version required by the current document.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 8 \nPattern: ([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$) \nUpdate requires: No interruption\n" + "maxLength": 128, + "markdownDescription": "The name of the tag.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$ \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { + "DocumentFormat": { + "default": "JSON", + "description": "Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.", + "type": "string", + "enum": [ + "YAML", + "JSON", + "TEXT" + ], + "markdownDescription": "Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.\n\n---\n\nRequired: No \nType: String \nAllowed Values: YAML | JSON | TEXT \nUpdate requires: Some interruptions\n" + }, + "Requires": { + "minItems": 1, + "description": "A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/DocumentRequires" + }, + "markdownDescription": "A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" + }, "Content": { "description": "The content for the Systems Manager document in JSON, YAML or String format.", "type": [ @@ -91,26 +189,10 @@ ], "markdownDescription": "The content for the Systems Manager document in JSON, YAML or String format.\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nUpdate requires: Some interruptions\n" }, - "Attachments": { - "description": "A list of key and value pairs that describe attachments to a version of a document.", - "type": "array", - "items": { - "$ref": "#/definitions/AttachmentsSource" - }, - "minItems": 0, - "maxItems": 20, - "insertionOrder": false, - "markdownDescription": "A list of key and value pairs that describe attachments to a version of a document.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" - }, - "Name": { - "description": "A name for the Systems Manager document.", - "type": "string", - "markdownDescription": "A name for the Systems Manager document.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_\\-.]{3,128}$ \nUpdate requires: Replacement\n" - }, - "VersionName": { - "description": "An optional field specifying the version of the artifact you are creating with the document. This value is unique across all versions of a document, and cannot be changed.", + "TargetType": { + "description": "Specify a target type to define the kinds of resources the document can run on.", "type": "string", - "markdownDescription": "An optional field specifying the version of the artifact you are creating with the document. This value is unique across all versions of a document, and cannot be changed.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_\\-.]{1,128}$ \nUpdate requires: Some interruptions\n" + "markdownDescription": "Specify a target type to define the kinds of resources the document can run on.\n\n---\n\nRequired: No \nType: String \nPattern: ^\\/[\\w\\.\\-\\:\\/]*$ \nUpdate requires: Some interruptions\n" }, "DocumentType": { "description": "The type of document to create.", @@ -134,128 +216,46 @@ ], "markdownDescription": "The type of document to create.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ApplicationConfiguration | ApplicationConfigurationSchema | Automation | Automation.ChangeTemplate | AutoApprovalPolicy | ChangeCalendar | CloudFormation | Command | DeploymentStrategy | ManualApprovalPolicy | Package | Policy | ProblemAnalysis | ProblemAnalysisTemplate | Session \nUpdate requires: Replacement\n" }, - "DocumentFormat": { - "description": "Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.", + "VersionName": { + "description": "An optional field specifying the version of the artifact you are creating with the document. This value is unique across all versions of a document, and cannot be changed.", "type": "string", - "enum": [ - "YAML", - "JSON", - "TEXT" - ], - "default": "JSON", - "markdownDescription": "Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.\n\n---\n\nRequired: No \nType: String \nAllowed Values: YAML | JSON | TEXT \nUpdate requires: Some interruptions\n" + "markdownDescription": "An optional field specifying the version of the artifact you are creating with the document. This value is unique across all versions of a document, and cannot be changed.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_\\-.]{1,128}$ \nUpdate requires: Some interruptions\n" }, - "TargetType": { - "description": "Specify a target type to define the kinds of resources the document can run on.", + "UpdateMethod": { + "default": "Replace", + "description": "Update method - when set to 'Replace', the update will replace the existing document; when set to 'NewVersion', the update will create a new version.", "type": "string", - "markdownDescription": "Specify a target type to define the kinds of resources the document can run on.\n\n---\n\nRequired: No \nType: String \nPattern: ^\\/[\\w\\.\\-\\:\\/]*$ \nUpdate requires: Some interruptions\n" + "enum": [ + "Replace", + "NewVersion" + ], + "markdownDescription": "Update method - when set to 'Replace', the update will replace the existing document; when set to 'NewVersion', the update will create a new version.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Replace | NewVersion \nUpdate requires: No interruption\n" }, - "Tags": { - "description": "Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment.", + "Attachments": { + "minItems": 0, + "maxItems": 20, + "description": "A list of key and value pairs that describe attachments to a version of a document.", + "insertionOrder": false, "type": "array", "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AttachmentsSource" }, + "markdownDescription": "A list of key and value pairs that describe attachments to a version of a document.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" + }, + "Tags": { "maxItems": 1000, + "description": "Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment.", "insertionOrder": false, - "markdownDescription": "Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Requires": { - "description": "A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.", "type": "array", "items": { - "$ref": "#/definitions/DocumentRequires" + "$ref": "#/definitions/Tag" }, - "minItems": 1, - "insertionOrder": false, - "markdownDescription": "A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Some interruptions\n" + "markdownDescription": "Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "UpdateMethod": { - "description": "Update method - when set to 'Replace', the update will replace the existing document; when set to 'NewVersion', the update will create a new version.", + "Name": { + "description": "A name for the Systems Manager document.", "type": "string", - "enum": [ - "Replace", - "NewVersion" - ], - "default": "Replace", - "markdownDescription": "Update method - when set to 'Replace', the update will replace the existing document; when set to 'NewVersion', the update will create a new version.\n\n---\n\nRequired: No \nType: String \nAllowed Values: Replace | NewVersion \nUpdate requires: No interruption\n" - } - }, - "additionalProperties": false, - "required": [ - "Content" - ], - "createOnlyProperties": [ - "/properties/Name", - "/properties/DocumentType" - ], - "conditionalCreateOnlyProperties": [ - "/properties/Content", - "/properties/Attachments", - "/properties/VersionName", - "/properties/DocumentFormat", - "/properties/TargetType", - "/properties/Requires" - ], - "writeOnlyProperties": [ - "/properties/UpdateMethod", - "/properties/Attachments" - ], - "primaryIdentifier": [ - "/properties/Name" - ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags", - "permissions": [ - "ssm:AddTagsToResource", - "ssm:ListTagsForResource", - "ssm:RemoveTagsFromResource" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ssm:CreateDocument", - "ssm:GetDocument", - "ssm:AddTagsToResource", - "ssm:ListTagsForResource", - "s3:GetObject", - "iam:PassRole" - ] - }, - "read": { - "permissions": [ - "ssm:DescribeDocument", - "ssm:GetDocument", - "ssm:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ssm:UpdateDocument", - "s3:GetObject", - "ssm:AddTagsToResource", - "ssm:RemoveTagsFromResource", - "ssm:ListTagsForResource", - "iam:PassRole", - "ssm:UpdateDocumentDefaultVersion", - "ssm:DescribeDocument" - ] - }, - "delete": { - "permissions": [ - "ssm:DeleteDocument", - "ssm:GetDocument" - ] - }, - "list": { - "permissions": [ - "ssm:ListDocuments" - ] + "markdownDescription": "A name for the Systems Manager document.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_\\-.]{3,128}$ \nUpdate requires: Replacement\n" } }, "attributes": {} diff --git a/server/schema/resources/aws-ssm-maintenancewindow.json b/server/schema/resources/aws-ssm-maintenancewindow.json index 55350a08..aeda4f65 100644 --- a/server/schema/resources/aws-ssm-maintenancewindow.json +++ b/server/schema/resources/aws-ssm-maintenancewindow.json @@ -1,59 +1,72 @@ { "typeName": "AWS::SSM::MaintenanceWindow", - "description": "Resource Type definition for AWS::SSM::MaintenanceWindow", + "description": "Resource type definition for AWS::SSM::MaintenanceWindow", "additionalProperties": false, "properties": { + "WindowId": { + "type": "string", + "description": "The ID of the maintenance window.", + "markdownDescription": "The ID of the maintenance window.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "StartDate": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active. StartDate allows you to delay activation of the maintenance window until the specified future date.", + "markdownDescription": "The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active. StartDate allows you to delay activation of the maintenance window until the specified future date.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "A description of the maintenance window.", + "markdownDescription": "A description of the maintenance window.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AllowUnassociatedTargets": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the maintenance window.", + "markdownDescription": "Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the maintenance window.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" }, "Cutoff": { "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "description": "The number of hours before the end of the maintenance window that AWS Systems Manager stops scheduling new tasks for execution.", + "markdownDescription": "The number of hours before the end of the maintenance window that AWS Systems Manager stops scheduling new tasks for execution.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, "Schedule": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The schedule of the maintenance window in the form of a cron or rate expression.", + "markdownDescription": "The schedule of the maintenance window in the form of a cron or rate expression.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Duration": { "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "description": "The duration of the maintenance window in hours.", + "markdownDescription": "The duration of the maintenance window in hours.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, "ScheduleOffset": { "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The number of days to wait to run a maintenance window after the scheduled cron expression date and time.", + "markdownDescription": "The number of days to wait to run a maintenance window after the scheduled cron expression date and time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "EndDate": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive.", + "markdownDescription": "The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Tags": { "type": "array", + "description": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags (key-value pairs). Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in.", "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags (key-value pairs). Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the maintenance window.", + "markdownDescription": "The name of the maintenance window.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "ScheduleTimezone": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format.", + "markdownDescription": "The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "definitions": { @@ -63,11 +76,13 @@ "properties": { "Value": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The value of the tag.", + "markdownDescription": "The value of the tag.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the tag.", + "markdownDescription": "The name of the tag.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -85,15 +100,60 @@ "Name" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/WindowId" ], "readOnlyProperties": [ - "/properties/Id" + "/properties/WindowId" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ssm:ListTagsForResource", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ssm:CreateMaintenanceWindow", + "ssm:AddTagsToResource" + ] + }, + "read": { + "permissions": [ + "ssm:GetMaintenanceWindow", + "ssm:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ssm:UpdateMaintenanceWindow", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource" + ] + }, + "delete": { + "permissions": [ + "ssm:DeleteMaintenanceWindow", + "ssm:GetMaintenanceWindow" + ] + }, + "list": { + "permissions": [ + "ssm:DescribeMaintenanceWindows" + ] + } + }, "attributes": { - "Id": { + "WindowId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The ID of the maintenance window.", + "markdownDescription": "The ID of the maintenance window.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ssm-maintenancewindowtarget.json b/server/schema/resources/aws-ssm-maintenancewindowtarget.json index f16a5feb..953b85c9 100644 --- a/server/schema/resources/aws-ssm-maintenancewindowtarget.json +++ b/server/schema/resources/aws-ssm-maintenancewindowtarget.json @@ -1,39 +1,48 @@ { "typeName": "AWS::SSM::MaintenanceWindowTarget", - "description": "Resource Type definition for AWS::SSM::MaintenanceWindowTarget", + "description": "Resource type definition for AWS::SSM::MaintenanceWindowTarget", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ssm/tree/master/aws-ssm-maintenancewindowtask", "additionalProperties": false, "properties": { "OwnerInformation": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "A user-provided value that will be included in any Amazon CloudWatch Events events that are raised while running tasks for these targets in this maintenance window.", + "markdownDescription": "A user-provided value that will be included in any Amazon CloudWatch Events events that are raised while running tasks for these targets in this maintenance window.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "A description for the target.", + "markdownDescription": "A description for the target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "WindowId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The ID of the maintenance window to register the target with.", + "markdownDescription": "The ID of the maintenance window to register the target with.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "ResourceType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "The type of target that is being registered with the maintenance window.", + "markdownDescription": "The type of target that is being registered with the maintenance window.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "Targets": { "type": "array", + "description": "The targets to register with the maintenance window.", "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/Targets" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The targets to register with the maintenance window.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "Id": { + "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The name for the maintenance window target.", + "markdownDescription": "The name for the maintenance window target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Name": { + "WindowTargetId": { + "description": "The ID of the target.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The ID of the target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -43,16 +52,19 @@ "properties": { "Values": { "type": "array", + "description": "User-defined criteria that maps to Key.", "uniqueItems": false, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "User-defined criteria that maps to Key.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "Key": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "User-defined criteria for sending commands that target managed nodes that meet the criteria.", + "markdownDescription": "User-defined criteria for sending commands that target managed nodes that meet the criteria.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -71,15 +83,59 @@ "/properties/WindowId" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/WindowId", + "/properties/WindowTargetId" ], "readOnlyProperties": [ - "/properties/Id" + "/properties/WindowTargetId" ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "ssm:DescribeMaintenanceWindowTargets", + "ssm:RegisterTargetWithMaintenanceWindow" + ] + }, + "read": { + "permissions": [ + "ssm:DescribeMaintenanceWindowTargets" + ] + }, + "update": { + "permissions": [ + "ssm:UpdateMaintenanceWindowTarget" + ] + }, + "delete": { + "permissions": [ + "ssm:DescribeMaintenanceWindowTargets", + "ssm:DeregisterTargetFromMaintenanceWindow" + ] + }, + "list": { + "permissions": [ + "ssm:DescribeMaintenanceWindowTargets" + ], + "handlerSchema": { + "properties": { + "WindowId": { + "$ref": "resource-schema.json#/properties/WindowId" + } + }, + "required": [ + "WindowId" + ] + } + } + }, "attributes": { - "Id": { + "WindowTargetId": { + "description": "The ID of the target.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The ID of the target.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ssm-maintenancewindowtask.json b/server/schema/resources/aws-ssm-maintenancewindowtask.json index b5423501..409ac00c 100644 --- a/server/schema/resources/aws-ssm-maintenancewindowtask.json +++ b/server/schema/resources/aws-ssm-maintenancewindowtask.json @@ -1,71 +1,8 @@ { "typeName": "AWS::SSM::MaintenanceWindowTask", "description": "Resource Type definition for AWS::SSM::MaintenanceWindowTask", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ssm/tree/master/aws-ssm-maintenancewindowtask", "additionalProperties": false, - "properties": { - "MaxErrors": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Description": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "ServiceRoleArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Priority": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaxConcurrency": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Targets": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Target" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "TaskArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "TaskInvocationParameters": { - "$ref": "#/definitions/TaskInvocationParameters" - }, - "WindowId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "TaskParameters": { - "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TaskType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "CutoffBehavior": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "LoggingInfo": { - "$ref": "#/definitions/LoggingInfo" - } - }, "definitions": { "TaskInvocationParameters": { "type": "object", @@ -116,11 +53,13 @@ "properties": { "CloudWatchOutputEnabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "description": "Enables Systems Manager to send command output to CloudWatch Logs.", + "markdownDescription": "Enables Systems Manager to send command output to CloudWatch Logs.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "CloudWatchLogGroupName": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The name of the CloudWatch log group where you want to send command output.", + "markdownDescription": "The name of the CloudWatch log group where you want to send command output.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -272,6 +211,95 @@ } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ParameterValues": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "properties": { + "MaxErrors": { + "type": "string", + "description": "The maximum number of errors allowed before this task stops being scheduled.", + "markdownDescription": "The maximum number of errors allowed before this task stops being scheduled.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "description": "A description of the task.", + "markdownDescription": "A description of the task.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ServiceRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the IAM service role for AWS Systems Manager to assume when running a maintenance window task.", + "markdownDescription": "The Amazon Resource Name (ARN) of the IAM service role for AWS Systems Manager to assume when running a maintenance window task.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Priority": { + "type": "integer", + "description": "The priority of the task in the maintenance window. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.", + "markdownDescription": "The priority of the task in the maintenance window. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "MaxConcurrency": { + "type": "string", + "description": "The maximum number of targets this task can be run for, in parallel.", + "markdownDescription": "The maximum number of targets this task can be run for, in parallel.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Targets": { + "type": "array", + "description": "The targets (either instances or window target ids).", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Target" + }, + "markdownDescription": "The targets (either instances or window target ids).\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "description": "The task name.", + "markdownDescription": "The task name.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TaskArn": { + "type": "string", + "description": "The resource that the task uses during execution.", + "markdownDescription": "The resource that the task uses during execution.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "TaskInvocationParameters": { + "$ref": "#/definitions/TaskInvocationParameters", + "description": "The parameters to pass to the task when it runs. Populate only the fields that match the task type. All other fields should be empty.", + "markdownDescription": "The parameters to pass to the task when it runs. Populate only the fields that match the task type. All other fields should be empty.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "WindowId": { + "type": "string", + "description": "The ID of the maintenance window where the task is registered.", + "markdownDescription": "The ID of the maintenance window where the task is registered.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "TaskParameters": { + "type": "object", + "description": "The parameters to pass to the task when it runs.", + "markdownDescription": "The parameters to pass to the task when it runs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TaskType": { + "type": "string", + "description": "The type of task.", + "markdownDescription": "The type of task.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "CutoffBehavior": { + "type": "string", + "description": "The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached.", + "markdownDescription": "The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "WindowTaskId": { + "type": "string", + "description": "Unique identifier of the maintenance window task.", + "markdownDescription": "Unique identifier of the maintenance window task.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LoggingInfo": { + "$ref": "#/definitions/LoggingInfo", + "description": "Information about an Amazon S3 bucket to write Run Command task-level logs to.", + "markdownDescription": "Information about an Amazon S3 bucket to write Run Command task-level logs to.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -284,16 +312,64 @@ "/properties/WindowId", "/properties/TaskType" ], - "primaryIdentifier": [ - "/properties/Id" - ], "readOnlyProperties": [ - "/properties/Id" + "/properties/WindowTaskId" ], + "primaryIdentifier": [ + "/properties/WindowId", + "/properties/WindowTaskId" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "ssm:GetMaintenanceWindowTask", + "ssm:RegisterTaskWithMaintenanceWindow" + ] + }, + "read": { + "permissions": [ + "ssm:GetMaintenanceWindowTask" + ] + }, + "update": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "ssm:UpdateMaintenanceWindowTask" + ] + }, + "delete": { + "permissions": [ + "ssm:DeregisterTaskFromMaintenanceWindow", + "ssm:GetMaintenanceWindowTask" + ] + }, + "list": { + "permissions": [ + "ssm:DescribeMaintenanceWindowTasks" + ], + "handlerSchema": { + "properties": { + "WindowId": { + "$ref": "resource-schema.json#/properties/WindowId" + } + }, + "required": [ + "WindowId" + ] + } + } + }, "attributes": { - "Id": { + "WindowTaskId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier of the maintenance window task.", + "markdownDescription": "Unique identifier of the maintenance window task.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json b/server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json new file mode 100644 index 00000000..60189d79 --- /dev/null +++ b/server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json @@ -0,0 +1,150 @@ +{ + "typeName": "AWS::SSMQuickSetup::LifecycleAutomation", + "description": "Resource Type definition for AWS::SSMQuickSetup::LifecycleAutomation that executes SSM Automation documents in response to CloudFormation lifecycle events.", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false, + "permissions": [ + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource" + ] + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "AutomationParameters": { + "type": "object", + "description": "Parameters to be passed to the Automation Document", + "patternProperties": { + "^[a-zA-Z0-9_]+$": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Parameters to be passed to the Automation Document\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "patternProperties": { + "^[A-Za-z0-9 +=@_\\/:.-]+$": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[A-Za-z0-9 +=@_\\/:.-]+$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AutomationDocument": { + "description": "The name of the Automation document to execute", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The name of the Automation document to execute\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^\\S+$ \nUpdate requires: No interruption\n" + }, + "AutomationParameters": { + "$ref": "#/definitions/AutomationParameters" + }, + "ResourceKey": { + "description": "A unique identifier used for generating a unique logical ID for the custom resource", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "A unique identifier used for generating a unique logical ID for the custom resource\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: Replacement\n" + }, + "AssociationId": { + "description": "The id from the association that is returned when creating the association", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The id from the association that is returned when creating the association\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "additionalProperties": false, + "required": [ + "AutomationDocument", + "ResourceKey", + "AutomationParameters" + ], + "readOnlyProperties": [ + "/properties/AssociationId" + ], + "primaryIdentifier": [ + "/properties/AssociationId" + ], + "createOnlyProperties": [ + "/properties/ResourceKey" + ], + "handlers": { + "create": { + "permissions": [ + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:DescribeAssociationExecutions", + "ssm:DescribeAssociationExecutionTargets", + "ssm:GetAutomationExecution", + "ssm:AddTagsToResource", + "ssm:ListTagsForResource", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "ssm:DescribeAssociation", + "ssm:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ssm:DescribeAssociation", + "ssm:UpdateAssociation", + "ssm:DescribeAssociationExecutions", + "ssm:DescribeAssociationExecutionTargets", + "ssm:GetAutomationExecution", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "ssm:DeleteAssociation", + "ssm:UpdateAssociation", + "ssm:DescribeAssociation", + "ssm:DescribeAssociationExecutions", + "ssm:DescribeAssociationExecutionTargets", + "ssm:GetAutomationExecution", + "iam:PassRole" + ] + }, + "list": { + "permissions": [ + "ssm:ListAssociations" + ] + } + }, + "attributes": { + "AssociationId": { + "description": "The id from the association that is returned when creating the association", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The id from the association that is returned when creating the association\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-sso-application.json b/server/schema/resources/aws-sso-application.json index e0e17db2..a4f544bf 100644 --- a/server/schema/resources/aws-sso-application.json +++ b/server/schema/resources/aws-sso-application.json @@ -98,21 +98,21 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The ARN of the instance of IAM Identity Center under which the operation will run\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: Replacement\n" + "markdownDescription": "The ARN of the instance of IAM Identity Center under which the operation will run\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:aws(-[a-z]{1,5}){0,3}:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: Replacement\n" }, "ApplicationArn": { "description": "The Application ARN that is returned upon creation of the Identity Center (SSO) Application", "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The Application ARN that is returned upon creation of the Identity Center (SSO) Application\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Application ARN that is returned upon creation of the Identity Center (SSO) Application\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:aws(-[a-z]{1,5}){0,3}:sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ApplicationProviderArn": { "description": "The ARN of the application provider under which the operation will run", "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The ARN of the application provider under which the operation will run\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::aws:applicationProvider/[a-zA-Z0-9-/]+$ \nUpdate requires: Replacement\n" + "markdownDescription": "The ARN of the application provider under which the operation will run\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:aws(-[a-z]{1,5}){0,3}:sso::aws:applicationProvider/[a-zA-Z0-9-/]+$ \nUpdate requires: Replacement\n" }, "Status": { "description": "Specifies whether the application is enabled or disabled", @@ -220,7 +220,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The Application ARN that is returned upon creation of the Identity Center (SSO) Application\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The Application ARN that is returned upon creation of the Identity Center (SSO) Application\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:aws(-[a-z]{1,5}){0,3}:sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-sso-applicationassignment.json b/server/schema/resources/aws-sso-applicationassignment.json index 38492e29..e7e27360 100644 --- a/server/schema/resources/aws-sso-applicationassignment.json +++ b/server/schema/resources/aws-sso-applicationassignment.json @@ -13,7 +13,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The ARN of the application.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16} \nUpdate requires: Replacement\n" + "markdownDescription": "The ARN of the application.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16} \nUpdate requires: Replacement\n" }, "PrincipalType": { "description": "The entity type for which the assignment will be created.", diff --git a/server/schema/resources/aws-sso-assignment.json b/server/schema/resources/aws-sso-assignment.json index c439bbbd..96dfdfab 100644 --- a/server/schema/resources/aws-sso-assignment.json +++ b/server/schema/resources/aws-sso-assignment.json @@ -13,7 +13,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The sso instance that the permission set is owned.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16} \nUpdate requires: Replacement\n" + "markdownDescription": "The sso instance that the permission set is owned.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16} \nUpdate requires: Replacement\n" }, "TargetId": { "description": "The account id to be provisioned.", @@ -21,19 +21,19 @@ "markdownDescription": "The account id to be provisioned.\n\n---\n\nRequired: Yes \nType: String \nPattern: \\d{12} \nUpdate requires: Replacement\n" }, "TargetType": { - "description": "The type of resource to be provsioned to, only aws account now", + "description": "The type of resource to be provisioned to, only aws account now", "type": "string", "enum": [ "AWS_ACCOUNT" ], - "markdownDescription": "The type of resource to be provsioned to, only aws account now\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AWS_ACCOUNT \nUpdate requires: Replacement\n" + "markdownDescription": "The type of resource to be provisioned to, only aws account now\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: AWS_ACCOUNT \nUpdate requires: Replacement\n" }, "PermissionSetArn": { - "description": "The permission set that the assignemt will be assigned", + "description": "The permission set that the assignment will be assigned", "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The permission set that the assignemt will be assigned\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16} \nUpdate requires: Replacement\n" + "markdownDescription": "The permission set that the assignment will be assigned\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16} \nUpdate requires: Replacement\n" }, "PrincipalType": { "description": "The assignee's type, user/group", @@ -108,6 +108,36 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + }, + "PermissionSetArn": { + "$ref": "resource-schema.json#/properties/PermissionSetArn" + }, + "PrincipalId": { + "$ref": "resource-schema.json#/properties/PrincipalId" + }, + "PrincipalType": { + "$ref": "resource-schema.json#/properties/PrincipalType" + }, + "TargetId": { + "$ref": "resource-schema.json#/properties/TargetId" + }, + "TargetType": { + "$ref": "resource-schema.json#/properties/TargetType" + } + }, + "required": [ + "InstanceArn", + "PermissionSetArn", + "PrincipalId", + "PrincipalType", + "TargetId", + "TargetType" + ] + }, "permissions": [ "sso:ListAccountAssignments", "iam:ListRolePolicies" diff --git a/server/schema/resources/aws-sso-instance.json b/server/schema/resources/aws-sso-instance.json index 8bde3c98..7022546f 100644 --- a/server/schema/resources/aws-sso-instance.json +++ b/server/schema/resources/aws-sso-instance.json @@ -41,7 +41,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The SSO Instance ARN that is returned upon creation of the Identity Center (SSO) Instance\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The SSO Instance ARN that is returned upon creation of the Identity Center (SSO) Instance\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:aws(-[a-z]{1,5}){0,3}:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "OwnerAccountId": { "description": "The AWS accountId of the owner of the Identity Center (SSO) Instance", @@ -147,7 +147,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The SSO Instance ARN that is returned upon creation of the Identity Center (SSO) Instance\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The SSO Instance ARN that is returned upon creation of the Identity Center (SSO) Instance\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: ^arn:aws(-[a-z]{1,5}){0,3}:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "OwnerAccountId": { "description": "The AWS accountId of the owner of the Identity Center (SSO) Instance", diff --git a/server/schema/resources/aws-sso-instanceaccesscontrolattributeconfiguration.json b/server/schema/resources/aws-sso-instanceaccesscontrolattributeconfiguration.json index 220be288..de774ccd 100644 --- a/server/schema/resources/aws-sso-instanceaccesscontrolattributeconfiguration.json +++ b/server/schema/resources/aws-sso-instanceaccesscontrolattributeconfiguration.json @@ -72,7 +72,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The ARN of the AWS SSO instance under which the operation will be executed.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16} \nUpdate requires: Replacement\n" + "markdownDescription": "The ARN of the AWS SSO instance under which the operation will be executed.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16} \nUpdate requires: Replacement\n" }, "InstanceAccessControlAttributeConfiguration": { "description": "The InstanceAccessControlAttributeConfiguration property has been deprecated but is still supported for backwards compatibility purposes. We recomend that you use AccessControlAttributes property instead.", @@ -128,6 +128,16 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, "permissions": [ "sso:DescribeInstanceAccessControlAttributeConfiguration" ] diff --git a/server/schema/resources/aws-sso-permissionset.json b/server/schema/resources/aws-sso-permissionset.json index 76d95e54..e206584a 100644 --- a/server/schema/resources/aws-sso-permissionset.json +++ b/server/schema/resources/aws-sso-permissionset.json @@ -83,7 +83,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The permission set that the policy will be attached to\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The permission set that the policy will be attached to\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16} \nUpdate requires: No interruption\nRead only property: Yes" }, "Description": { "description": "The permission set description.", @@ -97,7 +97,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The sso instance arn that the permission set is owned.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16} \nUpdate requires: Replacement\n" + "markdownDescription": "The sso instance arn that the permission set is owned.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16} \nUpdate requires: Replacement\n" }, "SessionDuration": { "description": "The length of time that a user can be signed in to an AWS account.", @@ -167,7 +167,8 @@ "tagProperty": "/properties/Tags", "permissions": [ "sso:TagResource", - "sso:UntagResource" + "sso:UntagResource", + "sso:ListTagsForResource" ] }, "createOnlyProperties": [ @@ -237,8 +238,18 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, "permissions": [ - "sso:DescribePermissionSet" + "sso:ListPermissionSets" ] } }, @@ -248,7 +259,7 @@ "type": "string", "minLength": 10, "maxLength": 1224, - "markdownDescription": "The permission set that the policy will be attached to\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The permission set that the policy will be attached to\n\n---\n\nRequired: No \nType: String \nMinimum Length: 10 \nMaximum Length: 1224 \nPattern: arn:aws(-[a-z]{1,5}){0,3}:sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16} \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-stepfunctions-statemachinealias.json b/server/schema/resources/aws-stepfunctions-statemachinealias.json index 4985cba4..bda803f5 100644 --- a/server/schema/resources/aws-stepfunctions-statemachinealias.json +++ b/server/schema/resources/aws-stepfunctions-statemachinealias.json @@ -106,6 +106,12 @@ "description": "The ARN of the alias.", "markdownDescription": "The ARN of the alias.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" }, + "StateMachineArn": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, "Name": { "type": "string", "description": "The alias name.", @@ -187,12 +193,12 @@ ], "handlerSchema": { "properties": { - "RoutingConfiguration": { - "$ref": "resource-schema.json#/properties/RoutingConfiguration" + "StateMachineArn": { + "$ref": "resource-schema.json#/properties/StateMachineArn" } }, "required": [ - "RoutingConfiguration" + "StateMachineArn" ] } } diff --git a/server/schema/resources/aws-synthetics-canary.json b/server/schema/resources/aws-synthetics-canary.json index 49f7b440..bc803ef0 100644 --- a/server/schema/resources/aws-synthetics-canary.json +++ b/server/schema/resources/aws-synthetics-canary.json @@ -195,20 +195,41 @@ "$ref": "#/definitions/Dependency" }, "markdownDescription": "List of Lambda layers to attach to the canary\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BlueprintTypes": { + "type": "array", + "maxItems": 1, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" } }, - "required": [ - "Handler" - ], "oneOf": [ { "required": [ + "Handler", + "S3Bucket", + "S3Key" + ] + }, + { + "required": [ + "BlueprintTypes", "S3Bucket", "S3Key" ] }, { "required": [ + "Handler", + "Script" + ] + }, + { + "required": [ + "BlueprintTypes", "Script" ] } diff --git a/server/schema/resources/aws-timestream-influxdbcluster.json b/server/schema/resources/aws-timestream-influxdbcluster.json new file mode 100644 index 00000000..006e9d63 --- /dev/null +++ b/server/schema/resources/aws-timestream-influxdbcluster.json @@ -0,0 +1,443 @@ +{ + "typeName": "AWS::Timestream::InfluxDBCluster", + "description": "The AWS::Timestream::InfluxDBCluster resource creates an InfluxDB cluster.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-timestream.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "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 -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "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 -. ", + "minLength": 0, + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Username": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "description": "The username for the InfluxDB cluster.", + "markdownDescription": "The username for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "Password": { + "type": "string", + "minLength": 8, + "maxLength": 64, + "description": "The password for the InfluxDB cluster.", + "markdownDescription": "The password for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 8 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9]+$ \nUpdate requires: Replacement\n" + }, + "Organization": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "description": "The organization for the InfluxDB cluster.", + "markdownDescription": "The organization for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: Replacement\n" + }, + "Bucket": { + "type": "string", + "minLength": 2, + "maxLength": 64, + "description": "The bucket for the InfluxDB cluster.", + "markdownDescription": "The bucket for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 64 \nPattern: ^[^_][^\"]*$ \nUpdate requires: Replacement\n" + }, + "DbInstanceType": { + "type": "string", + "enum": [ + "db.influx.medium", + "db.influx.large", + "db.influx.xlarge", + "db.influx.2xlarge", + "db.influx.4xlarge", + "db.influx.8xlarge", + "db.influx.12xlarge", + "db.influx.16xlarge", + "db.influx.24xlarge" + ], + "description": "The compute instance of the InfluxDB cluster.", + "markdownDescription": "The compute instance of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: db.influx.medium | db.influx.large | db.influx.xlarge | db.influx.2xlarge | db.influx.4xlarge | db.influx.8xlarge | db.influx.12xlarge | db.influx.16xlarge | db.influx.24xlarge \nUpdate requires: No interruption\n" + }, + "VpcSubnetIds": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 3, + "description": "A list of EC2 subnet IDs for this InfluxDB cluster.", + "markdownDescription": "A list of EC2 subnet IDs for this InfluxDB cluster.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "VpcSecurityGroupIds": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "maxItems": 5, + "description": "A list of Amazon EC2 VPC security groups to associate with this InfluxDB cluster.", + "markdownDescription": "A list of Amazon EC2 VPC security groups to associate with this InfluxDB cluster.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "PubliclyAccessible": { + "type": "boolean", + "description": "Attach a public IP to the customer ENI.", + "default": false, + "markdownDescription": "Attach a public IP to the customer ENI.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "DbStorageType": { + "type": "string", + "enum": [ + "InfluxIOIncludedT1", + "InfluxIOIncludedT2", + "InfluxIOIncludedT3" + ], + "description": "The storage type of the InfluxDB cluster.", + "markdownDescription": "The storage type of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: InfluxIOIncludedT1 | InfluxIOIncludedT2 | InfluxIOIncludedT3 \nUpdate requires: Replacement\n" + }, + "AllocatedStorage": { + "type": "integer", + "minimum": 20, + "maximum": 15360, + "description": "The allocated storage for the InfluxDB cluster.", + "markdownDescription": "The allocated storage for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" + }, + "DbParameterGroupIdentifier": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The name of an existing InfluxDB parameter group.", + "markdownDescription": "The name of an existing InfluxDB parameter group.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9]+$ \nUpdate requires: No interruption\n" + }, + "Port": { + "type": "integer", + "minimum": 1024, + "maximum": 65535, + "description": "The port number on which InfluxDB accepts connections.", + "markdownDescription": "The port number on which InfluxDB accepts connections.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "LogDeliveryConfiguration": { + "type": "object", + "description": "Configuration for sending logs to customer account from the InfluxDB cluster.", + "properties": { + "S3Configuration": { + "description": "S3 configuration for sending logs to customer account from the InfluxDB cluster.", + "type": "object", + "properties": { + "BucketName": { + "description": "The bucket name for logs to be sent from the InfluxDB cluster", + "type": "string", + "minLength": 3, + "maxLength": 63, + "markdownDescription": "The bucket name for logs to be sent from the InfluxDB cluster\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 63 \nPattern: ^[0-9a-z]+[0-9a-z\\.\\-]*[0-9a-z]+$ \nUpdate requires: No interruption\n" + }, + "Enabled": { + "description": "Specifies whether logging to customer specified bucket is enabled.", + "type": "boolean", + "markdownDescription": "Specifies whether logging to customer specified bucket is enabled.\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Enabled", + "BucketName" + ], + "additionalProperties": false, + "markdownDescription": "S3 configuration for sending logs to customer account from the InfluxDB cluster.\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "S3Configuration" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for sending logs to customer account from the InfluxDB cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "description": "Status of the InfluxDB cluster.", + "enum": [ + "CREATING", + "UPDATING", + "UPDATING_INSTANCE_TYPE", + "MAINTENANCE", + "DELETING", + "AVAILABLE", + "REBOOTING", + "REBOOT_FAILED", + "PARTIALLY_AVAILABLE", + "FAILED", + "DELETED" + ], + "markdownDescription": "Status of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | UPDATING | UPDATING_INSTANCE_TYPE | MAINTENANCE | DELETING | AVAILABLE | REBOOTING | REBOOT_FAILED | PARTIALLY_AVAILABLE | FAILED | DELETED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "description": "The Amazon Resource Name (ARN) that is associated with the InfluxDB cluster.", + "markdownDescription": "The Amazon Resource Name (ARN) that is associated with the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws[a-z\\-]*:timestream\\-influxdb:[a-z0-9\\-]+:[0-9]{12}:(db\\-instance|db\\-cluster|db\\-parameter\\-group)/[a-zA-Z0-9]{3,64}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "type": "string", + "minLength": 3, + "maxLength": 40, + "description": "The unique name that is associated with the InfluxDB cluster.", + "markdownDescription": "The unique name that is associated with the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 40 \nPattern: ^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$ \nUpdate requires: Replacement\n" + }, + "Endpoint": { + "type": "string", + "description": "The connection endpoint for the InfluxDB cluster.", + "markdownDescription": "The connection endpoint for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReaderEndpoint": { + "type": "string", + "description": "The reader endpoint for the InfluxDB cluster.", + "markdownDescription": "The reader endpoint for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "InfluxAuthParametersSecretArn": { + "type": "string", + "description": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB cluster.", + "markdownDescription": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z]*:secretsmanager:[a-z\\-0-9]*:[0-9]*:secret:[a-zA-Z0-9\\-]* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The service generated unique identifier for InfluxDB cluster.", + "markdownDescription": "The service generated unique identifier for InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeploymentType": { + "type": "string", + "description": "Deployment type of the InfluxDB cluster.", + "enum": [ + "MULTI_NODE_READ_REPLICAS" + ], + "markdownDescription": "Deployment type of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: MULTI_NODE_READ_REPLICAS \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "maxItems": 200, + "description": "An arbitrary set of tags (key-value pairs) for this DB cluster.", + "markdownDescription": "An arbitrary set of tags (key-value pairs) for this DB cluster.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "NetworkType": { + "type": "string", + "description": "Network type of the InfluxDB cluster.", + "enum": [ + "IPV4", + "DUAL" + ], + "markdownDescription": "Network type of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUAL \nUpdate requires: Replacement\n" + }, + "FailoverMode": { + "type": "string", + "description": "Failover mode of the InfluxDB cluster.", + "enum": [ + "AUTOMATIC", + "NO_FAILOVER" + ], + "markdownDescription": "Failover mode of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: AUTOMATIC | NO_FAILOVER \nUpdate requires: No interruption\n" + }, + "EngineType": { + "type": "string", + "enum": [ + "INFLUXDB_V2", + "INFLUXDB_V3_CORE", + "INFLUXDB_V3_ENTERPRISE" + ], + "description": "The engine type for the InfluxDB cluster.", + "markdownDescription": "The engine type for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: INFLUXDB_V2 | INFLUXDB_V3_CORE | INFLUXDB_V3_ENTERPRISE \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "timestream-influxdb:TagResource", + "timestream-influxdb:ListTagsForResource", + "timestream-influxdb:UntagResource" + ] + }, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Username", + "/properties/Password", + "/properties/Organization", + "/properties/Bucket", + "/properties/VpcSubnetIds", + "/properties/VpcSecurityGroupIds", + "/properties/PubliclyAccessible", + "/properties/DbStorageType", + "/properties/AllocatedStorage", + "/properties/DeploymentType", + "/properties/NetworkType" + ], + "writeOnlyProperties": [ + "/properties/Username", + "/properties/Password", + "/properties/Organization", + "/properties/Bucket" + ], + "readOnlyProperties": [ + "/properties/Status", + "/properties/Arn", + "/properties/Id", + "/properties/Endpoint", + "/properties/ReaderEndpoint", + "/properties/InfluxAuthParametersSecretArn", + "/properties/EngineType" + ], + "handlers": { + "create": { + "permissions": [ + "s3:ListBucket", + "s3:GetBucketPolicy", + "timestream-influxdb:CreateDbInstance", + "timestream-influxdb:GetDbCluster", + "timestream-influxdb:GetDbParameterGroup", + "timestream-influxdb:ListDbClusters", + "timestream-influxdb:CreateDbCluster", + "timestream-influxdb:TagResource", + "timestream-influxdb:ListTagsForResource", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:CreateNetworkInterface", + "ec2:DescribeRouteTables", + "ec2:DescribeVpcEndpoints", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "timestream-influxdb:GetDbCluster", + "timestream-influxdb:ListTagsForResource" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "s3:ListBucket", + "s3:GetBucketPolicy", + "timestream-influxdb:UpdateDbInstance", + "timestream-influxdb:GetDbCluster", + "timestream-influxdb:ListDbClusters", + "timestream-influxdb:UpdateDbCluster", + "timestream-influxdb:TagResource", + "timestream-influxdb:UntagResource", + "timestream-influxdb:ListTagsForResource", + "ec2:DescribeSubnets", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "timestream-influxdb:DeleteDbInstance", + "timestream-influxdb:GetDbCluster", + "timestream-influxdb:ListDbClusters", + "timestream-influxdb:DeleteDbCluster" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "timestream-influxdb:ListDbClusters" + ], + "timeoutInMinutes": 2160 + } + }, + "attributes": { + "Status": { + "type": "string", + "description": "Status of the InfluxDB cluster.", + "enum": [ + "CREATING", + "UPDATING", + "UPDATING_INSTANCE_TYPE", + "MAINTENANCE", + "DELETING", + "AVAILABLE", + "REBOOTING", + "REBOOT_FAILED", + "PARTIALLY_AVAILABLE", + "FAILED", + "DELETED" + ], + "markdownDescription": "Status of the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | UPDATING | UPDATING_INSTANCE_TYPE | MAINTENANCE | DELETING | AVAILABLE | REBOOTING | REBOOT_FAILED | PARTIALLY_AVAILABLE | FAILED | DELETED \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "description": "The Amazon Resource Name (ARN) that is associated with the InfluxDB cluster.", + "markdownDescription": "The Amazon Resource Name (ARN) that is associated with the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws[a-z\\-]*:timestream\\-influxdb:[a-z0-9\\-]+:[0-9]{12}:(db\\-instance|db\\-cluster|db\\-parameter\\-group)/[a-zA-Z0-9]{3,64}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Endpoint": { + "type": "string", + "description": "The connection endpoint for the InfluxDB cluster.", + "markdownDescription": "The connection endpoint for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ReaderEndpoint": { + "type": "string", + "description": "The reader endpoint for the InfluxDB cluster.", + "markdownDescription": "The reader endpoint for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "InfluxAuthParametersSecretArn": { + "type": "string", + "description": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB cluster.", + "markdownDescription": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:[a-z]*:secretsmanager:[a-z\\-0-9]*:[0-9]*:secret:[a-zA-Z0-9\\-]* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Id": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "description": "The service generated unique identifier for InfluxDB cluster.", + "markdownDescription": "The service generated unique identifier for InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EngineType": { + "type": "string", + "enum": [ + "INFLUXDB_V2", + "INFLUXDB_V3_CORE", + "INFLUXDB_V3_ENTERPRISE" + ], + "description": "The engine type for the InfluxDB cluster.", + "markdownDescription": "The engine type for the InfluxDB cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: INFLUXDB_V2 | INFLUXDB_V3_CORE | INFLUXDB_V3_ENTERPRISE \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-timestream-influxdbinstance.json b/server/schema/resources/aws-timestream-influxdbinstance.json index a5d2930f..a30c5ca9 100644 --- a/server/schema/resources/aws-timestream-influxdbinstance.json +++ b/server/schema/resources/aws-timestream-influxdbinstance.json @@ -187,13 +187,16 @@ "AVAILABLE", "DELETING", "MODIFYING", + "MAINTENANCE", "UPDATING", "UPDATING_DEPLOYMENT_TYPE", "UPDATING_INSTANCE_TYPE", + "REBOOTING", + "REBOOT_FAILED", "DELETED", "FAILED" ], - "markdownDescription": "Status of the InfluxDB Instance.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | AVAILABLE | DELETING | MODIFYING | UPDATING | UPDATING_DEPLOYMENT_TYPE | UPDATING_INSTANCE_TYPE | DELETED | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Status of the InfluxDB Instance.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | AVAILABLE | DELETING | MODIFYING | MAINTENANCE | UPDATING | UPDATING_DEPLOYMENT_TYPE | UPDATING_INSTANCE_TYPE | REBOOTING | REBOOT_FAILED | DELETED | FAILED \nUpdate requires: No interruption\nRead only property: Yes" }, "Arn": { "type": "string", @@ -365,13 +368,16 @@ "AVAILABLE", "DELETING", "MODIFYING", + "MAINTENANCE", "UPDATING", "UPDATING_DEPLOYMENT_TYPE", "UPDATING_INSTANCE_TYPE", + "REBOOTING", + "REBOOT_FAILED", "DELETED", "FAILED" ], - "markdownDescription": "Status of the InfluxDB Instance.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | AVAILABLE | DELETING | MODIFYING | UPDATING | UPDATING_DEPLOYMENT_TYPE | UPDATING_INSTANCE_TYPE | DELETED | FAILED \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Status of the InfluxDB Instance.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | AVAILABLE | DELETING | MODIFYING | MAINTENANCE | UPDATING | UPDATING_DEPLOYMENT_TYPE | UPDATING_INSTANCE_TYPE | REBOOTING | REBOOT_FAILED | DELETED | FAILED \nUpdate requires: No interruption\nRead only property: Yes" }, "Arn": { "type": "string", diff --git a/server/schema/resources/aws-transfer-connector.json b/server/schema/resources/aws-transfer-connector.json index db632159..00fb4b20 100644 --- a/server/schema/resources/aws-transfer-connector.json +++ b/server/schema/resources/aws-transfer-connector.json @@ -28,12 +28,109 @@ "additionalProperties": false, "markdownDescription": "Creates a key-value pair for a specific resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ServerId": { + "description": "A unique identifier for the server.", + "type": "string", + "minLength": 19, + "maxLength": 19, + "markdownDescription": "A unique identifier for the server.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 19 \nMaximum Length: 19 \nPattern: ^s-([0-9a-f]{17})$ \nUpdate requires: No interruption\n" + }, "SftpConnectorTrustedHostKey": { "description": "The public host key for the external server to which you are connecting.", "type": "string", "minLength": 1, "maxLength": 2048, "markdownDescription": "The public host key for the external server to which you are connecting.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "ConnectorEgressType": { + "type": "string", + "enum": [ + "SERVICE_MANAGED", + "VPC_LATTICE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SERVICE_MANAGED | VPC_LATTICE \nUpdate requires: No interruption\n" + }, + "ConnectorVpcLatticeEgressConfig": { + "type": "object", + "properties": { + "ResourceConfigurationArn": { + "type": "string", + "description": "ARN of the VPC Lattice resource configuration", + "minLength": 1, + "maxLength": 2048, + "markdownDescription": "ARN of the VPC Lattice resource configuration\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$ \nUpdate requires: No interruption\n" + }, + "PortNumber": { + "type": "integer", + "description": "Port to connect to on the target VPC Lattice resource", + "minimum": 1, + "maximum": 65535, + "markdownDescription": "Port to connect to on the target VPC Lattice resource\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ResourceConfigurationArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConnectorEgressConfig": { + "type": "object", + "properties": { + "VpcLattice": { + "$ref": "#/definitions/ConnectorVpcLatticeEgressConfig" + } + }, + "required": [ + "VpcLattice" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConnectorStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "PENDING", + "ERRORED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | PENDING | ERRORED \nUpdate requires: No interruption\n" + }, + "ConnectorAsyncMdnConfig": { + "type": "object", + "properties": { + "Url": { + "type": "string", + "description": "URL of the server to receive the MDN response on", + "markdownDescription": "URL of the server to receive the MDN response on\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ServerIds": { + "type": "array", + "minItems": 1, + "maxItems": 10, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ServerId" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Url", + "ServerIds" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpAddressType": { + "type": "string", + "description": "IP address type for Connector", + "enum": [ + "IPV4", + "DUALSTACK" + ], + "markdownDescription": "IP address type for Connector\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUALSTACK \nUpdate requires: No interruption\n" } }, "properties": { @@ -120,9 +217,10 @@ "description": "MDN Response setting for this AS2 connector configuration.", "enum": [ "SYNC", + "ASYNC", "NONE" ], - "markdownDescription": "MDN Response setting for this AS2 connector configuration.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SYNC | NONE \nUpdate requires: No interruption\n" + "markdownDescription": "MDN Response setting for this AS2 connector configuration.\n\n---\n\nRequired: No \nType: String \nAllowed Values: SYNC | ASYNC | NONE \nUpdate requires: No interruption\n" }, "BasicAuthSecretId": { "type": "string", @@ -139,11 +237,29 @@ "DISABLED" ], "markdownDescription": "Specifies whether to use the AWS S3 object content-type as the content-type for the AS2 message.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + }, + "AsyncMdnConfig": { + "description": "Configuration for an AS2 connector with ASYNC MDN Response", + "$ref": "#/definitions/ConnectorAsyncMdnConfig", + "markdownDescription": "Configuration for an AS2 connector with ASYNC MDN Response\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "additionalProperties": false, "markdownDescription": "Configuration for an AS2 connector.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "EgressType": { + "description": "Specifies the egress type for the connector.", + "$ref": "#/definitions/ConnectorEgressType", + "markdownDescription": "Specifies the egress type for the connector.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "EgressConfig": { + "description": "Egress configuration for the connector.", + "$ref": "#/definitions/ConnectorEgressConfig", + "markdownDescription": "Egress configuration for the connector.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/ConnectorStatus" + }, "SftpConfig": { "description": "Configuration for an SFTP connector.", "type": "object", @@ -224,24 +340,34 @@ "description": "URL for Connector", "type": "string", "maxLength": 255, - "markdownDescription": "URL for Connector\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 255 \nUpdate requires: No interruption\n" + "markdownDescription": "URL for Connector\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: No interruption\n" }, "SecurityPolicyName": { "description": "Security policy for SFTP Connector", "type": "string", "maxLength": 50, "markdownDescription": "Security policy for SFTP Connector\n\n---\n\nRequired: No \nType: String \nMaximum Length: 50 \nPattern: TransferSFTPConnectorSecurityPolicy-[A-Za-z0-9-]+ \nUpdate requires: No interruption\n" + }, + "ErrorMessage": { + "description": "Detailed error message when Connector in ERRORED status", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Detailed error message when Connector in ERRORED status\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType" } }, "additionalProperties": false, "required": [ - "AccessRole", - "Url" + "AccessRole" ], "readOnlyProperties": [ "/properties/Arn", "/properties/ConnectorId", - "/properties/ServiceManagedEgressIpAddresses" + "/properties/ServiceManagedEgressIpAddresses", + "/properties/Status", + "/properties/ErrorMessage" ], "primaryIdentifier": [ "/properties/ConnectorId" @@ -262,8 +388,12 @@ "create": { "permissions": [ "transfer:CreateConnector", + "transfer:DescribeConnector", "transfer:TagResource", - "iam:PassRole" + "iam:PassRole", + "vpc-lattice:CreateServiceNetworkResourceAssociation", + "vpc-lattice:GetResourceConfiguration", + "vpc-lattice:AssociateViaAWSService" ] }, "read": { @@ -274,9 +404,13 @@ "update": { "permissions": [ "transfer:UpdateConnector", + "transfer:DescribeConnector", "transfer:UnTagResource", "transfer:TagResource", - "iam:PassRole" + "iam:PassRole", + "vpc-lattice:CreateServiceNetworkResourceAssociation", + "vpc-lattice:GetResourceConfiguration", + "vpc-lattice:AssociateViaAWSService" ] }, "delete": { @@ -291,6 +425,9 @@ } }, "attributes": { + "Status": { + "$ref": "#/definitions/ConnectorStatus" + }, "Arn": { "description": "Specifies the unique Amazon Resource Name (ARN) for the connector.", "type": "string", @@ -314,6 +451,12 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$ \nUpdate requires: No interruption\n" }, "markdownDescription": "The list of egress IP addresses of this connector. These IP addresses are assigned automatically when you create the connector.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ErrorMessage": { + "description": "Detailed error message when Connector in ERRORED status", + "type": "string", + "maxLength": 2048, + "markdownDescription": "Detailed error message when Connector in ERRORED status\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-transfer-server.json b/server/schema/resources/aws-transfer-server.json index 51d4a3b7..994b6d58 100644 --- a/server/schema/resources/aws-transfer-server.json +++ b/server/schema/resources/aws-transfer-server.json @@ -418,12 +418,8 @@ "/properties/ServerId", "/properties/State" ], - "writeOnlyProperties": [ - "/properties/IdentityProviderType" - ], "createOnlyProperties": [ - "/properties/Domain", - "/properties/IdentityProviderType" + "/properties/Domain" ], "primaryIdentifier": [ "/properties/Arn" @@ -470,6 +466,9 @@ "update": { "permissions": [ "apigateway:GET", + "ds:AuthorizeApplication", + "ds:DescribeDirectories", + "ds:UnauthorizeApplication", "ec2:AssociateAddress", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", diff --git a/server/schema/resources/aws-transfer-webapp.json b/server/schema/resources/aws-transfer-webapp.json index 2e9f60c8..60d913fc 100644 --- a/server/schema/resources/aws-transfer-webapp.json +++ b/server/schema/resources/aws-transfer-webapp.json @@ -2,6 +2,54 @@ "typeName": "AWS::Transfer::WebApp", "description": "Resource Type definition for AWS::Transfer::WebApp", "definitions": { + "EndpointDetails": { + "type": "object", + "properties": { + "Vpc": { + "$ref": "#/definitions/Vpc" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + }, + "Vpc": { + "type": "object", + "description": "You can provide a structure that contains the details for the VPC endpoint to use with your web app.", + "properties": { + "SubnetIds": { + "type": "array", + "maxItems": 10, + "insertionOrder": true, + "items": { + "type": "string", + "maxLength": 24, + "minLength": 15, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 15 \nMaximum Length: 24 \nPattern: ^subnet-[0-9a-f]{8,17}$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VpcId": { + "type": "string", + "maxLength": 21, + "minLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 21 \nPattern: ^vpc-[0-9a-f]{8,17}$ \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "type": "array", + "maxItems": 10, + "insertionOrder": false, + "items": { + "type": "string", + "maxLength": 20, + "minLength": 11, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 11 \nMaximum Length: 20 \nPattern: ^sg-[0-9a-f]{8,17}$ \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "You can provide a structure that contains the details for the VPC endpoint to use with your web app.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "IdentityProviderDetails": { "type": "object", "description": "You can provide a structure that contains the details for the identity provider to use with your web app.", @@ -128,6 +176,9 @@ "IdentityProviderDetails": { "$ref": "#/definitions/IdentityProviderDetails" }, + "EndpointDetails": { + "$ref": "#/definitions/EndpointDetails" + }, "AccessEndpoint": { "description": "The AccessEndpoint is the URL that you provide to your users for them to interact with the Transfer Family web app. You can specify a custom URL or use the default value.", "type": "string", @@ -135,6 +186,12 @@ "maxLength": 1024, "markdownDescription": "The AccessEndpoint is the URL that you provide to your users for them to interact with the Transfer Family web app. You can specify a custom URL or use the default value.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "VpcEndpointId": { + "type": "string", + "maxLength": 22, + "minLength": 13, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 13 \nMaximum Length: 22 \nPattern: ^vpce-[0-9a-f]{8,17}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, "WebAppUnits": { "$ref": "#/definitions/WebAppUnits" }, @@ -162,11 +219,17 @@ "readOnlyProperties": [ "/properties/Arn", "/properties/WebAppId", - "/properties/IdentityProviderDetails/ApplicationArn" + "/properties/IdentityProviderDetails/ApplicationArn", + "/properties/VpcEndpointId" ], "createOnlyProperties": [ "/properties/WebAppEndpointPolicy", - "/properties/IdentityProviderDetails/InstanceArn" + "/properties/IdentityProviderDetails/InstanceArn", + "/properties/EndpointDetails/Vpc/VpcId", + "/properties/EndpointDetails/Vpc/SecurityGroupIds" + ], + "writeOnlyProperties": [ + "/properties/EndpointDetails/Vpc/SecurityGroupIds" ], "primaryIdentifier": [ "/properties/Arn" @@ -208,7 +271,9 @@ "sso:ListApplicationAuthenticationMethods", "sso:PutApplicationAccessScope", "sso:GetApplicationAccessScope", - "sso:ListApplicationAccessScopes" + "sso:ListApplicationAccessScopes", + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints" ] }, "read": { @@ -232,14 +297,18 @@ "sso:ListApplicationGrants", "sso:UpdateApplication", "sso:DescribeApplication", - "sso:ListApplications" + "sso:ListApplications", + "ec2:DescribeVpcEndpoints", + "ec2:ModifyVpcEndpoint" ] }, "delete": { "permissions": [ "transfer:DeleteWebApp", "sso:DescribeApplication", - "sso:DeleteApplication" + "sso:DeleteApplication", + "ec2:DescribeVpcEndpoints", + "ec2:DeleteVpcEndpoints" ] }, "list": { @@ -262,6 +331,12 @@ "minLength": 24, "maxLength": 24, "markdownDescription": "A unique identifier for the web app.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 24 \nMaximum Length: 24 \nPattern: ^webapp-([0-9a-f]{17})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "VpcEndpointId": { + "type": "string", + "maxLength": 22, + "minLength": 13, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 13 \nMaximum Length: 22 \nPattern: ^vpce-[0-9a-f]{8,17}$ \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-uxc-accountcustomization.json b/server/schema/resources/aws-uxc-accountcustomization.json new file mode 100644 index 00000000..374ec7fd --- /dev/null +++ b/server/schema/resources/aws-uxc-accountcustomization.json @@ -0,0 +1,99 @@ +{ + "typeName": "AWS::UXC::AccountCustomization", + "description": "Resource schema for managing AWS account-level UX customization settings, including account color, visible services, and visible regions.", + "sourceUrl": "https://code.amazon.com/packages/AWSCloudFormationResourceProvidersUserExperienceCustomization", + "definitions": {}, + "properties": { + "AccountId": { + "description": "The AWS account ID that this customization belongs to. This is automatically determined from the caller's identity.", + "type": "string", + "markdownDescription": "The AWS account ID that this customization belongs to. This is automatically determined from the caller's identity.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "AccountColor": { + "description": "The color theme assigned to the account for visual identification in the AWS Console.", + "type": "string", + "enum": [ + "none", + "pink", + "purple", + "darkBlue", + "lightBlue", + "teal", + "green", + "yellow", + "orange", + "red" + ], + "markdownDescription": "The color theme assigned to the account for visual identification in the AWS Console.\n\n---\n\nRequired: No \nType: String \nAllowed Values: none | pink | purple | darkBlue | lightBlue | teal | green | yellow | orange | red \nUpdate requires: No interruption\n" + }, + "VisibleServices": { + "description": "A list of AWS service identifiers visible to the account in the AWS Console.", + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "maxItems": 500, + "markdownDescription": "A list of AWS service identifiers visible to the account in the AWS Console.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "VisibleRegions": { + "description": "A list of AWS region identifiers visible to the account in the AWS Console.", + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z]{2}(-[a-z]{1,10}){1,2}-[1-9]$ \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "A list of AWS region identifiers visible to the account in the AWS Console.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false + }, + "readOnlyProperties": [ + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "handlers": { + "create": { + "permissions": [ + "uxc:UpdateAccountCustomizations", + "uxc:GetAccountCustomizations" + ] + }, + "read": { + "permissions": [ + "uxc:GetAccountCustomizations" + ] + }, + "update": { + "permissions": [ + "uxc:UpdateAccountCustomizations", + "uxc:GetAccountCustomizations" + ] + }, + "delete": { + "permissions": [ + "uxc:UpdateAccountCustomizations", + "uxc:GetAccountCustomizations" + ] + } + }, + "replacementStrategy": "delete_then_create", + "attributes": { + "AccountId": { + "description": "The AWS account ID that this customization belongs to. This is automatically determined from the caller's identity.", + "type": "string", + "markdownDescription": "The AWS account ID that this customization belongs to. This is automatically determined from the caller's identity.\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-verifiedpermissions-policystore.json b/server/schema/resources/aws-verifiedpermissions-policystore.json index 0b1d99d5..693b9486 100644 --- a/server/schema/resources/aws-verifiedpermissions-policystore.json +++ b/server/schema/resources/aws-verifiedpermissions-policystore.json @@ -27,39 +27,15 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SchemaCedarFormat": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "SchemaDefinition": { - "oneOf": [ - { - "type": "object", - "title": "CedarJson", - "properties": { - "CedarJson": { - "$ref": "#/definitions/SchemaJson" - } - }, - "required": [ - "CedarJson" - ], - "additionalProperties": false - }, - { - "type": "object", - "title": "CedarFormat", - "properties": { - "CedarFormat": { - "$ref": "#/definitions/SchemaCedarFormat" - } - }, - "required": [ - "CedarFormat" - ], - "additionalProperties": false + "type": "object", + "properties": { + "CedarJson": { + "$ref": "#/definitions/SchemaJson" } - ] + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "DeletionMode": { "type": "string", @@ -101,6 +77,90 @@ "Value" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EncryptionSettings": { + "type": "object", + "oneOf": [ + { + "type": "object", + "required": [ + "KmsEncryptionSettings" + ], + "properties": { + "KmsEncryptionSettings": { + "$ref": "#/definitions/KmsEncryptionSettings" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "Default" + ], + "properties": { + "Default": { + "$ref": "#/definitions/Default" + } + }, + "additionalProperties": false + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Default": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KmsEncryptionState": { + "type": "object", + "properties": { + "Key": { + "$ref": "#/definitions/KmsKey" + }, + "EncryptionContext": { + "$ref": "#/definitions/EncryptionContext" + } + }, + "required": [ + "Key", + "EncryptionContext" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KmsEncryptionSettings": { + "type": "object", + "properties": { + "Key": { + "$ref": "#/definitions/KmsKey" + }, + "EncryptionContext": { + "$ref": "#/definitions/EncryptionContext" + } + }, + "required": [ + "Key" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "KmsKey": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9:/_-]+$ \nUpdate requires: No interruption\n" + }, + "EncryptionContext": { + "type": "object", + "patternProperties": { + "^.+$": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -131,6 +191,9 @@ "DeletionProtection": { "$ref": "#/definitions/DeletionProtection" }, + "EncryptionSettings": { + "$ref": "#/definitions/EncryptionSettings" + }, "Tags": { "description": "The tags to add to the policy store", "type": "array", @@ -140,14 +203,48 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "The tags to add to the policy store\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EncryptionState": { + "type": "object", + "oneOf": [ + { + "type": "object", + "required": [ + "KmsEncryptionState" + ], + "properties": { + "KmsEncryptionState": { + "$ref": "#/definitions/KmsEncryptionState" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "Default" + ], + "properties": { + "Default": { + "$ref": "#/definitions/Default" + } + }, + "additionalProperties": false + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ "ValidationSettings" ], + "writeOnlyProperties": [ + "/properties/EncryptionSettings" + ], "readOnlyProperties": [ "/properties/Arn", - "/properties/PolicyStoreId" + "/properties/PolicyStoreId", + "/properties/EncryptionState" ], "primaryIdentifier": [ "/properties/PolicyStoreId" @@ -174,7 +271,13 @@ "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:TagResource", "verifiedpermissions:GetPolicyStore", - "verifiedpermissions:PutSchema" + "verifiedpermissions:PutSchema", + "kms:Decrypt", + "kms:DescribeKey", + "kms:Encrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo" ] }, "read": { @@ -191,7 +294,8 @@ "verifiedpermissions:TagResource", "verifiedpermissions:UntagResource", "verifiedpermissions:GetSchema", - "verifiedpermissions:PutSchema" + "verifiedpermissions:PutSchema", + "kms:Decrypt" ] }, "delete": { @@ -221,6 +325,36 @@ "maxLength": 200, "minLength": 1, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nPattern: ^[a-zA-Z0-9-]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "EncryptionState": { + "type": "object", + "oneOf": [ + { + "type": "object", + "required": [ + "KmsEncryptionState" + ], + "properties": { + "KmsEncryptionState": { + "$ref": "#/definitions/KmsEncryptionState" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "Default" + ], + "properties": { + "Default": { + "$ref": "#/definitions/Default" + } + }, + "additionalProperties": false + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-vpclattice-accesslogsubscription.json b/server/schema/resources/aws-vpclattice-accesslogsubscription.json index 492df649..4da13b9d 100644 --- a/server/schema/resources/aws-vpclattice-accesslogsubscription.json +++ b/server/schema/resources/aws-vpclattice-accesslogsubscription.json @@ -50,7 +50,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc)|(resourceconfiguration/rcfg))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ResourceId": { "type": "string", @@ -196,7 +196,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((((sn)|(svc)|(rcfg))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(resourceconfiguration/rcfg)|(service/svc))-[0-9a-z]{17}))$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -234,7 +234,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc)|(resourceconfiguration/rcfg))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ResourceId": { "type": "string", diff --git a/server/schema/resources/aws-vpclattice-domainverification.json b/server/schema/resources/aws-vpclattice-domainverification.json new file mode 100644 index 00000000..5c16586b --- /dev/null +++ b/server/schema/resources/aws-vpclattice-domainverification.json @@ -0,0 +1,207 @@ +{ + "typeName": "AWS::VpcLattice::DomainVerification", + "description": "Creates a Lattice Domain Verification", + "additionalProperties": false, + "definitions": { + "TxtMethodConfig": { + "type": "object", + "properties": { + "name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DomainName": { + "type": "string", + "maxLength": 255, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 255 \nUpdate requires: Replacement\n" + }, + "Id": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((dv-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:domainverification/dv-[0-9a-z]{17}))$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:domainverification/dv-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "VERIFIED", + "PENDING", + "VERIFICATION_TIMED_OUT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: VERIFIED | PENDING | VERIFICATION_TIMED_OUT \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TxtMethodConfig": { + "type": "object", + "properties": { + "name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "minItems": 0, + "maxItems": 50, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DomainName" + ], + "readOnlyProperties": [ + "/properties/TxtMethodConfig", + "/properties/Status", + "/properties/Id", + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ], + [ + "/properties/DomainName" + ] + ], + "handlers": { + "create": { + "permissions": [ + "vpc-lattice:StartDomainVerification", + "vpc-lattice:GetDomainVerification", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "vpc-lattice:GetDomainVerification", + "vpc-lattice:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "vpc-lattice:StartDomainVerification", + "vpc-lattice:GetDomainVerification", + "vpc-lattice:TagResource", + "vpc-lattice:UntagResource", + "vpc-lattice:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "vpc-lattice:DeleteDomainVerification", + "vpc-lattice:GetDomainVerification", + "vpc-lattice:UntagResource" + ] + }, + "list": { + "permissions": [ + "vpc-lattice:ListDomainVerifications" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "vpc-lattice:UntagResource", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ] + }, + "attributes": { + "Id": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((dv-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:domainverification/dv-[0-9a-z]{17}))$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:domainverification/dv-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "type": "string", + "enum": [ + "VERIFIED", + "PENDING", + "VERIFICATION_TIMED_OUT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: VERIFIED | PENDING | VERIFICATION_TIMED_OUT \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TxtMethodConfig": { + "type": "object", + "properties": { + "name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-vpclattice-resourceconfiguration.json b/server/schema/resources/aws-vpclattice-resourceconfiguration.json index 328aabe9..3892542c 100644 --- a/server/schema/resources/aws-vpclattice-resourceconfiguration.json +++ b/server/schema/resources/aws-vpclattice-resourceconfiguration.json @@ -21,7 +21,10 @@ "/properties/ResourceGatewayId", "/properties/ResourceConfigurationType", "/properties/ProtocolType", - "/properties/ResourceConfigurationAuthType" + "/properties/ResourceConfigurationAuthType", + "/properties/CustomDomainName", + "/properties/GroupDomain", + "/properties/DomainVerificationId" ], "primaryIdentifier": [ "/properties/Arn" @@ -154,26 +157,11 @@ } }, "properties": { - "AllowAssociationToSharableServiceNetwork": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "ProtocolType": { - "type": "string", - "enum": [ - "TCP" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TCP \nUpdate requires: Replacement\n" - }, - "ResourceConfigurationType": { + "CustomDomainName": { + "minLength": 3, "type": "string", - "enum": [ - "GROUP", - "CHILD", - "SINGLE", - "ARN" - ], - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: GROUP | CHILD | SINGLE | ARN \nUpdate requires: Replacement\n" + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 255 \nUpdate requires: Replacement\n" }, "PortRanges": { "insertionOrder": false, @@ -228,18 +216,11 @@ "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Id": { - "$ref": "#/definitions/Id" - }, - "ResourceGatewayId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Arn": { - "minLength": 20, + "GroupDomain": { + "minLength": 3, "type": "string", - "maxLength": 2048, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9f\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 255 \nUpdate requires: Replacement\n" }, "ResourceConfigurationAuthType": { "type": "string", @@ -252,6 +233,52 @@ "ResourceConfigurationGroupId": { "$ref": "#/definitions/Id" }, + "Name": { + "minLength": 3, + "type": "string", + "maxLength": 40, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 40 \nPattern: ^(?!rcfg-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "AllowAssociationToSharableServiceNetwork": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ProtocolType": { + "type": "string", + "enum": [ + "TCP" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TCP \nUpdate requires: Replacement\n" + }, + "ResourceConfigurationType": { + "type": "string", + "enum": [ + "GROUP", + "CHILD", + "SINGLE", + "ARN" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: GROUP | CHILD | SINGLE | ARN \nUpdate requires: Replacement\n" + }, + "DomainVerificationId": { + "minLength": 20, + "type": "string", + "maxLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 20 \nPattern: ^dv-[a-fA-F0-9]{17}$ \nUpdate requires: Replacement\n" + }, + "Id": { + "$ref": "#/definitions/Id" + }, + "ResourceGatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Arn": { + "minLength": 20, + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[a-z0-9f\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, "Tags": { "minItems": 0, "maxItems": 50, @@ -262,12 +289,6 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "minLength": 3, - "type": "string", - "maxLength": 40, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 40 \nPattern: ^(?!rcfg-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$ \nUpdate requires: No interruption\n" } }, "attributes": { diff --git a/server/schema/resources/aws-vpclattice-resourcegateway.json b/server/schema/resources/aws-vpclattice-resourcegateway.json index 71cd4eda..818c8530 100644 --- a/server/schema/resources/aws-vpclattice-resourcegateway.json +++ b/server/schema/resources/aws-vpclattice-resourcegateway.json @@ -59,7 +59,7 @@ "/properties/Id", "/properties/Arn" ], - "description": "Creates a resource gateway for a service. ", + "description": "Creates a resource gateway for a service.", "additionalIdentifiers": [ [ "/properties/Id" @@ -115,6 +115,11 @@ "maxLength": 50, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nUpdate requires: Replacement\n" }, + "Ipv4AddressesPerEni": { + "description": "The number of IPv4 addresses to allocate per ENI for the resource gateway", + "type": "integer", + "markdownDescription": "The number of IPv4 addresses to allocate per ENI for the resource gateway\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "Id": { "minLength": 17, "type": "string", diff --git a/server/schema/resources/aws-vpclattice-resourcepolicy.json b/server/schema/resources/aws-vpclattice-resourcepolicy.json index 46eb29c4..4872e000 100644 --- a/server/schema/resources/aws-vpclattice-resourcepolicy.json +++ b/server/schema/resources/aws-vpclattice-resourcepolicy.json @@ -7,7 +7,7 @@ "type": "string", "minLength": 20, "maxLength": 200, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 200 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 200 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc)|(resourceconfiguration/rcfg))-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" }, "Policy": { "type": "object", diff --git a/server/schema/resources/aws-vpclattice-servicenetworkresourceassociation.json b/server/schema/resources/aws-vpclattice-servicenetworkresourceassociation.json index 2b581090..ff43880e 100644 --- a/server/schema/resources/aws-vpclattice-servicenetworkresourceassociation.json +++ b/server/schema/resources/aws-vpclattice-servicenetworkresourceassociation.json @@ -63,12 +63,17 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PrivateDnsEnabled": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" } }, "additionalProperties": false, "createOnlyProperties": [ "/properties/ResourceConfigurationId", - "/properties/ServiceNetworkId" + "/properties/ServiceNetworkId", + "/properties/PrivateDnsEnabled" ], "readOnlyProperties": [ "/properties/Id", diff --git a/server/schema/resources/aws-vpclattice-servicenetworkvpcassociation.json b/server/schema/resources/aws-vpclattice-servicenetworkvpcassociation.json index 80b7aea0..7eadce4c 100644 --- a/server/schema/resources/aws-vpclattice-servicenetworkvpcassociation.json +++ b/server/schema/resources/aws-vpclattice-servicenetworkvpcassociation.json @@ -25,6 +25,37 @@ "Value" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DnsOptions": { + "type": "object", + "additionalProperties": false, + "properties": { + "PrivateDnsPreference": { + "type": "string", + "enum": [ + "VERIFIED_DOMAINS_ONLY", + "ALL_DOMAINS", + "VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS", + "SPECIFIED_DOMAINS_ONLY" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: VERIFIED_DOMAINS_ONLY | ALL_DOMAINS | VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS | SPECIFIED_DOMAINS_ONLY \nUpdate requires: No interruption\n" + }, + "PrivateDnsSpecifiedDomains": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "minItems": 1, + "maxItems": 10, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" } }, "properties": { @@ -114,6 +145,13 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "PrivateDnsEnabled": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "DnsOptions": { + "$ref": "#/definitions/DnsOptions" } }, "readOnlyProperties": [ @@ -132,7 +170,11 @@ ], "createOnlyProperties": [ "/properties/ServiceNetworkIdentifier", - "/properties/VpcIdentifier" + "/properties/VpcIdentifier", + "/properties/PrivateDnsEnabled", + "/properties/DnsOptions", + "/properties/DnsOptions/PrivateDnsPreference", + "/properties/DnsOptions/PrivateDnsSpecifiedDomains" ], "primaryIdentifier": [ "/properties/Arn" diff --git a/server/schema/resources/aws-wafv2-loggingconfiguration.json b/server/schema/resources/aws-wafv2-loggingconfiguration.json index 2fb74aae..34186f77 100644 --- a/server/schema/resources/aws-wafv2-loggingconfiguration.json +++ b/server/schema/resources/aws-wafv2-loggingconfiguration.json @@ -258,6 +258,9 @@ ] } }, + "propertyTransform": { + "/properties/RedactedFields/*/SingleHeader/Name": "$lowercase(Name)" + }, "attributes": { "ManagedByFirewallManager": { "description": "Indicates whether the logging configuration was created by AWS Firewall Manager, as part of an AWS WAF policy configuration. If true, only Firewall Manager can modify or delete the configuration.", diff --git a/server/schema/resources/aws-wafv2-rulegroup.json b/server/schema/resources/aws-wafv2-rulegroup.json index 1ae7ae10..97e2ea10 100644 --- a/server/schema/resources/aws-wafv2-rulegroup.json +++ b/server/schema/resources/aws-wafv2-rulegroup.json @@ -135,6 +135,9 @@ }, "UriFragment": { "$ref": "#/definitions/UriFragment" + }, + "HeaderOrder": { + "$ref": "#/definitions/HeaderOrder" } }, "additionalProperties": false, @@ -1574,6 +1577,20 @@ }, "additionalProperties": false, "markdownDescription": "The path component of the URI Fragment. This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HeaderOrder": { + "description": "The string containing the list of a web request's header names, ordered as they appear in the web request, separated by colons.", + "type": "object", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "OversizeHandling" + ], + "additionalProperties": false, + "markdownDescription": "The string containing the list of a web request's header names, ordered as they appear in the web request, separated by colons.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { diff --git a/server/schema/resources/aws-wafv2-webacl.json b/server/schema/resources/aws-wafv2-webacl.json index b9d1e781..93674b55 100644 --- a/server/schema/resources/aws-wafv2-webacl.json +++ b/server/schema/resources/aws-wafv2-webacl.json @@ -3,6 +3,72 @@ "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", "definitions": { + "ApplicationConfig": { + "description": "Configures the ability for the WAF; console to store and retrieve application attributes during the webacl; creation process. Application attributes help WAF; give recommendations for protection packs.", + "type": "object", + "properties": { + "Attributes": { + "$ref": "#/definitions/ApplicationAttributes" + } + }, + "required": [ + "Attributes" + ], + "additionalProperties": false, + "markdownDescription": "Configures the ability for the WAF; console to store and retrieve application attributes during the webacl; creation process. Application attributes help WAF; give recommendations for protection packs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApplicationAttributes": { + "description": "Contains the attribute name and a list of values for that attribute.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationAttribute" + }, + "minItems": 1, + "maxItems": 10, + "markdownDescription": "Contains the attribute name and a list of values for that attribute.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ApplicationAttribute": { + "description": "Application details defined during the &webacl; creation process. Application attributes help WAF; give recommendations for protection packs.", + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/AttributeName" + }, + "Values": { + "$ref": "#/definitions/AttributeValues" + } + }, + "required": [ + "Name", + "Values" + ], + "additionalProperties": false, + "markdownDescription": "Application details defined during the &webacl; creation process. Application attributes help WAF; give recommendations for protection packs.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AttributeValues": { + "description": "Contains a list of values for that attribute", + "type": "array", + "items": { + "$ref": "#/definitions/AttributeValue" + }, + "minItems": 1, + "maxItems": 10, + "markdownDescription": "Contains a list of values for that attribute\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AttributeValue": { + "description": "Specifies the attribute value.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "Specifies the attribute value.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w\\-]+$ \nUpdate requires: No interruption\n" + }, + "AttributeName": { + "description": "Specifies the attribute name.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "Specifies the attribute name.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w\\-]+$ \nUpdate requires: No interruption\n" + }, "AndStatement": { "type": "object", "properties": { @@ -199,6 +265,9 @@ }, "UriFragment": { "$ref": "#/definitions/UriFragment" + }, + "HeaderOrder": { + "$ref": "#/definitions/HeaderOrder" } }, "additionalProperties": false, @@ -2356,6 +2425,20 @@ "additionalProperties": false, "markdownDescription": "The path component of the URI Fragment. This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "HeaderOrder": { + "description": "The string containing the list of a web request's header names, ordered as they appear in the web request, separated by colons.", + "type": "object", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "OversizeHandling" + ], + "additionalProperties": false, + "markdownDescription": "The string containing the list of a web request's header names, ordered as they appear in the web request, separated by colons.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "OnSourceDDoSProtectionConfig": { "description": "Configures the options for on-source DDoS protection provided by supported resource type.", "type": "object", @@ -2416,6 +2499,11 @@ "$ref": "#/definitions/DataProtectionConfig", "markdownDescription": "Collection of dataProtects.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "ApplicationConfig": { + "description": "Collection of application attributes.", + "$ref": "#/definitions/ApplicationConfig", + "markdownDescription": "Collection of application attributes.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Tags": { "type": "array", "items": { diff --git a/server/schema/resources/aws-wafv2-webaclassociation.json b/server/schema/resources/aws-wafv2-webaclassociation.json index d5d01313..3f163c7e 100644 --- a/server/schema/resources/aws-wafv2-webaclassociation.json +++ b/server/schema/resources/aws-wafv2-webaclassociation.json @@ -60,7 +60,13 @@ "ec2:DescribeVerifiedAccessInstanceWebAclAssociations", "ec2:GetVerifiedAccessInstanceWebAcl", "amplify:AssociateWebACL", - "amplify:GetWebACLForResource" + "amplify:GetWebACLForResource", + "elasticloadbalancing:CreateWebACLAssociation", + "elasticloadbalancing:DeleteWebACLAssociation", + "elasticloadbalancing:GetLoadBalancerWebACL", + "appsync:AssociateWebACL", + "appsync:DisassociateWebACL", + "appsync:GetWebACLForResource" ] }, "delete": { @@ -84,7 +90,13 @@ "ec2:DescribeVerifiedAccessInstanceWebAclAssociations", "ec2:GetVerifiedAccessInstanceWebAcl", "amplify:DisassociateWebACL", - "amplify:GetWebACLForResource" + "amplify:GetWebACLForResource", + "elasticloadbalancing:CreateWebACLAssociation", + "elasticloadbalancing:DeleteWebACLAssociation", + "elasticloadbalancing:GetLoadBalancerWebACL", + "appsync:AssociateWebACL", + "appsync:DisassociateWebACL", + "appsync:GetWebACLForResource" ] }, "read": { @@ -106,7 +118,13 @@ "ec2:DisassociateVerifiedAccessInstanceWebAcl", "ec2:DescribeVerifiedAccessInstanceWebAclAssociations", "ec2:GetVerifiedAccessInstanceWebAcl", - "amplify:GetWebACLForResource" + "amplify:GetWebACLForResource", + "elasticloadbalancing:CreateWebACLAssociation", + "elasticloadbalancing:DeleteWebACLAssociation", + "elasticloadbalancing:GetLoadBalancerWebACL", + "appsync:AssociateWebACL", + "appsync:DisassociateWebACL", + "appsync:GetWebACLForResource" ] }, "update": { @@ -127,7 +145,13 @@ "ec2:AssociateVerifiedAccessInstanceWebAcl", "ec2:DisassociateVerifiedAccessInstanceWebAcl", "ec2:DescribeVerifiedAccessInstanceWebAclAssociations", - "ec2:GetVerifiedAccessInstanceWebAcl" + "ec2:GetVerifiedAccessInstanceWebAcl", + "elasticloadbalancing:CreateWebACLAssociation", + "elasticloadbalancing:DeleteWebACLAssociation", + "elasticloadbalancing:GetLoadBalancerWebACL", + "appsync:AssociateWebACL", + "appsync:DisassociateWebACL", + "appsync:GetWebACLForResource" ] } }, diff --git a/server/schema/resources/aws-wisdom-aiagent.json b/server/schema/resources/aws-wisdom-aiagent.json index 32910992..09063cf2 100644 --- a/server/schema/resources/aws-wisdom-aiagent.json +++ b/server/schema/resources/aws-wisdom-aiagent.json @@ -50,6 +50,84 @@ "SelfServiceAIAgentConfiguration" ], "additionalProperties": false + }, + { + "type": "object", + "title": "EmailResponseAIAgentConfiguration", + "properties": { + "EmailResponseAIAgentConfiguration": { + "$ref": "#/definitions/EmailResponseAIAgentConfiguration" + } + }, + "required": [ + "EmailResponseAIAgentConfiguration" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "EmailOverviewAIAgentConfiguration", + "properties": { + "EmailOverviewAIAgentConfiguration": { + "$ref": "#/definitions/EmailOverviewAIAgentConfiguration" + } + }, + "required": [ + "EmailOverviewAIAgentConfiguration" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "EmailGenerativeAnswerAIAgentConfiguration", + "properties": { + "EmailGenerativeAnswerAIAgentConfiguration": { + "$ref": "#/definitions/EmailGenerativeAnswerAIAgentConfiguration" + } + }, + "required": [ + "EmailGenerativeAnswerAIAgentConfiguration" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "OrchestrationAIAgentConfiguration", + "properties": { + "OrchestrationAIAgentConfiguration": { + "$ref": "#/definitions/OrchestrationAIAgentConfiguration" + } + }, + "required": [ + "OrchestrationAIAgentConfiguration" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "NoteTakingAIAgentConfiguration", + "properties": { + "NoteTakingAIAgentConfiguration": { + "$ref": "#/definitions/NoteTakingAIAgentConfiguration" + } + }, + "required": [ + "NoteTakingAIAgentConfiguration" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "CaseSummarizationAIAgentConfiguration", + "properties": { + "CaseSummarizationAIAgentConfiguration": { + "$ref": "#/definitions/CaseSummarizationAIAgentConfiguration" + } + }, + "required": [ + "CaseSummarizationAIAgentConfiguration" + ], + "additionalProperties": false } ] }, @@ -58,9 +136,15 @@ "enum": [ "MANUAL_SEARCH", "ANSWER_RECOMMENDATION", - "SELF_SERVICE" + "SELF_SERVICE", + "EMAIL_RESPONSE", + "EMAIL_OVERVIEW", + "EMAIL_GENERATIVE_ANSWER", + "ORCHESTRATION", + "NOTE_TAKING", + "CASE_SUMMARIZATION" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MANUAL_SEARCH | ANSWER_RECOMMENDATION | SELF_SERVICE \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MANUAL_SEARCH | ANSWER_RECOMMENDATION | SELF_SERVICE | EMAIL_RESPONSE | EMAIL_OVERVIEW | EMAIL_GENERATIVE_ANSWER | ORCHESTRATION | NOTE_TAKING | CASE_SUMMARIZATION \nUpdate requires: No interruption\n" }, "SelfServiceAIAgentConfiguration": { "type": "object", @@ -315,6 +399,148 @@ } ] }, + "EmailResponseAIAgentConfiguration": { + "type": "object", + "properties": { + "EmailResponseAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "EmailQueryReformulationAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "AssociationConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociationConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EmailOverviewAIAgentConfiguration": { + "type": "object", + "properties": { + "EmailOverviewAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EmailGenerativeAnswerAIAgentConfiguration": { + "type": "object", + "properties": { + "EmailGenerativeAnswerAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "EmailQueryReformulationAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "AssociationConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociationConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OrchestrationAIAgentConfiguration": { + "type": "object", + "properties": { + "OrchestrationAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "OrchestrationAIGuardrailId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "ConnectInstanceArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:[a-z-]+?:[a-z-]+?:[a-z0-9-]*?:([0-9]{12})?:[a-zA-Z0-9-:/]+$ \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "ToolConfigurations": { + "$ref": "#/definitions/ToolConfigurationList" + } + }, + "required": [ + "OrchestrationAIPromptId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NoteTakingAIAgentConfiguration": { + "type": "object", + "properties": { + "NoteTakingAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "NoteTakingAIGuardrailId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CaseSummarizationAIAgentConfiguration": { + "type": "object", + "properties": { + "CaseSummarizationAIPromptId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "CaseSummarizationAIGuardrailId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$ \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "Tags": { "type": "object", "patternProperties": { @@ -327,6 +553,230 @@ }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolConfigurationList": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolConfiguration" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ToolConfiguration": { + "type": "object", + "properties": { + "ToolName": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "ToolType": { + "$ref": "#/definitions/ToolType" + }, + "Title": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "ToolId": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Instruction": { + "$ref": "#/definitions/ToolInstruction" + }, + "OverrideInputValues": { + "$ref": "#/definitions/ToolOverrideInputValueList" + }, + "OutputFilters": { + "$ref": "#/definitions/ToolOutputFilterList" + }, + "InputSchema": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OutputSchema": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Annotations": { + "$ref": "#/definitions/Annotation" + }, + "UserInteractionConfiguration": { + "$ref": "#/definitions/UserInteractionConfiguration" + } + }, + "required": [ + "ToolName", + "ToolType" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolType": { + "type": "string", + "enum": [ + "MODEL_CONTEXT_PROTOCOL", + "RETURN_TO_CONTROL", + "CONSTANT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MODEL_CONTEXT_PROTOCOL | RETURN_TO_CONTROL | CONSTANT \nUpdate requires: No interruption\n" + }, + "ToolExampleList": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ToolInstruction": { + "type": "object", + "properties": { + "Instruction": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Examples": { + "$ref": "#/definitions/ToolExampleList" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolOverrideInputValueType": { + "type": "string", + "enum": [ + "STRING", + "NUMBER", + "JSON_STRING" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: STRING | NUMBER | JSON_STRING \nUpdate requires: No interruption\n" + }, + "ToolOverrideConstantInputValue": { + "type": "object", + "properties": { + "Type": { + "$ref": "#/definitions/ToolOverrideInputValueType" + }, + "Value": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolOverrideInputValueConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "Constant", + "properties": { + "Constant": { + "$ref": "#/definitions/ToolOverrideConstantInputValue" + } + }, + "required": [ + "Constant" + ], + "additionalProperties": false + } + ] + }, + "ToolOverrideInputValueList": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolOverrideInputValue" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ToolOverrideInputValue": { + "type": "object", + "properties": { + "JsonPath": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Value": { + "$ref": "#/definitions/ToolOverrideInputValueConfiguration" + } + }, + "required": [ + "JsonPath", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolOutputConfiguration": { + "type": "object", + "properties": { + "OutputVariableNameOverride": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "SessionDataNamespace": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolOutputFilterList": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolOutputFilter" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ToolOutputFilter": { + "type": "object", + "properties": { + "JsonPath": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "OutputConfiguration": { + "$ref": "#/definitions/ToolOutputConfiguration" + } + }, + "required": [ + "JsonPath" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Annotation": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserInteractionConfiguration": { + "type": "object", + "properties": { + "IsUserConfirmationRequired": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -413,7 +863,8 @@ "create": { "permissions": [ "wisdom:CreateAIAgent", - "wisdom:TagResource" + "wisdom:TagResource", + "connect:ListIntegrationAssociations" ] }, "read": { diff --git a/server/schema/resources/aws-wisdom-aiprompt.json b/server/schema/resources/aws-wisdom-aiprompt.json index de46ec6b..3031be31 100644 --- a/server/schema/resources/aws-wisdom-aiprompt.json +++ b/server/schema/resources/aws-wisdom-aiprompt.json @@ -46,9 +46,16 @@ "INTENT_LABELING_GENERATION", "QUERY_REFORMULATION", "SELF_SERVICE_PRE_PROCESSING", - "SELF_SERVICE_ANSWER_GENERATION" + "SELF_SERVICE_ANSWER_GENERATION", + "EMAIL_RESPONSE", + "EMAIL_OVERVIEW", + "EMAIL_GENERATIVE_ANSWER", + "EMAIL_QUERY_REFORMULATION", + "ORCHESTRATION", + "NOTE_TAKING", + "CASE_SUMMARIZATION" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ANSWER_GENERATION | INTENT_LABELING_GENERATION | QUERY_REFORMULATION | SELF_SERVICE_PRE_PROCESSING | SELF_SERVICE_ANSWER_GENERATION \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ANSWER_GENERATION | INTENT_LABELING_GENERATION | QUERY_REFORMULATION | SELF_SERVICE_PRE_PROCESSING | SELF_SERVICE_ANSWER_GENERATION | EMAIL_RESPONSE | EMAIL_OVERVIEW | EMAIL_GENERATIVE_ANSWER | EMAIL_QUERY_REFORMULATION | ORCHESTRATION | NOTE_TAKING | CASE_SUMMARIZATION \nUpdate requires: No interruption\n" }, "Tags": { "type": "object", diff --git a/server/schema/resources/aws-wisdom-assistantassociation.json b/server/schema/resources/aws-wisdom-assistantassociation.json index 789f2f06..db49e852 100644 --- a/server/schema/resources/aws-wisdom-assistantassociation.json +++ b/server/schema/resources/aws-wisdom-assistantassociation.json @@ -4,15 +4,49 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk", "definitions": { "AssociationData": { + "oneOf": [ + { + "type": "object", + "properties": { + "KnowledgeBaseId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExternalBedrockKnowledgeBaseConfig": { + "$ref": "#/definitions/ExternalBedrockKnowledgeBaseConfig" + } + }, + "required": [ + "ExternalBedrockKnowledgeBaseConfig" + ], + "additionalProperties": false + } + ] + }, + "ExternalBedrockKnowledgeBaseConfig": { "type": "object", "properties": { - "KnowledgeBaseId": { + "BedrockKnowledgeBaseArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:knowledge-base/[0-9a-zA-Z]+$ \nUpdate requires: No interruption\n" + }, + "AccessRoleArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws:iam::[0-9]{12}:role/(?:service-role/)?[a-zA-Z0-9_+=,.@-]{1,64}$ \nUpdate requires: No interruption\n" } }, "required": [ - "KnowledgeBaseId" + "BedrockKnowledgeBaseArn", + "AccessRoleArn" ], "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -20,9 +54,10 @@ "AssociationType": { "type": "string", "enum": [ - "KNOWLEDGE_BASE" + "KNOWLEDGE_BASE", + "EXTERNAL_BEDROCK_KNOWLEDGE_BASE" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: KNOWLEDGE_BASE \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: KNOWLEDGE_BASE | EXTERNAL_BEDROCK_KNOWLEDGE_BASE \nUpdate requires: No interruption\n" }, "Tag": { "additionalProperties": false, @@ -123,7 +158,8 @@ "create": { "permissions": [ "wisdom:CreateAssistantAssociation", - "wisdom:TagResource" + "wisdom:TagResource", + "iam:PassRole" ] }, "update": { diff --git a/server/schema/resources/aws-workspaces-connectionalias.json b/server/schema/resources/aws-workspaces-connectionalias.json index 8c5eb8e3..3c6b415f 100644 --- a/server/schema/resources/aws-workspaces-connectionalias.json +++ b/server/schema/resources/aws-workspaces-connectionalias.json @@ -147,6 +147,11 @@ "workspaces:DescribeTags", "workspaces:DescribeConnectionAliases" ] + }, + "list": { + "permissions": [ + "workspaces:DescribeConnectionAliases" + ] } }, "attributes": { diff --git a/server/schema/resources/aws-workspaces-workspace.json b/server/schema/resources/aws-workspaces-workspace.json index 383df69e..014c0ce9 100644 --- a/server/schema/resources/aws-workspaces-workspace.json +++ b/server/schema/resources/aws-workspaces-workspace.json @@ -1,27 +1,33 @@ { "typeName": "AWS::WorkSpaces::Workspace", "description": "Resource Type definition for AWS::WorkSpaces::Workspace", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-workspaces-workspace", "additionalProperties": false, "properties": { - "Id": { + "WorkspaceId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "BundleId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Some interruptions\n" }, "DirectoryId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "RootVolumeEncryptionEnabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Some interruptions\n" }, "Tags": { "type": "array", "uniqueItems": false, + "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, @@ -33,11 +39,11 @@ }, "UserVolumeEncryptionEnabled": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Some interruptions\n" }, "VolumeEncryptionKey": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Some interruptions\n" }, "WorkspaceProperties": { "$ref": "#/definitions/WorkspaceProperties" @@ -85,27 +91,92 @@ } }, "required": [ - "Value", - "Key" + "Key", + "Value" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, + "primaryIdentifier": [ + "/properties/WorkspaceId" + ], + "readOnlyProperties": [ + "/properties/WorkspaceId", + "/properties/Id" + ], "required": [ "BundleId", "DirectoryId", "UserName" ], "createOnlyProperties": [ - "/properties/UserName" - ], - "primaryIdentifier": [ - "/properties/Id" + "/properties/UserName", + "/properties/DirectoryId" ], - "readOnlyProperties": [ - "/properties/Id" + "conditionalCreateOnlyProperties": [ + "/properties/BundleId", + "/properties/VolumeEncryptionKey", + "/properties/RootVolumeEncryptionEnabled", + "/properties/UserVolumeEncryptionEnabled" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "workspaces:CreateTags", + "workspaces:DeleteTags", + "workspaces:DescribeTags" + ] + }, + "handlers": { + "create": { + "permissions": [ + "workspaces:DescribeWorkspaces", + "workspaces:CreateWorkspaces", + "workspaces:CreateTags", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "read": { + "permissions": [ + "workspaces:DescribeWorkspaces", + "workspaces:DescribeTags" + ] + }, + "update": { + "permissions": [ + "workspaces:DescribeWorkspaces", + "workspaces:DescribeWorkspaceBundles", + "workspaces:ModifyWorkspaceProperties", + "workspaces:DescribeTags", + "workspaces:CreateTags", + "workspaces:DeleteTags", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "workspaces:DescribeWorkspaces", + "workspaces:TerminateWorkspaces" + ] + }, + "list": { + "permissions": [ + "workspaces:DescribeWorkspaces", + "workspaces:DescribeTags" + ] + } + }, "attributes": { + "WorkspaceId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "Id": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" diff --git a/server/schema/resources/aws-workspaces-workspacespool.json b/server/schema/resources/aws-workspaces-workspacespool.json index 5bcef920..7a8ba112 100644 --- a/server/schema/resources/aws-workspaces-workspacespool.json +++ b/server/schema/resources/aws-workspaces-workspacespool.json @@ -162,8 +162,8 @@ "tagging": { "taggable": true, "tagOnCreate": true, - "tagUpdatable": false, - "cloudFormationSystemTags": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "workspaces:CreateTags", diff --git a/server/schema/resources/aws-workspacesinstances-workspaceinstance.json b/server/schema/resources/aws-workspacesinstances-workspaceinstance.json index 3be0eeac..7b169235 100644 --- a/server/schema/resources/aws-workspacesinstances-workspaceinstance.json +++ b/server/schema/resources/aws-workspacesinstances-workspaceinstance.json @@ -198,57 +198,6 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "InstanceMarketOptionsRequest": { - "type": "object", - "properties": { - "MarketType": { - "type": "string", - "enum": [ - "spot", - "capacity-block" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: spot | capacity-block \nUpdate requires: No interruption\n" - }, - "SpotOptions": { - "$ref": "#/definitions/SpotMarketOptions" - } - }, - "additionalProperties": false, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "SpotMarketOptions": { - "type": "object", - "properties": { - "InstanceInterruptionBehavior": { - "type": "string", - "enum": [ - "hibernate", - "stop" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: hibernate | stop \nUpdate requires: No interruption\n" - }, - "MaxPrice": { - "type": "string", - "maxLength": 64, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 64 \nUpdate requires: No interruption\n" - }, - "SpotInstanceType": { - "type": "string", - "enum": [ - "one-time", - "persistent" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: one-time | persistent \nUpdate requires: No interruption\n" - }, - "ValidUntilUtc": { - "type": "string", - "maxLength": 64, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 64 \nUpdate requires: No interruption\n" - } - }, - "additionalProperties": false, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "ConnectionTrackingSpecificationRequest": { "type": "object", "properties": { @@ -614,9 +563,6 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^ami-[0-9a-zA-Z]{1,63}$ \nUpdate requires: No interruption\n" }, - "InstanceMarketOptions": { - "$ref": "#/definitions/InstanceMarketOptionsRequest" - }, "InstanceType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^([a-z0-9-]+)\\.([a-z0-9]+)$ \nUpdate requires: No interruption\n" @@ -746,6 +692,7 @@ "ec2:RunInstances", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", + "ec2:DescribeImages", "ec2:CreateTags", "iam:PassRole" ] diff --git a/server/schema/resources/aws-workspacesweb-browsersettings.json b/server/schema/resources/aws-workspacesweb-browsersettings.json index 50609562..a9469047 100644 --- a/server/schema/resources/aws-workspacesweb-browsersettings.json +++ b/server/schema/resources/aws-workspacesweb-browsersettings.json @@ -2,6 +2,39 @@ "typeName": "AWS::WorkSpacesWeb::BrowserSettings", "description": "Definition of AWS::WorkSpacesWeb::BrowserSettings Resource Type", "definitions": { + "Category": { + "type": "string", + "enum": [ + "Cults", + "Gambling", + "Nudity", + "Pornography", + "SexEducation", + "Tasteless", + "Violence", + "DownloadSites", + "ImageSharing", + "PeerToPeer", + "StreamingMediaAndDownloads", + "GenerativeAI", + "CriminalActivity", + "Hacking", + "HateAndIntolerance", + "IllegalDrug", + "IllegalSoftware", + "SchoolCheating", + "SelfHarm", + "Weapons", + "Chat", + "Games", + "InstantMessaging", + "ProfessionalNetwork", + "SocialNetworking", + "WebBasedEmail", + "ParkedDomains" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Cults | Gambling | Nudity | Pornography | SexEducation | Tasteless | Violence | DownloadSites | ImageSharing | PeerToPeer | StreamingMediaAndDownloads | GenerativeAI | CriminalActivity | Hacking | HateAndIntolerance | IllegalDrug | IllegalSoftware | SchoolCheating | SelfHarm | Weapons | Chat | Games | InstantMessaging | ProfessionalNetwork | SocialNetworking | WebBasedEmail | ParkedDomains \nUpdate requires: No interruption\n" + }, "EncryptionContextMap": { "type": "object", "patternProperties": { @@ -37,6 +70,48 @@ ], "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Unit": { + "type": "object", + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WebContentFilteringPolicy": { + "type": "object", + "properties": { + "BlockedCategories": { + "type": "array", + "items": { + "$ref": "#/definitions/Category" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedUrls": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^((([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(\\*|[\\w%._\\-\\+~#=@]+)?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?)|(\\*|[\\w%._\\-\\+~#=@]+\\.[\\w%._\\-\\+~#=@]+)(?::(\\d{1,5}))?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?|(([a-zA-Z][a-zA-Z0-9+.-]*):(\\/\\/)?\\*))$ \nUpdate requires: No interruption\n" + }, + "maxItems": 1000, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BlockedUrls": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^((([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(\\*|[\\w%._\\-\\+~#=@]+)?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?)|(\\*|[\\w%._\\-\\+~#=@]+\\.[\\w%._\\-\\+~#=@]+)(?::(\\d{1,5}))?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?|(([a-zA-Z][a-zA-Z0-9+.-]*):(\\/\\/)?\\*))$ \nUpdate requires: No interruption\n" + }, + "maxItems": 1000, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -58,7 +133,7 @@ "type": "string", "maxLength": 131072, "minLength": 2, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 131072 \nPattern: \\{[\\S\\s]*\\}\\s* \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 2 \nMaximum Length: 131072 \nPattern: ^\\{[\\S\\s]*\\}\\s*$ \nUpdate requires: No interruption\n" }, "BrowserSettingsArn": { "type": "string", @@ -81,6 +156,9 @@ "minItems": 0, "insertionOrder": false, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "WebContentFilteringPolicy": { + "$ref": "#/definitions/WebContentFilteringPolicy" } }, "readOnlyProperties": [ @@ -153,7 +231,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-dataprotectionsettings.json b/server/schema/resources/aws-workspacesweb-dataprotectionsettings.json index cf896b0a..77680f2a 100644 --- a/server/schema/resources/aws-workspacesweb-dataprotectionsettings.json +++ b/server/schema/resources/aws-workspacesweb-dataprotectionsettings.json @@ -319,7 +319,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-identityprovider.json b/server/schema/resources/aws-workspacesweb-identityprovider.json index 30dc189f..cdbcf9d2 100644 --- a/server/schema/resources/aws-workspacesweb-identityprovider.json +++ b/server/schema/resources/aws-workspacesweb-identityprovider.json @@ -154,7 +154,7 @@ }, "sourceUrl": "https://github.com/shivankgoel/aws-cloudformation-resource-providers-workspaces-web", "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-ipaccesssettings.json b/server/schema/resources/aws-workspacesweb-ipaccesssettings.json index ffefb004..0020cf20 100644 --- a/server/schema/resources/aws-workspacesweb-ipaccesssettings.json +++ b/server/schema/resources/aws-workspacesweb-ipaccesssettings.json @@ -201,7 +201,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-networksettings.json b/server/schema/resources/aws-workspacesweb-networksettings.json index 850d1ea6..8fb0452d 100644 --- a/server/schema/resources/aws-workspacesweb-networksettings.json +++ b/server/schema/resources/aws-workspacesweb-networksettings.json @@ -137,7 +137,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-portal.json b/server/schema/resources/aws-workspacesweb-portal.json index 821fd845..a5eb1614 100644 --- a/server/schema/resources/aws-workspacesweb-portal.json +++ b/server/schema/resources/aws-workspacesweb-portal.json @@ -151,6 +151,12 @@ "minLength": 1, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 253 \nPattern: ^[a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\\.)+[a-zA-Z0-9]+$ \nUpdate requires: No interruption\nRead only property: Yes" }, + "PortalCustomDomain": { + "type": "string", + "maxLength": 128, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nPattern: ^[a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\\.)+[a-zA-Z0-9]+$ \nUpdate requires: No interruption\n" + }, "PortalStatus": { "$ref": "#/definitions/PortalStatus" }, @@ -333,7 +339,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-sessionlogger.json b/server/schema/resources/aws-workspacesweb-sessionlogger.json index 48ba0730..909779d3 100644 --- a/server/schema/resources/aws-workspacesweb-sessionlogger.json +++ b/server/schema/resources/aws-workspacesweb-sessionlogger.json @@ -285,7 +285,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "permissions": [ "workspaces-web:ListTagsForResource", "workspaces-web:TagResource", diff --git a/server/schema/resources/aws-workspacesweb-truststore.json b/server/schema/resources/aws-workspacesweb-truststore.json index f2182110..b0cd2a79 100644 --- a/server/schema/resources/aws-workspacesweb-truststore.json +++ b/server/schema/resources/aws-workspacesweb-truststore.json @@ -119,7 +119,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-useraccessloggingsettings.json b/server/schema/resources/aws-workspacesweb-useraccessloggingsettings.json index 091371e5..6c6226d8 100644 --- a/server/schema/resources/aws-workspacesweb-useraccessloggingsettings.json +++ b/server/schema/resources/aws-workspacesweb-useraccessloggingsettings.json @@ -111,7 +111,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-workspacesweb-usersettings.json b/server/schema/resources/aws-workspacesweb-usersettings.json index 8dba0dcd..b2e6ff11 100644 --- a/server/schema/resources/aws-workspacesweb-usersettings.json +++ b/server/schema/resources/aws-workspacesweb-usersettings.json @@ -2,6 +2,45 @@ "typeName": "AWS::WorkSpacesWeb::UserSettings", "description": "Definition of AWS::WorkSpacesWeb::UserSettings Resource Type", "definitions": { + "BrandingConfiguration": { + "type": "object", + "properties": { + "Logo": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: (^s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+$)|(^(?=(.{4})*$)[A-Za-z0-9+/]*={0,2}$) \nUpdate requires: No interruption\n" + }, + "Wallpaper": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: (^s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+$)|(^(?=(.{4})*$)[A-Za-z0-9+/]*={0,2}$) \nUpdate requires: No interruption\n" + }, + "Favicon": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: (^s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+$)|(^(?=(.{4})*$)[A-Za-z0-9+/]*={0,2}$) \nUpdate requires: No interruption\n" + }, + "LogoMetadata": { + "$ref": "#/definitions/ImageMetadata" + }, + "WallpaperMetadata": { + "$ref": "#/definitions/ImageMetadata" + }, + "FaviconMetadata": { + "$ref": "#/definitions/ImageMetadata" + }, + "LocalizedStrings": { + "$ref": "#/definitions/LocalizedBrandingStringMap" + }, + "ColorTheme": { + "$ref": "#/definitions/ColorTheme" + }, + "TermsOfService": { + "type": "string", + "maxLength": 153600, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 153600 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, "CookieSpecification": { "type": "object", "properties": { @@ -81,6 +120,110 @@ "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "ColorTheme": { + "type": "string", + "enum": [ + "Light", + "Dark" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Light | Dark \nUpdate requires: No interruption\n" + }, + "ImageMetadata": { + "type": "object", + "properties": { + "MimeType": { + "$ref": "#/definitions/MimeType" + }, + "FileExtension": { + "type": "string", + "maxLength": 131072, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 131072 \nPattern: ^[\\s\\S]*$ \nUpdate requires: No interruption\n" + }, + "LastUploadTimestamp": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FileExtension", + "LastUploadTimestamp", + "MimeType" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Locale": { + "type": "string", + "enum": [ + "de-DE", + "en-US", + "es-ES", + "fr-FR", + "id-ID", + "it-IT", + "ja-JP", + "ko-KR", + "pt-BR", + "zh-CN", + "zh-TW" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: de-DE | en-US | es-ES | fr-FR | id-ID | it-IT | ja-JP | ko-KR | pt-BR | zh-CN | zh-TW \nUpdate requires: No interruption\n" + }, + "LocalizedBrandingStringMap": { + "type": "object", + "patternProperties": { + ".+": { + "$ref": "#/definitions/LocalizedBrandingStrings" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LocalizedBrandingStrings": { + "type": "object", + "properties": { + "BrowserTabTitle": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + }, + "WelcomeText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + }, + "LoginTitle": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + }, + "LoginDescription": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + }, + "LoginButtonText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + }, + "ContactLink": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(https?://|mailto:).* \nUpdate requires: No interruption\n" + }, + "ContactButtonText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + }, + "LoadingText": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[^<>&'`~\\\\]*$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "BrowserTabTitle", + "WelcomeText" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "MaxDisplayResolution": { "type": "string", "enum": [ @@ -95,6 +238,15 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: size4096X2160 | size3840X2160 | size3440X1440 | size2560X1440 | size1920X1080 | size1280X720 | size1024X768 | size800X600 \nUpdate requires: No interruption\n" }, + "MimeType": { + "type": "string", + "enum": [ + "image/png", + "image/jpeg", + "image/x-icon" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: image/png | image/jpeg | image/x-icon \nUpdate requires: No interruption\n" + }, "Tag": { "type": "object", "properties": { @@ -184,6 +336,9 @@ "insertionOrder": false, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "BrandingConfiguration": { + "$ref": "#/definitions/BrandingConfiguration" + }, "CookieSynchronizationConfiguration": { "$ref": "#/definitions/CookieSynchronizationConfiguration" }, @@ -243,6 +398,9 @@ }, "DeepLinkAllowed": { "$ref": "#/definitions/EnabledType" + }, + "WebAuthnAllowed": { + "$ref": "#/definitions/EnabledType" } }, "required": [ @@ -252,9 +410,17 @@ "PrintAllowed", "UploadAllowed" ], + "writeOnlyProperties": [ + "/properties/BrandingConfiguration/Logo", + "/properties/BrandingConfiguration/Favicon", + "/properties/BrandingConfiguration/Wallpaper" + ], "readOnlyProperties": [ "/properties/AssociatedPortalArns", - "/properties/UserSettingsArn" + "/properties/UserSettingsArn", + "/properties/BrandingConfiguration/LogoMetadata", + "/properties/BrandingConfiguration/FaviconMetadata", + "/properties/BrandingConfiguration/WallpaperMetadata" ], "primaryIdentifier": [ "/properties/UserSettingsArn" @@ -271,7 +437,8 @@ "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", - "kms:ReEncryptFrom" + "kms:ReEncryptFrom", + "s3:GetObject" ] }, "read": { @@ -294,7 +461,8 @@ "kms:CreateGrant", "kms:DescribeKey", "kms:GenerateDataKey", - "kms:Decrypt" + "kms:Decrypt", + "s3:GetObject" ] }, "delete": { @@ -318,7 +486,7 @@ } }, "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/server/schema/resources/aws-xray-samplingrule.json b/server/schema/resources/aws-xray-samplingrule.json index 8b0ce553..57c0b484 100644 --- a/server/schema/resources/aws-xray-samplingrule.json +++ b/server/schema/resources/aws-xray-samplingrule.json @@ -107,6 +107,9 @@ "type": "integer", "minimum": 1, "markdownDescription": "The version of the sampling rule format (1)\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "SamplingRateBoost": { + "$ref": "#/definitions/SamplingRateBoost" } }, "required": [ @@ -220,10 +223,37 @@ "type": "string", "maxLength": 128, "markdownDescription": "Matches the path from a request URL.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "SamplingRateBoost": { + "$ref": "#/definitions/SamplingRateBoost" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "SamplingRateBoost": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxRate": { + "description": "The maximum sampling rate X-Ray will apply when it detects anomalies. X-Ray determines the appropriate rate between your baseline and the maximum, depending on anomaly activity.", + "type": "number", + "minimum": 0, + "maximum": 1, + "markdownDescription": "The maximum sampling rate X-Ray will apply when it detects anomalies. X-Ray determines the appropriate rate between your baseline and the maximum, depending on anomaly activity.\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "CooldownWindowMinutes": { + "description": "Time window (in minutes) in which only one sampling rate boost can be triggered. After a boost occurs, no further boosts are allowed until the next window.", + "type": "integer", + "minimum": 1, + "markdownDescription": "Time window (in minutes) in which only one sampling rate boost can be triggered. After a boost occurs, no further boosts are allowed until the next window.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "MaxRate", + "CooldownWindowMinutes" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "RuleName": { "description": "The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.", "type": "string",